IntelliSense 組態
使用此編輯器來編輯基礎 c_cpp_properties.json 檔案中定義的 IntelliSense 設定。在此編輯器中進行的變更只會套用到選取的組態。若要一次編輯多個組態,請前往 c_cpp_properties.json。
設定名稱
識別組態的易記名稱。
Linux、Mac 及 Win32 是特殊識別項,適用於會在這些平台上自動選取的組態。選取組態檔以編輯內容。
|
|
|
編譯器路徑
用於建置專案的編譯器完整路徑 (例如
/usr/bin/gcc),其可讓 IntelliSense 更加精準。該延伸模組將會查詢編譯器,決定要用於 IntelliSense 的系統 include 路徑與預設的定義。
指定編譯器路徑,或從下拉式清單中選取偵測到的編譯器路徑。
編譯器引數
用來修改所使用之包含或定義的編譯器引數,例如
-nostdinc++、-m32 等。採用其他空格分隔引數的引數應在陣列中輸入為個別的引數,例如,針對 --sysroot <arg> 使用 "--sysroot", "<arg>"。每行一個引數。
IntelliSense 模式
要使用的 IntelliSense 模式 (對應到 MSVC、gcc 或 Clang 的平台及架構變體)。如果未設定或設為
${default},延伸模組會選擇該平台的預設。Windows 預設為 windows-msvc-x64、Linux 預設為 linux-gcc-x64、macOS 預設為 macos-clang-x64。選取特定的 IntelliSense 模式可覆寫 ${default} 模式。僅指定 <compiler>-<architecture> 變體 (例如 gcc-x64) 的 IntelliSense 模式即為舊版模式,會依據主機平台自動轉換為 <platform>-<compiler>-<architecture> 變體。
包含路徑
include 路徑是包含來源檔案所含之標頭檔 (例如
#include "myHeaderFile.h") 的資料夾。請為 IntelliSense 引擎指定搜尋所含標頭檔時所要使用的路徑清單。這些路徑不會重複搜尋。若要重複搜尋,請指定 **。例如 ${workspaceFolder}/** 會搜尋所有子目錄,而 ${workspaceFolder} 不會。若在安裝了 Visual Studio 的 Windows 上,或在 compilerPath 設定中指定了編譯器,就無須在此清單中列出系統的 include 路徑。
每行一個包含路徑。
定義
剖析檔案時,IntelliSense 引擎要使用的前置處理器定義清單。可使用
= 來設定值,例如 VERSION=1。每行一個定義。
C 標準
用於 IntelliSense 的 C 語言標準版本。注意: GNU 標準僅會用於查詢設定編譯器以取得 GNU 定義,而 IntelliSense 將會模擬相同的 C 標準版本。
C++ 標準
用於 IntelliSense 的 C++ 語言標準版本。注意: GNU 標準僅會用於查詢設定編譯器以取得 GNU 定義,而 IntelliSense 將會模擬相同的 C++ 標準版本。
組態提供者
可為來源檔案提供 IntelliSense 設定資訊 VS Code 延伸模組的識別碼。例如,使用 VS Code 延伸模組識別碼
ms-vscode.cmake-tools 從 CMake Tools 延伸模組提供組態資訊。Windows SDK 版本
要在 Windows 上使用的 Windows SDK 包含路徑版本,例如
10.0.17134.0。Mac 架構路徑
供 IntelliSense 引擎在 Mac 架構中搜尋包含的標頭時使用的路徑清單。僅支援 macOS 設定。
每行一個路徑。
強制包含
處理來源檔案中的任何其他字元前,應包含的檔案清單。檔案會包含在列出的清單中。
每行一個檔案。
點設定
Kconfig 系統所建立之 .config 檔案的路徑。Kconfig 系統會產生具有建置專案之所有定義的檔案。使用 Kconfig 系統的專案範例為 Linux 核心與 NuttX RTOS。
編譯命令
工作區的
compile_commands.json 檔案的路徑清單。系統會使用在這些檔案中探索到的包含路徑和定義,而不是為 includePath 與 defines 設定所設定的值。如果編譯命令資料庫不包含與您在編輯器中開啟之檔案相的對應翻譯單位項目,就會出現警告訊息,而延伸模組會改為使用 includePath 和 defines 設定。
每行一個編譯命令路徑。
合併設定
當
true (或核取) 時,請將 includePath、defines、forcedInclude 和 browse.path 與從設定提供者收到的項目合併。
瀏覽: 路徑
供標籤剖析器在搜尋原始程式檔包含的標頭時使用的路徑清單。若省略,就會使用
includePath 當作 path。根據預設,會在這些路徑進行遞迴搜尋。指定 * 來指示非遞迴搜尋。例如: /usr/include 會在所有子目錄中搜尋,但 /usr/include/* 不會。
每行一個瀏覽路徑。
瀏覽: 將符號限制為包含的標頭
若為
true (或已選取),標籤剖析器只會剖析 ${workspaceFolder} 中原始程式檔直接或間接包含的程式碼檔。若為 false (或未選取),標籤剖析器會剖析在 Browse: path 清單中的指定路徑找到的所有程式碼檔。
瀏覽: 資料庫檔案名稱
產生符號資料庫路徑。這會指示延伸模組將標籤剖析器的符號資料庫儲存在工作區預設儲存位置以外的某處。如果指定了相對路徑,就會是相對於工作區預設儲存位置 (非工作區資料夾本身) 的路徑。
${workspaceFolder} 變數可用於指定相對於工作區資料夾的路徑 (例如 ${workspaceFolder}/.vscode/browse.vc.db)。
遞迴包含: 減少
設定為
always,可使 IntelliSense 僅提供目前由 #include 陳述式參考的遞迴包含路徑。這需要先剖析檔案,以確定包含哪些檔案。設定為 never 以將所有遞迴包含路徑提供給 IntelliSense。當涉及非常大量的遞迴包含路徑時,減少遞迴包含路徑數目可能會改善 IntelliSense 的效能。不減少遞迴包含路徑的數量,可避免需要剖析檔案以決定要提供哪些包含路徑,從而 IntelliSense 效能。
遞迴包含: 優先順序
遞迴包含路徑的優先順序。如果設定為
beforeSystemIncludes,則會在系統包含路徑之前搜尋遞迴包含路徑。如果設定為 afterSystemIncludes,則會在系統包含路徑之後搜尋遞迴包含路徑。
遞迴包含: 順序
搜尋遞迴包含路徑下子目錄的順序。