c++相关vscode插件记录
1. c/c++
Windows, Linux, and macOS上c/c++的跨平台开发。特征:智能感知、调试、源代码格式化等
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.rulers": [
120
], //VScode 显示垂直标尺
"editor.formatOnSave": true, //保存时自动化格式化(配置了clang-format为默认的格式化工具,其中配置了google风格)
//不需要 formatOnSave ,用快捷键 ctrl+K,s{"key": "ctrl+k s","command": "workbench.action.files.saveWithoutFormatting"}
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools", //配置configurationProvider,否则,找自定义头文件时有烦人的波浪线
//C_Cpp: Clang_format_style 配置了file(即从当前目录或父目录中的 .clang-format 文件加载样式)
//使用样式 file 调用 clang-format 但找不到 .clang-format 文件时,则用"C_Cpp.clang_format_fallbackStyle"
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, ColumnLimit: 120}", //这里我只需要行列宽度为120的需求
"cmake.sourceDirectory": "${workspaceFolder}/src", //cmake插件,找源CMakeLists.txt
"cpplint.cpplintPath": "/home/zz/GitLab/xx/cpplint.py", //cpplint插件找cpplint.py的路径
"fileheader.configObj": { // 插件配置项
"specialOptions": { //特殊字段允许自定义
"Description": "brief", //Description修改为brief;Description有特殊含义,比如:移动光标到Description :所在行
"特殊字段": "自定义比如LastEditTime/LastEditors"
},
"functionWideNum": 13, // 函数注释等宽设置(0 默认关闭 设置一个正整数即可开启 比如12)
"colon": [
": ",
" "
], // 函数注释中的:去除。所有文件的头部注释和函数注释的默认值(": ", ": " )
"functionParamsShape": [ //函数参数外形自定义(默认["{", "}"])
"[",
"]",
"{",
"}"
],
},
"fileheader.customMade": { //文件头注释。快捷键 ctrl+cmd+i
"Copyright": "Copyright xx Mobile, Inc.",
"Author": "xx",
"Date": "Do not edit", // 设置后默认设置文件生成时间
"Description": "file content",
},
"fileheader.cursorMode": { //函数注释
"Description": "",
"param": "",
"return": "",
},
参考
如何在vscode下将C++代码格式化成Google Style
vscode C++ 开发配置 google code style
VsCode设置一行代码固定长度
vscode如何进行代码注释定制(koroFileHeader)
vs code+cmake开发,头文件显示找不到
VScode C++头文件问题的终极解决办法
clang-format的介绍和使用
VS Code C++ 代码格式化方法(clang-format)