c++相關vscode插件記錄


1.  c/c++

 Windows, Linux, and macOS上c/c++的跨平台開發。特征:智能感知、調試、源代碼格式化等

相關配置:

"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, ColumnLimit: 120}", //這里我只需要行列寬度為120的需求 
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools", //配置configurationProvider,否則,找自定義頭文件時有煩人的波浪線

 

 2. CMake Tools

 特征:配置、構建和調試一c++ CMake項目

依賴“1.c/c++”插件、“CMake”

  • 命令面板中的命令:
  • 其次,狀態欄也可以配置、構建:

  • 記錄1:設置根CMakeList.txt路徑(相對當前打開的文件夾路徑)

體現在全局(設置的工作區).vscode/setting.json中:

"cmake.sourceDirectory": "${workspaceFolder}/src", //cmake插件,找源CMakeLists.txt

  • 記錄2:源碼引用的頭文件遇到紅色波浪線,錯誤如下:

基於 configurationProvider 設置提供的信息檢測到 #include 錯誤。已針對此翻譯單元(XXXX)禁用波形曲線。C/C++(1696)

這種情況需要在settings.json中添加一個配置項,使配置的信息來源於cmake。

“C_Cpp.default.configurationProvider”: “ms-vscode.cmake-tools”

 

 

項目要求之一:CPPLint靜態檢查。為了應對此項要求,安裝三個插件:cpplint, Clang-Format, koroFileHeader

 

3. cpplint

特征:打開和保存源文件時,檢查CPP和c的編碼風格

  • 設置CppLint路徑:

體現在全局(設置的工作區).vscode/setting.json中:

"cpplint.cpplintPath": "/home/zz/GitLab/weblmt/cpplint.py", //cpplint插件找cpplint.py的路徑

  • 命令面板中的命令:

 

4. Clang-Format

【這段新增於2021-11-05】安裝clang-format插件的替代方案:

插件1 c/c++ 中已經有了格式化的方案:

 

  其中:Clang_format_style 決定格式化形式,若為file,則調用在workspace中的.clang-format

clang-format工具使用.clang-format來實現自定義格式化,使用" clang-format -style=可選格式名 -dump-config > .clang-format "導出clang-format,其中可選格式名為:LLVM、Google等。若要在團隊中統一格式,則配置此文件即可。

C_Cpp: Clang_format_fallback Style選項則是在 Clang_format_style=file失效(即找不到.clang-format文件時)的應對方案。參考截圖中可以配置的value。

在這里我的方案是,Clang_format_style=file,以應對以后團隊中為統一格式而生成.clang-format文件。目前沒有此文件,所以走Clang_format_fallback Style選項中的{key:value...},即{ BasedOnStyle: Google, ColumnLimit: 120}//這里我只有列最大120的需求(ps,vscode編輯器中顯示列標尺的設置:“editor.rulers:[120]”)

最后,在代碼編輯器中,右鍵-使用...格式化文檔-配置默認格式化程序,改為c/c++插件即可。

【這段新增於2021-11-05,結束】

  "3. cpplint"只能按照指定腳本(+ CPPLINT.cfg)的Google Stype檢查C++代碼是否符合要求並指出不符合需要修改的地方,但是沒有format的功能。可以使用Clang-Format將源碼格式化成google風格。

  • 首先,在環境中安裝clang-format可執行文件,先在bash中執行:
sudo  apt-get install clang-format
  • 安裝插件
  • 設置1:在此插件的擴展設置中搜索關鍵詞:"Clang-format: Fallback Style", "Clang-format: Style"。此兩項設置為 Google

體現在全局(設置的工作區).vscode/setting.json中:

"clang-format.fallbackStyle": "Google",
"clang-format.style": "Google"

  • 設置2:保存源碼時自動保存。

"editor.formatOnSave": true, //保存時自動化格式化(配置了clang-format為默認的格式化工具,其中配置了google風格)

  • 此外也可以鼠標右鍵用格式化

備注:我理解的此插件是調用clang-format工具。可以設置格式化規則:GOOGLE、LLVM等。要是設置成file,就按照路徑下的 .clang-format文件 規則來自定義格式化。這里設置為Google風格格式化,但是並非項目中"3. cpplint"設置的項目中的CppLint路徑(此腳本按照CPPLINT.cfg規則進行刪減),而設置的google風格為全集。比如CPPLINT.cfg中限制的一行代碼長度為120(linelength=120),但是經過此格式化以后按照GOOGLE風格默認的80。

