IntelliSense

IntelliSense 是各種程式碼編輯功能的通稱,包括:程式碼完成 (code completion)、參數資訊 (parameter info)、快速資訊 (quick info) 和成員列表 (member lists)。IntelliSense 功能有時也被稱為其他名稱,例如「程式碼完成」、「內容輔助 (content assist)」和「程式碼提示 (code hinting)」。

針對您的程式語言使用 IntelliSense

Visual Studio Code 對 JavaScript、TypeScript、JSON、HTML、CSS、SCSS 和 Less 開箱即用提供 IntelliSense 支援。VS Code 支援對任何程式語言進行基於單字的自動完成,但也可以透過安裝語言擴充功能來設定更豐富的 IntelliSense。

以下是 Visual Studio Marketplace 中最受歡迎的語言擴充功能。選擇下方的擴充功能圖塊以閱讀說明和評論,決定哪一個擴充功能最適合您。

IntelliSense 功能

VS Code 的 IntelliSense 功能是由語言服務 (language service) 所驅動。語言服務根據語言語法和您的原始碼分析,提供智慧型程式碼完成功能。如果語言服務知道可能的完成項目,IntelliSense 建議會在您輸入時彈出。如果您繼續輸入字元,成員列表(變數、方法等)會進行篩選,只包含包含您所輸入字元的成員。按下 TabEnter 鍵將會插入選取的成員。

您可以透過輸入 ⌃Space (Windows, Linux Ctrl+Space) 或輸入觸發字元(例如 JavaScript 中的點號 (.)),在任何編輯器視窗中觸發 IntelliSense。

提示

建議控制項支援 CamelCase(駝峰式大小寫)篩選,這表示您可以輸入方法名稱中的大寫字母來限制建議。例如,輸入 "cra" 會帶出 "createApplication"。

如果您偏好,可以在輸入時關閉 IntelliSense。請參閱 自訂 IntelliSense,了解如何停用或自訂 VS Code 的 IntelliSense 功能。

由語言服務提供,您可以按下 ⌃Space (Windows, Linux Ctrl+Space) 或選擇 > 圖示,查看每個方法的快速資訊。該方法的隨附文件會向旁邊展開。展開的文件會保持可見,並在您瀏覽列表時進行更新。您可以再次按下 ⌃Space (Windows, Linux Ctrl+Space) 或選擇關閉圖示來將其關閉。

選擇方法後,系統會為您提供參數資訊

parameter info

在適用的情況下,語言服務會在快速資訊和方法簽章中顯示基礎類型。在先前的螢幕截圖中,您可以看到幾個 any 類型。由於 JavaScript 是動態的且不需要或強制執行類型,any 表示該變數可以是任何類型。

自動完成的類型

下方的螢幕截圖中的 JavaScript 程式碼說明了 IntelliSense 的完成功能。IntelliSense 同時提供了推斷出的提案以及專案的全域識別碼。推斷出的符號會先顯示,接著是全域識別碼(以 abc 文字圖示表示)。

intellisense icons

VS Code IntelliSense 提供不同類型的完成功能,包括語言伺服器建議、程式碼片段 (snippets) 以及簡單的基於文字的自動完成。

圖示 名稱 符號類型
方法與函式 method, function, constructor
變數 變數
欄位 field
類型參數 typeParameter
常數 constant
類別 class
介面 interface
結構 struct
活動 事件
運算子 operator
模組 module
屬性與特性 property
列舉 enum
列舉成員 enumMember
參考資料 參考
關鍵字 keyword
檔案 file
資料夾 folder
顏色 color
單位 unit
程式碼片段首碼 snippet
單字 text

自訂 IntelliSense

您可以在設定和鍵盤快速鍵中自訂您的 IntelliSense 體驗。

設定

下方顯示的設定為預設設定。您可以在 設定編輯器 (⌘, (Windows, Linux Ctrl+,)) 中變更這些設定。

