[英]Intellisense not automatically working VSCode
我刚刚下载了 Visual Studio Code,但我的 Intellisense 没有自动运行。
控制它的两个设置似乎设置正确:
"editor.quickSuggestions": true,
"editor.suggestOnTriggerCharacters": true,
当我开始输入并按“CTRL + Space”时,我确实得到了一个 Intellisense 菜单,但这给了我一个所有的列表,而不是专门为我的 object 提供的列表。
我究竟做错了什么?
Visual Studio Code 的更高级的编辑功能(IntelliSense、重构工具等)仅适用于 C# 文件,前提是您有 VSCode 知道的project.json
文件或*.sln
文件。 打开带有*.sln
文件或project.json
的文件夹(即打开File菜单并单击Open Folder... ),VSCode 将尝试查找文件夹中的所有项目/解决方案文件。 如果有多个项目,您可能需要从状态栏右侧(窗口底部)的项目按钮中选择一个。
- 选择一个
project.json
文件会打开一个 DNX 项目,VSCode 将加载该项目以及引用的项目- 选择
*.sln
文件将打开 MSBuild 项目。 它将加载引用的*.csproj
-projects 和同级或后代project.json
-files,但不会加载从解决方案文件中引用的其他项目文件。- 选择一个
folder
将使 VSCode 扫描*.sln
和project.json
文件,并且 VSCode 将尝试加载它们。
如果您有一个工作区并且由于某种原因有多个文件夹,您可能需要“帮助” omnisharp 一点。 我最初有一个大项目,并进一步为它添加了一个解决方案 - 最终有两个工作区文件夹(一个用于启动项目,一个用于解决方案)。 完成该设置后,我只经历了第一个让智能感知工作的项目。
让智能感知工作的解决方案是确保 omnisharp 从解决方案而不是项目中工作:
灵感来自“天鹅”: https : //github.com/OmniSharp/omnisharp-vscode/issues/1889
从 0.5 版本开始,我发现我需要关闭并重新打开我的工作文件以获取一些新的智能感知信息,以便开始为我自己的文件工作。 这通常发生在我打开一个需要使用我刚刚创建的另一个文件中的类型信息的文件之后。 在我关闭并重新打开它们(在编辑器中)之前,智能感知并不总是有效。
希望随着应用程序的成熟,这会得到解决。
为了使智能工作,Visual Studio Code 扩展 OmniSharp 应该与 Mono 一起存在。 当您打开项目/解决方案文件夹时,OmniSharp 从 project.json 或 dotnet 解决方案文件(如果项目/解决方案是使用其他版本的 Visual Studio 创建)获取项目依赖项。
因此,当您立即打开项目/解决方案文件夹后查看 omnisharp 的输出窗口时,您可能会看到以下几行
Starting OmniSharp server at 2017-9-18 09:26:44
Target: /Users/{username}/Source/{Your Solution Folder}/{Your Solution
file}.sln
OmniSharp server started wth Mono
Path: /Users/{username}/.vscode/extensions/ms-vscode.csharp-1.12.1/.omnisharp/run
PID: 5808
发布后,您可能会看到如下所示的几行,
[info]: OmniSharp.MSBuild.MSBuildProjectSystem
Update project: {Your Project1 Name}
[info]: OmniSharp.MSBuild.MSBuildProjectSystem
Update project: {Your Project2 Name}
....
它们意味着您的项目得到了 OmniSharp Extension 的认可。
如果您收到任何有关超时的错误消息,请进入 Visual Studio Code 的设置,并添加如下所示的配置覆盖:
"omnisharp.projectLoadTimeout": 200
我知道等待 200 秒太长了。 但别担心,这不会阻止您再使用项目文件。 但是,请记住,一旦成功加载文件夹中的所有项目,IntelliSense 将自动可用。
随意扩展超时设置,因为它会帮助您获得智能感知,即使您没有立即获得它。
这是具有相同解决方案的另一个链接: https : //github.com/OmniSharp/omnisharp-vscode/issues/1585
希望我的信息对你有帮助! 享受你的 VSCode!
如果上述方法均无效,则要尝试的另一种故障排除策略是卸载 Mono ,如果您使用的是 .NET Core,则无论如何都不需要。 在对我们的一个企业存储库进行更改(包括从 ASP.NET Core 2.0 升级到 2.1)后,我还遇到了 Intellisense 突然消失的情况。 奇怪的是,与此同时,Intellisense 在另一个运行 ASP.NET Core 2.2 的 C# 项目存储库中运行良好。
对于有问题的项目,我很困惑地看到 Omnisharp 服务器每次重新启动的成功日志以及完全干净的构建和运行。 当我将这些 Omnisharp 日志与 2.2 项目中的日志进行比较并发现它们实际上相同时,我的困惑增加了。
卸载 Mono 后,发生变化的一个细节是 Omnisharp 的启动方式。 现在它从位于~/.vscode/extensions/ms-vscode.csharp-1.19.0/.omnisharp/1.32.18/run
的 shell 脚本~/.vscode/extensions/ms-vscode.csharp-1.19.0/.omnisharp/1.32.18/run
。 以前,Mono 本身从~/.vscode/extensions/ms-vscode.csharp-1.19.0/.omnisharp/1.32.18/omnisharp/Omnisharp.exe
处的可执行文件启动服务器。
我在这种情况下尝试的其他故障排除虽然无济于事:
dotnet clean
/ 删除 bin 和 obj 目录launch.json
以指向正确的/bin/Debug/netcoreapp2.1
构建目录global.json
文件以覆盖最新 .NET Core SDK(我的是 2.2.105)的默认使用,并使用与项目版本一致的 2.1.302 运行.sln
文件规格:VS Code 1.33.1,C# 扩展 1.19.0,MacOS High Sierra 10.13.6。
*注意:事实证明,在另一个.NET Core 2.1 项目中,VS Code 中存在与上述相同的问题,单独卸载 Mono 并不能解决问题。 我也确实需要将 C# 扩展回滚到 v. 1.18.0 以恢复 Intellisense。 奇怪的。
此案例适用于之前运行良好的现有项目。 通过 vs 代码“最近”历史记录打开。
对于 dotnet 核心。 我打开了我项目的 *.csprog 文件,没有做任何更改,并通过 vs 代码编辑器保存它。
我一保存,所有的智能感知内容就会在该项目中的其他文件中再次开始工作。
我遇到的问题是OmniSharp
是旧版本。 我在Settings.json
文件中Settings.json
了更新到最新版本的标志。 这可确保扩展程序始终是最新版本。
"omnisharp.path": "latest"
并重新启动VS代码。 那为我修好了。
到目前为止,我在 C# 中使用此扩展获得了一些很好的经验: https : //marketplace.visualstudio.com/items?itemName=jchannon.csharpextensions
“此扩展程序向上遍历文件夹树以查找 project.json 或 *.csproj,并将其用作父文件夹来确定命名空间。”
我使用Task Manager
并终止Visual Studio Code process
,然后重新启动Visual Studio Code
,智能感知显示并修复。
从命令 Pallete 尝试“安装扩展” - 可能如果 C# intellisense 不存在:
如果智能感知不适用于 react js 或 javascript 或 node js,则此解决方案将有助于 Windows
npm uninstall -g typescript
typescript 来npm uninstall -g typescript
脚本npm install -g typescript@3.3
安装特定版本的类型脚本,即 3.3edit in setting.json
搜索edit in setting.json
然后添加此路径"typescript.tsdk": "/Users/yourusename/AppData/Roaming/npm/node_modules/typescript/lib"
在 vscode 中添加打字稿位置"typescript.tsdk": "/Users/yourusename/AppData/Roaming/npm/node_modules/typescript/lib"
{ "editor.suggestSelection": "first", "vsintellicode.modify.editor.suggestSelection":"automaticallyOverrodeDefaultValue", "typescript.tsdk": "/Users/yourusername/AppData/Roaming/npm/node_modules/typescript/lib" }
我通过在 VSCODE 中打开每个项目(不是 sln 文件夹),在 .net5/.net core 3.1 中使用多项目解决方案解决了这个问题。 然后提示添加资源/.CSX? 项目文件; 每个项目启用智能感知。 最后关闭该窗口并重新打开解决方案文件夹,一切都按预期工作。
查看图片添加 VSCode 资产
降级到 C# 的 1.23.9 for Visual Studio Code(由 OmniSharp 提供支持)。 https://i.stack.imgur.com/VrdJl.png
在尝试了几件事之后,我查看了 OmniSharp 日志才意识到这是因为我的工作区中有两个不同的 sln 文件。 它已经拿起了“另一个”,因此无法正常工作。 我删除了它,重新打开 vs 代码,一切又好了。
对我来说,我在没有互联网的情况下工作了很长时间。 它以前一直在工作,但后来停止了。 我使用稳定的 wifi 连接关闭+重新打开 VSCode,并弹出 VSCode 中的“ Output
选项卡,显示正在重新安装扩展。 之后它起作用了!
就我而言,未启用扩展
我刚刚发生了这种情况(这是没有出现代码完成建议)。 为我解决的是将 Unity 中的 VSCode 编辑器包更改为以前的版本,然后再返回到当前版本。
对我来说,这是从 1.2.0 到 1.1.3,然后又回到 1.2.0。 我相信删除并重新安装 1.2.0 也会达到同样的效果。
窗口 > 包管理器 > Visual Studio 代码编辑器
我知道这可能是最明显的答案。 但是我已经受够了处理 VS Code 荒谬的错误。 您应该关注代码,而不是有缺陷的 IDE。 他们的文档也不容易调试。
keybindings.json
,只需将它放在 GitHub 或其他东西上,所以当你需要使用 VS Code 时,你只需要去 GitHub 并复制粘贴它。
当您卸载 VS Code 时,它不会删除您的扩展文件和一些旧设置。 这就是重新安装最终结果相同的原因。 可怕的举动 VS Code。 有关您必须删除的文件列表,您可以查看此答案。
我希望这可以帮助一些已经受够了 VS Code 荒谬错误的人。
就我而言,问题不在于 VS Code 设置。 该错误是由于我 PC 的注册表用户配置文件环境设置中配置的 TEMP 路径损坏造成的。 我从帮助 --> 切换开发人员工具 --> 控制台中收到此错误当我打开一个新的打字稿文件时,控制台中标记了错误。
Unable to write file c:\Users\XXX\AppData\Local\Temp;C:\wamp64\bin\php\php5.6.25;C:\vufind-3.1.2\install.php\09cf49d8-af5b-42e9-8194-43f5b566be0f'
显然这条路径被破坏了。 更新注册表设置中的环境变量后,VS 代码 IntelliSense 开始工作。 检查控制台是找到此问题根本原因的良好开端。
只需重新安装扩展并重新启动 VSCode/PC。
早期的智能感知在VS-Code
为Angular
工作,但由于某种原因(我不知道)智能感知停止工作。 我安装了扩展,即Angular Essentials
和Angular Language Service
等,它们负责这个智能感知和所有这些。
我做了什么?
我禁用了extensions
,重新启动了VS Code
并启用了它们。 一切都像以前一样正常。
如果 VSCode 中的一切正常(输出控制台中没有错误,语言服务器正在工作等)并且启用了内置扩展。 尽管如此,如果您的 IntelliSense 不适用于普通的.js
文件,请确保使用类型标识符定义变量,例如var d = new Date()
或let d = new Date()
。 就我而言,IntelliSense 不适用于d = new Date() (No autocomplete for Date object 'd' APIs in this way)
但是当我在变量名之前指定类型时开始正常工作。
下载并安装“Tool for Visual Studio 2019”作为引擎盖下的 C# 扩展使用构建工具: https : //visualstudio.microsoft.com/downloads/
就我而言,我安装了一个扩展程序( Explorer Exclude )来帮助我集中注意力并隐藏我不经常在 Explorer 中使用的某些文件。
我碰巧禁用了查看 *.sln、*.csproj 和 *.vsconfig 文件和文件夹,这显然阻止了 VSCode 甚至首先知道文件在那里。 禁用这些特定规则立即解决了问题。
我花了很长时间才弄清楚......你知道的越多。
我通过卸载所有 SDK(不确定是否需要)并安装4.7.1 开发包来解决它
win 10,vscode 1.63.2,unity 2020.3.25f1
我通过安装 .NET Framework 4.7.1 Developer Pack 解决了这个问题:
https:\/\/dotnet.microsoft.com\/en-us\/download\/dotnet-framework\/net471<\/a>
要解决此问题,我必须在 Unity 上将 go 转到“首选项”,然后在“外部工具”选项卡中。
对于“外部脚本编辑器”,已经选择了“Visual Studio Code”。
我点击了“重置参数”,然后点击了“Generate.csproj files for:”,没有选择任何东西。 然后我点击“重新生成项目文件”。
然后我重新加载了 VS Code,Intellisense 开始工作了。
清除打字稿缓存并将打字稿版本降级到 3.3 为我解决了这个问题。
按照以下步骤清除缓存并降级打字稿版本:
~/Library/Caches/TypeScript/
%LOCALAPPDATA%\\Microsoft\\TypeScript\\
(Windows 用户也可以在运行框中运行它)~/.cache/typescript/
@typescript@3.3
。npm install -g typescript@3.3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.