共用方式為


在 Visual Studio 中編輯及重構 C++ 程式碼

Visual Studio 提供數種工具來協助您撰寫、編輯及重構程式碼。

IntelliSense

IntelliSense 是一種強大的程式碼完成工具,可在您鍵入時為您提供符號與程式碼片段的建議。 Visual Studio 中的 C++ IntelliSense 會即時執行,以便在您更新程式碼基底時進行分析並提供建議。 當您鍵入更多字元時,建議的結果清單就會縮小。

C 加上成員清單下拉式清單下拉式清單的螢幕快照,其中顯示字串可用的方法,例如附加、指派等等。

自動省略某些符號可縮小結果範圍。 例如,從類別外部存取類別對象的成員時,您預設將無法看到私人成員或受保護的成員(如果您不在子類別的內容中)。 您可以使用底部的按鈕來調整篩選。

從下拉式清單中選擇符號之後,您可以使用 Tab、Enter 或其中一個其他認可字元自動完成它(預設為:{ } [ ] ( ) . , : ; + - * / % & | ^ ! = ? @ # \)。 若要新增或移除此清單中的字元,請在 [快速啟動] 中搜尋 “IntelliSense”,然後選擇 [文本編輯器 > C/C++ > 進階] 選項。 [成員清單認可字元] 選項可讓您以所需的變更自訂清單。

[成員清單篩選模式] 選項可控制您所看到的 IntelliSense 自動完成建議種類。 根據預設,它會設定為 [模糊]。 在模糊搜尋中,如果您有一個稱為 MyAwesomeClass 的符號,您可以鍵入 "MAC",並在您的自動完成建議中尋找該類別。 模糊演算法會設定臨界值下限,符號必須符合該臨界值才會顯示在清單中。 智慧型篩選會顯示內含子字串符合鍵入內容的所有符號。 前置詞篩選則會搜尋以您所鍵入內容為開頭的字串。

如需 C++ IntelliSense 的詳細資訊,請參閱 Visual C++ IntelliSense設定 C++ IntelliSense 專案

IntelliCode

IntelliCode 是 AI 輔助的 IntelliSense。 它會將最有可能的候選項目放在完成清單頂端。 IntelliCode 建議是根據 GitHub 上數以千計的開放原始碼專案,每個都超過 100 顆星。 與您的程式碼內容結合使用時,可量身打造完成清單,以便升級常見做法。

當撰寫 C++ 時,IntelliCode 將會在使用 C++ 標準程式庫之類的熱門程式庫時提供協助。 您的程式碼內容用來先提供最有用建議。 在下列範例中, size 成員函式通常與函式搭配 sort 使用,因此會浮出結果清單頂端。

C 加上 IntelliCode 下拉式清單的螢幕快照,其中顯示已排序的向量類別成員,這些成員最常用於程式代碼中。

在 Visual Studio 2022 和 Visual Studio 2019 中,IntelliCode 可在 C++ 桌面開發工作負載中作為選擇性元件使用。 若要確定 IntelliCode 可供 C++ 使用,請移至 [工具]>[選項]>[IntelliCode]>[一般],並將 [C++ 基底模型] 設定為 [已啟用]

在 Visual Studio 2017 中,IntelliCode 則是以 Visual Studio Marketplace 的延伸模組形式提供。

預測性 IntelliSense (實驗性)

[預測性 IntelliSense] 是一項實驗性功能,可使用內容感知來限制 IntelliSense 下拉式清單中顯示的結果數目。 此演算法會套用類型比對,以便只顯示符合預期類型的結果。 在最簡單的情況下,如果您鍵入 int x = 並叫用 IntelliSense 下拉式清單,則只會看到整數或傳回整數的函式。 此功能預設為關閉,因為它仍在開發中。 它最適合與全域符號搭配使用;尚不支持成員函式。 您可以開啟這項功能,方法是在 [快速啟動] 中鍵入「預測」,或移至 [工具]>[選項]>[文字編輯器]>[C/C++]>[實驗性]>[啟用預測性 IntelliSense]

若要覆寫 預測性 IntelliSense 並顯示較長的清單,請按 Ctrl + J。如果 預測性 IntelliSense 開啟,叫用 Ctrl + J 會移除預測性篩選。 再次按下 Ctrl + J 則會從相關的成員清單結果中移除存取範圍篩選。 [IntelliSense] 下拉式清單下的 [+]] 按鈕會執行 與 Ctrl + J 相同的動作。將滑鼠停留在按鈕上方,以查看顯示內容的工具提示資訊。