{
    // Controls if quick suggestions should show up while typing
    "editor.quickSuggestions": {
        "other": true,
        "comments": false,
        "strings": false
    },

     // Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.
    "editor.acceptSuggestionOnCommitCharacter": true,

    // Controls if suggestions should be accepted on 'Enter' - in addition to 'Tab'. Helps to avoid ambiguity between inserting new lines or accepting suggestions. The value 'smart' means only accept a suggestion with Enter when it makes a textual change
    "editor.acceptSuggestionOnEnter": "on",

    // Controls the delay in ms after which quick suggestions will show up.
    "editor.quickSuggestionsDelay": 10,

    // Controls if suggestions should automatically show up when typing trigger characters
    "editor.suggestOnTriggerCharacters": true,

    // Controls if pressing tab inserts the best suggestion and if tab cycles through other suggestions
    "editor.tabCompletion": "off",

    // Controls whether sorting favours words that appear close to the cursor
    "editor.suggest.localityBonus": true,

    // Controls how suggestions are pre-selected when showing the suggest list
    "editor.suggestSelection": "first",

    // Enable word based suggestions
    "editor.wordBasedSuggestions": "matchingDocuments",

    // Enable parameter hints
    "editor.parameterHints.enabled": true,
}

Tab 鍵補全

編輯器支援 Tab 鍵補全,這會在按下 Tab 時插入最佳相符的完成項目。無論建議控制項是否顯示,此功能均有效。此外,在插入建議後按下 Tab 會插入下一個最佳建議。

預設情況下,Tab 鍵補全已停用。請使用 editor.tabCompletion 在 VS Code 中開啟 在 VS Code Insiders 中開啟 設定來啟用它。存在這些值

  • off - (預設) Tab 鍵補全已停用。
  • on - 為所有建議啟用 Tab 鍵補全,且重複呼叫會插入下一個最佳建議。
  • onlySnippets - Tab 鍵補全僅插入與目前行首碼相符的靜態程式碼片段。

局部性加權 (Locality bonus)

建議的排序取決於擴充功能資訊以及它們與您正在輸入之目前單字的相符程度。此外,您可以使用 editor.suggest.localityBonus 在 VS Code 中開啟 在 VS Code Insiders 中開啟 設定,要求編輯器提升游標位置附近出現的建議權重。

Sorted By Locality

在先前的螢幕截圖中,您可以看到 countcontextcolocated 是根據它們出現的作用域(迴圈、函式、檔案)進行排序的。

建議選擇

預設情況下,VS Code 會預先選取建議列表中的第一個建議。如果您想要不同的行為(例如,始終選取建議列表中最近使用過的項目),可以使用 editor.suggestSelection 在 VS Code 中開啟 在 VS Code Insiders 中開啟 設定。

可用的 editor.suggestSelection 在 VS Code 中開啟 在 VS Code Insiders 中開啟 值為

  • first - (預設) 始終選取列表頂部的項目。
  • recentlyUsed - 選取先前使用過的項目,除非首碼(輸入以選擇)選取了不同的項目。
  • recentlyUsedByPrefix - 根據先前完成這些建議的預設值選取項目。

選取最近使用過的項目非常有用,因為您可以快速多次插入相同的完成項目。

"輸入以選擇" 表示目前的首碼(大致為游標左側的文字)用於篩選和排序建議。當這種情況發生,且其結果與 recentlyUsed 的結果不同時,它將被優先考慮。

使用最後一個選項 recentlyUsedByPrefix 時,VS Code 會記住針對特定首碼(部分文字)所選取的項目。例如,如果您輸入 co 然後選取了 console,下次您輸入 co 時,console 建議就會被預先選取。這讓您可以快速將各種首碼對應到不同的建議,例如 co -> console 以及 con -> const

建議中的程式碼片段

