在 Visual Studio 中編輯及重構 C++ 程式碼
Visual Studio 提供數種工具來協助您撰寫、編輯及重構程式碼。
IntelliSense
IntelliSense 是一種強大的程式碼完成工具,可在您鍵入時為您提供符號與程式碼片段的建議。 Visual Studio 中的 C++ IntelliSense 會即時執行,以便在您更新程式碼基底時進行分析並提供建議。 當您鍵入更多字元時,建議的結果清單就會縮小。
自動省略某些符號可縮小結果範圍。 例如,從類別外部存取類別對象的成員時,您預設將無法看到私人成員或受保護的成員(如果您不在子類別的內容中)。 您可以使用底部的按鈕來調整篩選。
從下拉式清單中選擇符號之後,您可以使用 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
使用,因此會浮出結果清單頂端。
在 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 相同的動作。將滑鼠停留在按鈕上方,以查看顯示內容的工具提示資訊。
上述螢幕擷取畫面顯示下拉式清單底下的數個按鈕。 這些可讓 IntelliSense 篩選取得不同類型的結果:
- 變數和常數
- 函式
- 類型
- 巨集
- 列舉
- 命名空間
只有在與目前的 IntelliSense 會話相關時,才會顯示按鈕。 您通常不會同時看到所有按鈕。
範本 IntelliSense
範本列是當您的數據指標位於範本定義時出現的UI元素。 它很有用,因為您可以提供 Intellisense 的範例範本自變數,當您編輯範本主體時會出現。 例如,您可以指定樣板自變數的類型為 std::vector<int>
。 然後,當您在範本主體中使用該自變數時,您會在 Intellisense 中看到 的成員 std::vector<int>
。
按兩下 T> 圖示以展開/折疊範本列。< 按兩下鉛筆圖示,或按兩下 [樣本列 ] 以開啟 您指定參數自變數類型的 [編輯 ] 視窗。
範本列可以根據程式代碼中範本的具現化,自動填入參數類型。 按一下 [新增所有現有具現化],以查看用來在整個程式碼基底中具現化範本的所有具體引數清單。
編輯器底部的視窗會顯示發現每個具現化的位置,以及其引數。 您可以選取具現化,以移至程式代碼中找到該具現化的位置。
範本列 資訊是使用者特定的。 它儲存在 .vs
資料夾中,且不會認可至原始檔控制。
錯誤波浪線與快速檢修
如果編輯器偵測到您的程式碼出現問題,它會在問題底下新增有顏色的波浪線。 紅色波浪線表示無法編譯的程式碼。 綠色波浪線表示可能仍然有潛在嚴重問題的其他問題類型。 您可以開啟 [錯誤清單] 視窗來取得問題的相關資訊。
針對某些種類的錯誤和常見的程式代碼撰寫模式,編輯器會以燈泡的形式提供 快速修正 ,當您將滑鼠停留在波浪線上方時出現。 請按一下向下箭號來查看建議。
在下列範例中,已宣告 vector
但找不到任何定義,因此編輯器會包含必要的標頭檔:
編輯器也會提供快速檢修以獲取一些重構機會。 例如,如果您在標頭檔中宣告類別,Visual Studio 將會在個別的 .cpp 檔案中為其建立定義。
變更追蹤
每當您變更檔案時,左側會顯示一條黃色列,表示已進行未儲存的變更。 當您儲存檔案時,該列會變成綠色。 只要在編輯器中開啟文件,就會呈現綠色列和黃色列。 它們代表您上次開啟文件以來所進行的變更。
移動程式碼
您可以選取程式碼行並按住 Alt 鍵,然後按 [向上鍵/向下鍵],將這些程式碼行向上及向下移動。
插入程式碼片段
程式碼片段是預先定義的原始碼片段。 以滑鼠右鍵按兩下單一點或選取的文字,然後選取[代碼段] 以插入代碼段,或以代碼段括住選取的文字。 下圖顯示以 for 迴圈圍繞所選陳述式的三個步驟。 最終影像中的黃色反白顯示就是您使用 tab 鍵存取的可編輯欄位。 如需詳細資訊,請參閱 Code Snippets。
已選取函式。 在以滑鼠右鍵按下函式名稱之後出現的下拉式清單中,以滑鼠右鍵按兩下 [括住... ]會以黃色反白顯示。 在 [環繞與:] 下拉式清單中,會選取 'for' 迴圈的代碼段。 這會導致在函式周圍放置 for 迴圈。 迴圈變數和限制會以黃色顯示,表示它們為可編輯的欄位。
加入類別
從 [專案] 功能表或從 [方案總管] 的操作功能表新增類別:
您也可以使用 [類別精靈] 來修改或檢查現有的類別。
如需詳細資訊,請參閱使用程式碼精靈新增功能 (C++)。
重構
重構可以從 [快速動作] 操作功能表下取得,或是按一下編輯器中的燈泡。 有些也會在 [ 編輯 > 重構 ] 功能表中找到。 這些功能包括:
使用 ClangFormat 和 EditorConfig 施行程式碼樣式
Visual Studio 2017 和更新版本隨附 ClangFormat 的內建支援,這是一種根據 Clang/LLVM 的 C++ 熱門程式碼格式化公用程式。 請在 快速啟動 中鍵入 "ClangFormat",將它設定為使用其中一種常見格式:
- LLVM
- Chromium
- Mozilla
- WebKit
- Visual Studio
您也可以提供您自己的 .clang-format
或 _clang-format
檔案,將自定義規則套用至相同層級或以下的所有程式碼檔案。
這些檔案可透過原始檔控制輕鬆共用,因此您可以在整個開發小組中施行程式碼撰寫慣例。
Visual Studio 2017 和更新版本也支援以類似方式運作的 EditorConfig。 不過,ClangFormat 的樣式選項比 EditorConfig 更多,包括C++特有的規則。 使用 EditorConfig 時,您可以建立 .editorconfig 檔案,並將它們放在程式碼基底的不同資料夾中,用來指定這些資料夾及其子資料夾的程式碼樣式。 .editorconfig 檔案會取代父資料夾中的任何其他 .editorconfig 檔案,並覆寫任何透過 [工具]>[選項] 設定的格式設定。 您可以針對定位點與空格、縮排大小及其他項目設定一些規則。 如需詳細資訊,請參閱使用 EditorConfig 建立可攜式自訂編輯器設定。
其他格式化選項
[快速啟動] 搜尋方塊提供尋找設定或工具的最快方式。 它位於主功能表上。 只要開始鍵入,自動完成清單就會篩選結果。
若要設定格式化選項,例如縮排、以大括弧完成和顏色標示,請在 [快速啟動] 視窗中鍵入 "C++ Formatting"。
其他格式化選項位於主功能表的 [編輯]>[進階] 下方。
啟用及設定 C++- 特定編輯功能的選項位於 [工具]>[選項]>[文字編輯器]>[C/C++] 下方。 選擇您想要設定的選項之後,您可以在對話方塊成為焦點時按下 F1 來取得更多說明。 針對一般程式碼格式化選項,請在 [快速啟動] 中鍵入 Editor C++
。
您可以在文字編輯器 C++ 實驗對話方塊中找到不一定包含在 Visual Studio 未來版本中的實驗性功能。 在 Visual Studio 2017 和更新版本中,您可以啟用這個對話方塊中的 [預測性 IntelliSense]。
另請參閱
閱讀並瞭解C++程式代碼 流覽 Visual Studio
中的 C++ 程式代碼
基底與 Live Share for C++