C 加上預測性 IntelliSense 的螢幕快照。

上述螢幕擷取畫面顯示下拉式清單底下的數個按鈕。 這些可讓 IntelliSense 篩選取得不同類型的結果:

  • 變數和常數
  • 函式
  • 類型
  • 巨集
  • 列舉
  • 命名空間

只有在與目前的 IntelliSense 會話相關時,才會顯示按鈕。 您通常不會同時看到所有按鈕。

範本 IntelliSense

範本列是當您的數據指標位於範本定義時出現的UI元素。 它很有用,因為您可以提供 Intellisense 的範例範本自變數,當您編輯範本主體時會出現。 例如,您可以指定樣板自變數的類型為 std::vector<int>。 然後,當您在範本主體中使用該自變數時,您會在 Intellisense 中看到 的成員 std::vector<int>

範本列的螢幕快照,其中已醒目提示 [新增所有現有具現化] 選項。

按兩下 T> 圖示以展開/折疊範本列。< 按兩下鉛筆圖示,或按兩下 [樣本列 ] 以開啟 您指定參數自變數類型的 [編輯 ] 視窗。

範本列內編輯體驗的螢幕快照,您可以在其中輸入每個範本參數的類型。

範本列可以根據程式代碼中範本的具現化,自動填入參數類型。 按一下 [新增所有現有具現化],以查看用來在整個程式碼基底中具現化範本的所有具體引數清單。

範本 IntelliSense 結果的螢幕快照,其中列出用來具現化範本參數 C 的不同類型,例如 C = AmbientLight、C = Candle 等等。

編輯器底部的視窗會顯示發現每個具現化的位置,以及其引數。 您可以選取具現化,以移至程式代碼中找到該具現化的位置。

程式代碼中範本具現化清單的螢幕快照。會列出具現化、檔案、位置和自變數。

範本列 資訊是使用者特定的。 它儲存在 .vs 資料夾中,且不會認可至原始檔控制。

錯誤波浪線與快速檢修

如果編輯器偵測到您的程式碼出現問題,它會在問題底下新增有顏色的波浪線。 紅色波浪線表示無法編譯的程式碼。 綠色波浪線表示可能仍然有潛在嚴重問題的其他問題類型。 您可以開啟 [錯誤清單] 視窗來取得問題的相關資訊。

針對某些種類的錯誤和常見的程式代碼撰寫模式,編輯器會以燈泡的形式提供 快速修正 ,當您將滑鼠停留在波浪線上方時出現。 請按一下向下箭號來查看建議。

在下列範例中,已宣告 vector 但找不到任何定義,因此編輯器會包含必要的標頭檔:

錯誤的螢幕快照,以及 #include vector 的建議快速修正。

編輯器也會提供快速檢修以獲取一些重構機會。 例如,如果您在標頭檔中宣告類別,Visual Studio 將會在個別的 .cpp 檔案中為其建立定義。

顯示快速修正的螢幕快照,其中已醒目提示 [信道路由反覆運算器] 選項中的 [建立信道路由反覆運算器] 選項。

變更追蹤

每當您變更檔案時,左側會顯示一條黃色列,表示已進行未儲存的變更。 當您儲存檔案時,該列會變成綠色。 只要在編輯器中開啟文件,就會呈現綠色列和黃色列。 它們代表您上次開啟文件以來所進行的變更。

C 加上變更追蹤的螢幕快照。左邊的黃色列會顯示,表示變更。

移動程式碼

您可以選取程式碼行並按住 Alt 鍵,然後按 [向上鍵/向下鍵],將這些程式碼行向上及向下移動。

插入程式碼片段

程式碼片段是預先定義的原始碼片段。 以滑鼠右鍵按兩下單一點或選取的文字,然後選取[代碼段] 以插入代碼段,或以代碼段括住選取的文字。 下圖顯示以 for 迴圈圍繞所選陳述式的三個步驟。 最終影像中的黃色反白顯示就是您使用 tab 鍵存取的可編輯欄位。 如需詳細資訊,請參閱 Code Snippets

[插入代碼段] 下拉式控件的螢幕快照。

