簡體   English   中英

Intellisense 不會自動工作 VSCode

[英]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 將嘗試查找文件夾中的所有項目/解決方案文件。 如果有多個項目,您可能需要從狀態欄右側(窗口底部)的項目按鈕中選擇一個。

VSCode 網站

  • 選擇一個project.json文件會打開一個 DNX 項目,VSCode 將加載該項目以及引用的項目
  • 選擇*.sln文件將打開 MSBuild 項目。 它將加載引用的*.csproj -projects 和同級或后代project.json -files,但不會加載從解決方案文件中引用的其他項目文件。
  • 選擇一個folder將使 VSCode 掃描*.slnproject.json文件,並且 VSCode 將嘗試加載它們。

在此處輸入圖片說明

如果您有一個工作區並且由於某種原因有多個文件夾,您可能需要“幫助” omnisharp 一點。 我最初有一個大項目,並進一步為它添加了一個解決方案 - 最終有兩個工作區文件夾(一個用於啟動項目,一個用於解決方案)。 完成該設置后,我只經歷了第一個讓智能感知工作的項目。

讓智能感知工作的解決方案是確保 omnisharp 從解決方案而不是項目中工作:

  1. Ctrl + Shift + p
  2. 編寫“OmniSharp:選擇項目”並按 Enter。
  3. 選擇解決方案工作區條目。

靈感來自“天鵝”: https : //github.com/OmniSharp/omnisharp-vscode/issues/1889

如果您使用 c# 啟動您的項目,那么有一段時間您還沒有下載擴展。

書面處理

  • Ctrl + Shift + p。
  • 編寫“OmniSharp:選擇項目”並按 Enter。
  • 選擇解決方案工作區條目。
  • 然后為“OmniSharp : Project”啟用 c# 擴展。

按圖像處理

在此處輸入圖片說明

在此處輸入圖片說明

從 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構建目錄
  • 擦除我的本地 nuget 緩存
  • 重啟 Omnisharp
  • 卸載並重新安裝 VS Code,以及從 1.33.1 退回一個版本,因為損壞與 2019 年 3 月的更新奇怪地重合
  • 卸載並重新安裝 C# VS Code 擴展,以及根據其他用戶報告該版本干擾某些項目的 Intellisense*,從 1.19.0 退回版本
  • 在項目根目錄添加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 不存在:

在此處輸入圖片說明

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

如果智能感知不適用於 react js 或 javascript 或 node js,則此解決方案將有助於 Windows

  1. 通過鍵入npm uninstall -g typescript typescript 來npm uninstall -g typescript腳本
  2. 通過鍵入npm install -g typescript@3.3安裝特定版本的類型腳本,即 3.3
  3. 通過導航到文件 > 首選項 > 設置 > edit 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"
  4. settings.json 應該看起來像這樣
{ "editor.suggestSelection": "first", "vsintellicode.modify.editor.suggestSelection":"automaticallyOverrodeDefaultValue", "typescript.tsdk": "/Users/yourusername/AppData/Roaming/npm/node_modules/typescript/lib" }

我能夠通過將 Api 兼容性級別從 .Net Standard 2.0 更改為 .NT 4.x 來解決此問題。 您可以在項目設置/播放器上找到此設置。 之后,智能感知再次開始工作。 在此處輸入圖片說明

降級到1.23.9的 C# VS Code 擴展修復了我的智能感知。 因此,如果沒有其他方法適合您,請嘗試安裝舊版本的擴展程序(不一定必須是我提到的那個確切版本)。 您可以通過在 VS Code 中選擇此選項來執行此操作: 在此處輸入圖片說明

我通過在 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。 他們的文檔也不容易調試。

完全卸載的步驟:

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

只需將它放在 GitHub 或其他東西上,所以當你需要使用 VS Code 時,你只需要去 GitHub 並復制粘貼它。

  1. 完全卸載 VS Code

當您卸載 VS Code 時,它​​不會刪除您的擴展文件和一些舊設置。 這就是重新安裝最終結果相同的原因。 可怕的舉動 VS Code。 有關您必須刪除的文件列表,您可以查看此答案

  1. 轉到他們的網站並安裝新的。

我希望這可以幫助一些已經受夠了 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-CodeAngular工作,但由於某種原因(我不知道)智能感知停止工作。 我安裝了擴展,即Angular EssentialsAngular 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>

哇,這么多答案......其中一些已經很老了......但是有很多線索可以幫助解決問題:)

截至 2022 年 12 月,對於使用 Unity,以下是對我有用的方法:

  • 一切確實都取決於“C# for Visual Studio Code(由 OmniSharp 提供支持)”插件
  • 但是,我沒有降級到 1.23.9,而是按照主頁中的說明進行操作:
    • 在設置中,取消選中“Omnisharp:使用現代網絡” 在此處輸入圖像描述
    • 按照說明下載並安裝 Mono
    • 由 VSC 重啟幾次
    • => Unity 自動完成開始工作:)

要解決此問題,我必須在 Unity 上將 go 轉到“首選項”,然后在“外部工具”選項卡中。

對於“外部腳本編輯器”,已經選擇了“Visual Studio Code”。

我點擊了“重置參數”,然后點擊了“Generate.csproj files for:”,沒有選擇任何東西。 然后我點擊“重新生成項目文件”。

然后我重新加載了 VS Code,Intellisense 開始工作了。

清除打字稿緩存並將打字稿版本降級到 3.3 為我解決了這個問題。

按照以下步驟清除緩存並降級打字稿版本:

  1. 根據您的操作系統在終端中輸入以下命令並刪除其中的任何內容。
  • Mac: ~/Library/Caches/TypeScript/
  • Windows: %LOCALAPPDATA%\\Microsoft\\TypeScript\\ (Windows 用戶也可以在運行框中運行它)
  • Linux: ~/.cache/typescript/
  1. 使用以下命令安裝此特定的@typescript@3.3
  • npm install -g typescript@3.3
  1. 重新啟動 VSCode。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM