智能感知不会自动运行VSCode

时间:2015-04-30 18:31:08

标签: c# visual-studio-code

我刚刚下载了Visual Studio Code,而我的Intellisense没有自动运行。

控制此设置的两个设置似乎设置正确:

"editor.quickSuggestions": true,
"editor.suggestOnTriggerCharacters": true,

当我开始输入并按“CTRL + Space”时,我确实得到了一个Intellisense菜单,但这给了我一个列表,列出了所有内容,而不是专门用于我的对象。

我做错了什么?

24 个答案:

答案 0 :(得分:6)

从0.5版本开始,我发现我需要关闭并重新打开我的工作文件以获取一些新的智能感知信息以开始为我自己的文件工作。这通常发生在我打开文件后需要使用我刚刚创建的另一个文件的类型信息。直到我关闭并重新打开它们(在编辑器中),智能感知并不总是有效。

希望随着应用程序的成熟,这会得到解决。

答案 1 :(得分:3)

为了使智能正常工作,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秒太长了。但不要担心,这不会让你不再使用项目文件。但是,请记住,一旦文件夹中的所有项目都成功加载,智能感知将自动可用。

随意扩展Timeout设置,因为它可以帮助你获得智能感知 - 尽管你没有立即获得它。

以下是使用相同解决方案的另一个链接:https://github.com/OmniSharp/omnisharp-vscode/issues/1585

希望我的信息对您有所帮助!享受你的VSCode!

答案 2 :(得分:2)

降级到 1.23.9 的 C# VS Code 扩展修复了我的智能感知。因此,如果没有其他方法适合您,请尝试安装旧版本的扩展程序(不一定必须是我提到的那个确切版本)。您可以通过在 VS Code 中选择此选项来执行此操作: enter image description here

答案 3 :(得分:2)

如果以上方法均无法解决,请尝试的另一种故障排除策略是卸载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脚本启动。以前,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构建 目录
  • 清除本地nuget缓存
  • 重新启动Omnisharp
  • 卸载和重新安装VS Code,以及由于破损与2019年3月的更新奇怪地重合,而从1.33.1重新推出了一个版本
  • 卸载和重新安装C#VS Code扩展,以及从1.19.0版本回退,因为其他用户报告说该版本干扰了某些项目的Intellisense *
  • 在项目根目录添加一个global.json文件,以覆盖最新的.NET Core SDK(默认为2.2.105)的默认利用率,并改为使用与项目版本一致的2.1.302运行
  • 擦除/重建项目.sln文件

规范:VS代码1.33.1,C#扩展1.19.0,MacOS High Sierra 10.13.6。


* NB :事实证明,在另一个 .NET Core 2.1项目中,如上所述,VS Code中存在相同的问题,仅卸载Mono无法解决问题。我还没有最终需要将C#扩展扩展到1.1.8.0版以恢复Intellisense。奇怪的。

答案 4 :(得分:1)

尝试"安装扩展程序"来自命令Pallete - 可能是因为C#intellisense不存在:

enter image description here

https://code.visualstudio.com/docs/customization/colorizer

答案 5 :(得分:1)

我使用 Task Manager 并杀死 Visual Studio Code process,然后重新启动 Visual Studio Code,智能感知显示并修复。

答案 6 :(得分:1)

我能够通过将Api兼容性级别从.Net Standard 2.0更改为.NT 4.x来解决此问题。您可以在项目设置/播放器上找到此设置。 此后,智能感知又开始工作了。 enter image description here

答案 7 :(得分:1)

如果intellisense无法用于react js或javascript或node js,则此解决方案将适用于Windows

    通过输入npm uninstall -g typescript
  1. uninistall类型脚本
  2. 通过键入npm install -g typescript@3.3
  3. 安装特定版本的类型脚本,版本为3.3。
  4. 通过导航到文件>首选项>设置>在vscode中添加打字稿位置,然后在此处搜索edit in setting.json,然后添加此路径"typescript.tsdk": "/Users/yourusename/AppData/Roaming/npm/node_modules/typescript/lib"
  5. settings.json应该看起来像这样
{
"editor.suggestSelection": "first", 
   "vsintellicode.modify.editor.suggestSelection":"automaticallyOverrodeDefaultValue",
"typescript.tsdk": "/Users/yourusername/AppData/Roaming/npm/node_modules/typescript/lib"
}

答案 8 :(得分:1)

这个案例是针对一个以前运行良好的现有项目。通过vs代码的“最近”历史记录打开。

对于dotnet核心。我打开了项目的* .csprog文件,未进行任何更改,并通过vs代码编辑器进行了保存。

保存后,所有智能感知的东西就会在该项目的其他文件中再次开始工作。

答案 9 :(得分:1)

到目前为止,我已经在C#中获得了一些很好的经验: https://marketplace.visualstudio.com/items?itemName=jchannon.csharpextensions

"此扩展程序遍历文件夹树以查找project.json或* .csproj,并将其用作父文件夹以确定名称空间。"

答案 10 :(得分:0)

如果您有一个工作区,但由于某些原因有多个文件夹,则可能需要稍微“帮助” omnisharp。我最初有一个大项目,并为它进一步添加了一个解决方案-最终得到两个工作区文件夹(一个到启动项目,一个到解决方案)。组成该设置后,我仅经历了第一个具有智能感知功能的项目。

使智能感知工作的解决方案是确保omnisharp从解决方案而不是从项目开始工作:

  1. Ctrl + shift + p
  2. 选择“ OmniSharp:选择项目”
  3. 选择解决方案工作区条目。

灵感来自“流浪汉”: https://github.com/OmniSharp/omnisharp-vscode/issues/1889

答案 11 :(得分:0)

在我的情况下,扩展未启用

答案 12 :(得分:0)

对我来说,很长一段时间没有互联网工作。它以前一直在工作,但是随后停止了。我用稳定的wifi连接关闭并重新打开了VSCode,并弹出了VSCode中的{ "media_url": "https://....", "media_type": "VIDEO", "ig_id": "2096096005100283754", "shortcode": "B0W1DYHHidq", "id": "18085497013050342" }, 选项卡,显示扩展已重新安装。之后就可以了!

答案 13 :(得分:0)

我只是发生了这种情况(没有出现代码完成建议)。对我来说解决的是将Unity中的VSCode编辑器软件包更改为以前的版本,然后又恢复为当前版本。

对我来说,这是从1.2.0到1.1.3,然后又回到1.2.0。我相信删除并重新安装1.2.0可以达到相同的目的。

窗口>程序包管理器> Visual Studio代码编辑器

答案 14 :(得分:0)

我知道这可能是最明显的答案。但是我已经足够处理VS Code荒谬的错误了。您应该专注于代码,而不是错误的IDE。他们的文档也不容易调试。

完全卸载步骤:

  1. 保存您的个性化文件,例如keybindings.json

只需将其放在GitHub之类的东西上,以便每当需要使用VS Code遇到麻烦时,您只需要转到GitHub并将其粘贴即可。

  1. 完全卸载VS Code

卸载VS Code后,它不会删除扩展文件和某些旧设置。这与重新安装结束的原因相同。 VS代码的可怕举动。对于必须删除的文件列表,可以检出此answer

  1. 转到他们的网站并安装新网站。

我希望这可以帮助一些已经对VS Code荒谬的错误有所了解的人。

答案 15 :(得分:0)

就我而言,问题不在于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开始工作。检查控制台是发现此问题的根本原因的好开始。

答案 16 :(得分:0)

尝试了几件事之后,我查看了OmniSharp日志,才意识到这是因为我在工作区中有两个不同的sln文件。它选择了“另一个”,因此无法正常工作。我删除了它,重新打开vs代码,一切都很好。

答案 17 :(得分:0)

答案 18 :(得分:0)

只需重新安装扩展并重新启动 VSCode/PC。

答案 19 :(得分:0)

早期的智能感知在 Angular 中为 VS-Code 工作,但由于某种原因(我不知道)智能感知停止工作。我安装了扩展程序,即 Angular EssentialsAngular Language Service 等,它们负责此智能感知等。

我做了什么?

我禁用了 extensions,重新启动了 VS Code 并启用了它们。一切都像以前一样正常。

答案 20 :(得分:0)

如果 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),但当我在变量名之前指定类型时开始正常工作。

答案 21 :(得分:0)

下载并安装“Tool for Visual Studio 2019”作为引擎盖下的 C# 扩展,使用构建工具:https://visualstudio.microsoft.com/downloads/

答案 22 :(得分:0)

就我而言,我安装了一个扩展程序 (Explorer Exclude) 以帮助我集中注意力并隐藏我不经常在资源管理器中使用的某些文件。

我碰巧禁用了查看 *.sln、*.csproj 和 *.vsconfig 文件和文件夹,这显然阻止了 VSCode 甚至首先知道文件在那里。禁用这些特定规则立即解决了问题。

我花了很长时间才弄明白……你知道的越多。

答案 23 :(得分:-2)

清除打字稿缓存并将打字稿版本降级到3.3为我解决了这个问题。

请按照以下步骤清除缓存并降级打字稿版本:

  1. 根据您的操作系统在终端中输入以下命令,并删除其中的所有内容。

    • Mac:~/Library/Caches/TypeScript/
    • Windows:%LOCALAPPDATA%\Microsoft\TypeScript\(Windows用户也可以在运行框中运行此程序)
    • Linux:~/.cache/typescript/
  2. 使用以下命令安装此特定的@typescript@3.3

    • npm install -g typescript@3.3
    • 重新启动VSCode。