已選取函式。 在以滑鼠右鍵按下函式名稱之後出現的下拉式清單中,以滑鼠右鍵按兩下 [括住... ]會以黃色反白顯示。 在 [環繞與:] 下拉式清單中,會選取 'for' 迴圈的代碼段。 這會導致在函式周圍放置 for 迴圈。 迴圈變數和限制會以黃色顯示,表示它們為可編輯的欄位。

加入類別

從 [專案] 功能表或從 [方案總管] 的操作功能表新增類別:

[新增類別] 對話框的螢幕快照。它有類別名稱、輔助功能、檔案的欄位,可放置宣告和實作等等。

您也可以使用 [類別精靈] 來修改或檢查現有的類別。

[類別精靈] 的螢幕快照,其中包含新增方法、成員變數等選項。

如需詳細資訊,請參閱使用程式碼精靈新增功能 (C++)

重構

重構可以從 [快速動作] 操作功能表下取得,或是按一下編輯器中的燈泡。 有些也會在 [ 編輯 > 重構 ] 功能表中找到。 這些功能包括:

使用 ClangFormat 和 EditorConfig 施行程式碼樣式

Visual Studio 2017 和更新版本隨附 ClangFormat 的內建支援,這是一種根據 Clang/LLVM 的 C++ 熱門程式碼格式化公用程式。 請在 快速啟動 中鍵入 "ClangFormat",將它設定為使用其中一種常見格式:

  • LLVM
  • Google
  • Chromium
  • Mozilla
  • WebKit
  • Visual Studio

您也可以提供您自己的 .clang-format_clang-format 檔案,將自定義規則套用至相同層級或以下的所有程式碼檔案。

這些檔案可透過原始檔控制輕鬆共用,因此您可以在整個開發小組中施行程式碼撰寫慣例。

顯示 .clang 格式檔案的螢幕快照,其中包含許多選項,例如數據行限制、縮排寬度、定位寬度等等。

Visual Studio 2017 和更新版本也支援以類似方式運作的 EditorConfig。 不過,ClangFormat 的樣式選項比 EditorConfig 更多,包括C++特有的規則。 使用 EditorConfig 時,您可以建立 .editorconfig 檔案,並將它們放在程式碼基底的不同資料夾中,用來指定這些資料夾及其子資料夾的程式碼樣式。 .editorconfig 檔案會取代父資料夾中的任何其他 .editorconfig 檔案,並覆寫任何透過 [工具]>[選項] 設定的格式設定。 您可以針對定位點與空格、縮排大小及其他項目設定一些規則。 如需詳細資訊,請參閱使用 EditorConfig 建立可攜式自訂編輯器設定

其他格式化選項

[快速啟動] 搜尋方塊提供尋找設定或工具的最快方式。 它位於主功能表上。 只要開始鍵入,自動完成清單就會篩選結果。

[快速啟動] 搜尋方塊的螢幕快照。它會顯示搜尋 C 加上進階,這會導致文字編輯器的選項。

若要設定格式化選項,例如縮排、以大括弧完成和顏色標示,請在 [快速啟動] 視窗中鍵入 "C++ Formatting"。

顯示C++格式選項的螢幕快照,例如當您輸入索引標籤時是否要自動縮排。

其他格式化選項位於主功能表的 [編輯]>[進階] 下方。

顯示進階編輯選項的螢幕快照,例如檢視空格符、自動換行、批注選取範圍、增加行縮排等等。

啟用及設定 C++- 特定編輯功能的選項位於 [工具]>[選項]>[文字編輯器]>[C/C++] 下方。 選擇您想要設定的選項之後,您可以在對話方塊成為焦點時按下 F1 來取得更多說明。 針對一般程式碼格式化選項,請在 [快速啟動] 中鍵入 Editor C++

顯示已選取 Visual Studio 功能表項 [工具] 和 [選項] 選單項醒目提示的螢幕快照。

您可以在文字編輯器 C++ 實驗對話方塊中找到不一定包含在 Visual Studio 未來版本中的實驗性功能。 在 Visual Studio 2017 和更新版本中,您可以啟用這個對話方塊中的 [預測性 IntelliSense]

另請參閱

閱讀並瞭解C++程式代碼 流覽 Visual Studio
中的 C++ 程式代碼
基底與 Live Share for C++