我刚刚下载了 Visual Studio Code,但我的 Intellisense 没有自动工作。
控制这个的两个设置似乎设置正确:
"editor.quickSuggestions": true,
"editor.suggestOnTriggerCharacters": true,
当我开始键入并按“CTRL + Space”时,我确实得到了一个 Intellisense 菜单,但这给了我一个所有内容的列表,而不是专门针对我的对象的东西。
我究竟做错了什么?
我刚刚下载了 Visual Studio Code,但我的 Intellisense 没有自动工作。
控制这个的两个设置似乎设置正确:
"editor.quickSuggestions": true,
"editor.suggestOnTriggerCharacters": true,
当我开始键入并按“CTRL + Space”时,我确实得到了一个 Intellisense 菜单,但这给了我一个所有内容的列表,而不是专门针对我的对象的东西。
我究竟做错了什么?
Visual Studio Code 的更高级的编辑功能(IntelliSense、重构工具等)只有在你有一个VSCode 知道的project.json
文件或文件时才能在 C# 文件中工作。*.sln
使用文件打开文件夹(即打开文件菜单并单击打开文件夹...), VSCode 将尝试在*.sln
文件project.json
夹中查找所有项目/解决方案文件。如果有多个项目,您可能需要从状态栏右侧(窗口底部)的项目按钮中选择一个。
- 选择一个
project.json
-file 将打开一个 DNX 项目,VSCode 将加载该项目以及引用的项目- 选择一个
*.sln
-file 将打开一个 MSBuild 项目。它将加载引用的-projects*.csproj
和同级或后代project.json
-files,但不会加载从解决方案文件引用的其他项目文件。- 选择 a
folder
将使 VSCode 扫描*.sln
和project.json
文件,并且 VSCode 将尝试将它们全部加载。
如果您有一个工作区并且由于某种原因有多个文件夹,您可能需要“帮助”omnisharp 一点。我最初有一个大项目,并为它添加了一个解决方案 - 最后有两个工作区文件夹(一个用于启动项目,一个用于解决方案)。在完成该设置后,我只体验了第一个让智能感知工作的项目。
让智能感知工作的解决方案是确保omnisharp从解决方案而不是项目中工作:
灵感来自“swaner”: https ://github.com/OmniSharp/omnisharp-vscode/issues/1889
从 0.5 版本开始,我发现我需要关闭并重新打开我的工作文件以获取一些新的智能感知信息才能开始为我自己的文件工作。这通常发生在我打开一个需要使用我刚刚创建的另一个文件的类型信息的文件之后。在我关闭并重新打开它们(在编辑器中)之前,智能感知并不总是有效。
希望随着应用程序的成熟,这将得到解决。
此案例适用于之前运行良好的现有项目。通过 vs 代码“最近”历史打开。
对于 dotnet 核心。我打开了我的项目的 *.csprog 文件,没有做任何更改,并通过 vs 代码编辑器保存它。
一旦我保存,所有智能感知的东西都会在该项目的其他文件中重新开始工作。
为了使智能工作,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 代码的设置,并添加如下配置覆盖:
"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# 项目 repo 中运行良好。
对于有问题的项目,我很困惑地看到每次重新启动 Omnisharp 服务器的成功日志以及完全干净的构建和运行。当我将这些 Omnisharp 日志与 2.2 项目中的日志进行比较并发现它们实际上完全相同时,困惑增加了。
卸载 Mono 后,改变的一个细节是 Omnisharp 的启动方式。现在它从位于~/.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。
*NB:事实证明,在另一个.NET Core 2.1 项目中,与上述 VS Code 中的问题相同,单独卸载 Mono 并不能解决问题。我也确实需要将 C# 扩展退回到 v. 1.18.0 以恢复 Intellisense。诡异的。
我遇到的问题OmniSharp
是旧版本。我将标志设置为更新到Settings.json
文件中的最新版本。这可确保扩展始终是最新版本。
"omnisharp.path": "latest"
并重新启动 VS 代码。那为我修好了。
只需重新安装扩展并重新启动 VSCode/PC。
到目前为止,我在 C# 中有一些很好的使用此扩展的经验: https ://marketplace.visualstudio.com/items?itemName=jchannon.csharpextensions
“此扩展程序遍历文件夹树以找到 project.json 或 *.csproj 并将其用作父文件夹来确定命名空间。”
我使用Task Manager
并杀死Visual Studio Code process
,然后重新启动Visual Studio Code
,智能感知显示并修复。
如果智能感知不适用于反应 js 或 javascript 或节点 js,此解决方案将有助于 windows
npm uninstall -g typescript
npm install -g typescript@3.3
edit in setting.json
然后添加此路径 ,在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" }
这是因为 C# 扩展问题。重新安装扩展程序将起作用。
https://code.visualstudio.com/docs/editor/intellisense
https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp
我通过在 VSCODE 中打开每个项目(不是 sln 文件夹)在 .net5 / .net core 3.1 中使用多项目解决方案解决了这个问题。然后提示添加资源/ .CSX?项目文件;每个项目启用智能感知。最后关闭该窗口并重新打开解决方案文件夹,一切都按预期工作。
参见图片 添加 VSCode 资产
尝试从命令 Pallete 中“安装扩展” - 如果 C# intellisense 不存在:
我通过安装 .NET Framework 4.7.1 Developer Pack 解决了这个问题:
https://dotnet.microsoft.com/en-us/download/dotnet-framework/net471
如果 VSCode 中的一切正常(输出控制台中没有错误,语言服务器正在工作等)并且启用了内置扩展。不过,如果您的 IntelliSense 不适用于普通.js
文件,请确保使用类型标识符定义变量,例如var d = new Date()
or let d = new Date()
。就我而言,IntelliSense 无法正常工作,d = new Date() (No autocomplete for Date object 'd' APIs in this way)
但当我在变量名之前指定类型时开始正常工作。
我刚刚发生了这种情况(这是没有出现代码完成建议)。为我解决的问题是将 Unity 中的 VSCode 编辑器包更改为以前的版本,然后再改回当前版本。
对我来说,这是从 1.2.0 到 1.1.3,然后又回到 1.2.0。我相信删除和重新安装 1.2.0 也会达到同样的效果。
窗口 > 包管理器 > Visual Studio 代码编辑器
早期的智能感知正在工作Angular
,VS-Code
但由于某种原因(我不知道)智能感知停止工作。我安装了扩展 ieAngular Essentials
等Angular Language Service
,它们负责这种智能感知和所有这些。
我做了什么?
我禁用了extensions
,重新启动VS Code
并启用了它们。一切都像以前一样工作正常。
我知道这可能是最明显的答案。但我已经受够了 VS Code 荒谬的错误。您应该专注于代码,而不是错误的 IDE。他们的文档也不容易调试。
keybindings.json
,只需将其放在 GitHub 或其他地方,因此当您遇到 VS Code 问题时,您只需前往 GitHub 并复制粘贴即可。
当您卸载 VS Code 时,它不会删除您的扩展文件和一些旧设置。这是重新安装的原因,最终还是一样。可怕的举动VS代码。对于您必须删除的文件列表,您可以查看此答案。
我希望这可以帮助一些已经受够了 VS Code 荒谬错误的人。
我通过卸载所有 SDK 解决了这个问题(不确定是否需要)并安装了4.7.1 开发包
赢10,vscode 1.63.2,统一2020.3.25f1
对我来说,我已经在没有互联网的情况下工作了很长时间。它以前一直在工作,但后来停止了。我用稳定的 wifi 连接关闭 + 重新打开 VSCode,VSCode 中的Output
选项卡弹出,显示扩展正在重新安装。之后它起作用了!
在尝试了几件事后,我查看了 OmniSharp 日志才意识到这是因为我的工作区中有两个不同的 sln 文件。它拿起了“另一个”,因此无法正常工作。我删除了它,重新打开了vs代码,一切又好了。
使用构建工具下载并安装“Tool for Visual Studio 2019”作为 C# 扩展:https ://visualstudio.microsoft.com/downloads/
就我而言,问题不在于 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 开始工作。检查控制台是找到此问题根本原因的良好开端。
就我而言,我安装了一个扩展程序 ( Explorer Exclude ) 来帮助我集中并隐藏我在 Explorer 中不经常使用的某些文件。
我碰巧禁用了查看 *.sln、*.csproj 和 *.vsconfig 文件和文件夹,这显然阻止了 VSCode 甚至一开始就知道文件在那里。禁用这些特定规则可以立即解决问题。
我花了很长时间才弄清楚...你知道的越多。
就我而言,未启用扩展程序
清除打字稿缓存并将打字稿版本降级到 3.3 为我解决了这个问题。
请按照以下步骤清除缓存并降级 typescript 版本:
~/Library/Caches/TypeScript/
%LOCALAPPDATA%\Microsoft\TypeScript\
(Windows 用户也可以在运行框中运行它)~/.cache/typescript/
@typescript@3.3
使用以下命令安装这个特定的。npm install -g typescript@3.3