預設情況下,VS Code 將程式碼片段與完成建議顯示在同一個控制項中。您可以使用 editor.snippetSuggestions 在 VS Code 中開啟 在 VS Code Insiders 中開啟 設定來修改此行為。若要從建議控制項中移除程式碼片段,請將值設為 "none"。如果您希望查看程式碼片段,可以指定它們相對於建議的順序;在頂部 ("top")、在底部 ("bottom") 或依字母順序排列 ("inline")。預設值為 "inline"

鍵盤快速鍵

此處顯示的鍵盤快速鍵為預設值。若要指派不同的鍵盤快速鍵,請使用 鍵盤快速鍵編輯器 (⌘K ⌘S (Windows, Linux Ctrl+K Ctrl+S))。

指令 鍵盤快速鍵
editor.action.triggerSuggest ⌃Space (Windows, Linux Ctrl+Space)
toggleSuggestionDetails ⌃Space (Windows, Linux Ctrl+Space)
toggleSuggestionFocus ⌃⌥Space (Windows, Linux Ctrl+Alt+Space)
提示

還有更多與 IntelliSense 相關的鍵盤快速鍵。請開啟預設鍵盤快速鍵檔案 > 喜好設定 > 鍵盤快速鍵)並搜尋 "suggest"。

使用 AI 強化程式碼完成功能

GitHub Copilot 會在您於編輯器輸入時提供程式設計建議。您也可以詢問 Copilot 與程式設計相關的問題,例如如何最佳化程式碼、如何修正錯誤,或是其他人撰寫的程式碼如何運作。

開始使用

  1. 安裝 GitHub Copilot 擴充功能

  2. 透過我們的 Copilot 快速入門探索關鍵功能。

提示

如果您還沒有 Copilot 訂閱,可以透過註冊 Copilot 免費方案 (Copilot Free plan) 來免費使用 Copilot,並獲得每月行內建議和聊天互動的額度限制。

疑難排解

如果您發現 IntelliSense 停止運作,可能是語言服務未執行。請嘗試重新啟動 VS Code,這通常能解決問題。如果您在安裝語言擴充功能後仍然缺失 IntelliSense 功能,請在該語言擴充功能的儲存庫中開啟問題報告 (issue)。

注意

在非常大的工作區中,出於效能考量,IntelliSense 功能可能會被部分停用。如果發生這種情況,請嘗試使用 files.exclude 在 VS Code 中開啟 在 VS Code Insiders 中開啟 search.exclude 在 VS Code 中開啟 在 VS Code Insiders 中開啟 設定來排除大型資料夾(例如 node_modules 或組建輸出目錄)。

提示

有關設定和疑難排解 JavaScript IntelliSense 的資訊,請參閱 JavaScript 文件

特定的語言擴充功能可能不支援所有的 VS Code IntelliSense 功能。請查閱該擴充功能的 README 以了解支援的內容。如果您認為語言擴充功能有問題,通常可以透過 VS Code Marketplace 找到該擴充功能的問題追蹤儲存庫。請瀏覽該擴充功能的詳細資料頁面並選擇 支援 (Support) 連結。

後續步驟

IntelliSense 只是 VS Code 強大功能的一部分。請繼續閱讀以了解更多

常見問題

為什麼我沒有獲得任何建議?

這可能是由多種原因造成的。首先,嘗試重新啟動 VS Code。如果問題仍然存在,請查閱該語言擴充功能的文件。若為 JavaScript 專用的疑難排解,請參閱 JavaScript 語言主題

為什麼我看不到方法和變數建議?

image of IntelliSense showing no useful suggestions

此問題是由於 JavaScript 中缺少類型宣告 (typings) 檔案所引起的。大多數常見的 JavaScript 程式庫都會隨附宣告檔案,或是提供類型宣告檔案。

請確保為您使用的程式庫安裝對應的 npm 或 yarn 套件。在 使用 JavaScript (Working with JavaScript) 文章中了解更多關於 IntelliSense 的資訊。對於其他語言,請諮詢該擴充功能的文件。

© . This site is unofficial and not affiliated with Microsoft.