因此想要自定義+簡單的話 建議使用上述c++插件中的Clang_format_fallback Style中自定義,這樣不用自己生成.clang-format文件。

5. koroFileHeader

特征:在vscode中用於生成文件頭部注釋和函數注釋的插件。為滿足cpplint檢查中源碼中頭部需要有版權聲明等要求。利用此插件按照既定格式插入頭部、函數注釋。

  • 設置: Custom Made 對於頭部注釋、Cursor Mode 對應函數注釋。

體現在全局(設置的工作區).vscode/setting.json中:

"fileheader.customMade": { //快捷鍵 ctrl+cmd+i,按照下面的key/value生成文件頭注釋
"Copyright": "Copyright Datang Mobile, Inc.",
"Author": "zhangzhong",
"Date": "Do not edit",
"Description": "file content",
},

  • 快捷鍵:

    文件頭部添加注釋:快捷鍵:window:ctrl+alt+i,mac:ctrl+cmd+i, linux: ctrl+meta+i

    在光標處添加函數注釋:快捷鍵:window:ctrl+alt+t,mac:ctrl+cmd+t,linux: ctrl+meta+t

 

綜上,.vscode/setting.json中的配置如下:

 
         
{
// editor
"editor.formatOnSaveMode": "modifications",
"editor.formatOnSave": true, //不需要 formatOnSave ,用快捷鍵 ctrl+K,s{"key": "ctrl+k s","command": "workbench.action.files.saveWithoutFormatting"}
// X: c/c++
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, ColumnLimit: 120}", //這里我只需要行列寬度為120的需求
//C_Cpp: Clang_format_style 默認配置file(即從當前目錄或父目錄中的 .clang-format 文件加載樣式)
//使用樣式 file 調用 clang-format 但找不到 .clang-format 文件時,則用"C_Cpp.clang_format_fallbackStyle"
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools", //配置configurationProvider,否則,找自定義頭文件時有煩人的波浪線
// X: cmake
"cmake.sourceDirectory": "${workspaceFolder}/src", //根CMakeLists.txt位置
// X: cpplint
"cpplint.cpplintPath": "/home/zz/GitLab/weblmt/cpplint.py", //cpplint插件找cpplint.py的路徑
// X: koroFileHeader
// koroFileHeader 插件配置項
"fileheader.configObj": {
"specialOptions": { //特殊字段允許自定義
"Description": "brief", //Description修改為brief;Description有特殊含義,比如:移動光標到Description :所在行
"特殊字段": "自定義比如LastEditTime/LastEditors"
},
"functionWideNum": 13, // 函數注釋等寬設置(0 默認關閉 設置一個正整數即可開啟 比如12)
"colon": [
": ",
" "
], // 函數注釋中的:去除。所有文件的頭部注釋和函數注釋的默認值(": ", ": " )
"functionParamsShape": [ //函數參數外形自定義(默認["{", "}"])
"[",
"]",
"{",
"}"
],
},
// 文件頭注釋,快捷鍵 ctrl+cmd+i , 按照下面的key/value生成
"fileheader.customMade": {
"Copyright": "Copyright Datang Mobile, Inc.",
"Author": "zhangzhong",
"Date": "Do not edit",
"Description": "file content",
},
"fileheader.cursorMode": { //函數注釋, 快捷鍵 ctrl+cmd+t
"Description": "",
"param": "",
"return": "",
},
// X: Clang-Format
// "clang-format.language.c.style": "Google", //配置clang-format插件的格式化風格為goolge
// "clang-format.fallbackStyle": "Google",
// "clang-format.style": "Google"
}

參考

如何在vscode下將C++代碼格式化成Google Style

vscode C++ 開發配置 google code style

VsCode設置一行代碼固定長度

vscode如何進行代碼注釋定制(koroFileHeader)

vs code+cmake開發,頭文件顯示找不到

VScode C++頭文件問題的終極解決辦法

clang-format的介紹和使用

VS Code C++ 代碼格式化方法(clang-format)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM