英文案例网站,平台推广员,云服务器做网站详细,重庆最大的网络公司1. 插件的用法 1.1. C/C 1.1.1. 插件介绍1.1.2. 插件配置 1.2. Clang-Format1.3. cpp-check-lint 1.3.1. cpplint1.3.2. cppcheck1.3.3. 插件的使用 1.4. C/C Advanced Lint 1.4.1. 插件介绍1.4.2. 插件配置 1.5. Bracket Pair Colorizer 1.5.1. 插件介绍1.5.2. 功能配置 1.6. …1. 插件的用法 1.1. C/C 1.1.1. 插件介绍1.1.2. 插件配置 1.2. Clang-Format1.3. cpp-check-lint 1.3.1. cpplint1.3.2. cppcheck1.3.3. 插件的使用 1.4. C/C Advanced Lint 1.4.1. 插件介绍1.4.2. 插件配置 1.5. Bracket Pair Colorizer 1.5.1. 插件介绍1.5.2. 功能配置 1.6. Code Runner 1.6.1. 插件介绍1.6.2. 插件配置1.6.3. 插件使用 1.7. TODO Highlight 1.7.1. 插件介绍1.7.2. 添加高亮关键字 2. C开发常用的快捷键3. 参考文档
1. 插件的用法
1.1. C/C
1.1.1. 插件介绍
在VSCode下进行C/C开发C/C插件是最重要、功能最强大、也是最复杂的一个插件。我们从C/C的插件配置也能看出端倪整个插件有158项配置包含7大功能模块
IntelliSense: 代码智能提示、补全、跳转等功能集成了C Intellisense插件的几乎所有功能。Formatting: 代码格式化器可对代码进行自动格式化。Code Documentation: 通过代码(注释)生成文档定义注释的样式集成Doxygen等工具。Code Analysis: 代码分析器对代码的错误、风格等进行检查集成了Clang-Tidy。Debugging: Debug调试器。Resource Management: 资源管理器。Miscellaneous: 其他杂项配置。 进行C/C开发C/C是必装的一个插件因为没有这个插件你跟在记事本里写代码没有太大区别。
1.1.2. 插件配置
虽然C/C这个插件功能很多很复杂但是我们也并不需要把158项配置全都了解完。因为大部分配置我们直接用默认的就可以了并不需要逐个去了解他默认配置即是最佳配置。我们只需要了解一小部分常用配置即可。
settings.json
{// 启用|禁用错误提示可选值: enabled, disabledC_Cpp.errorSquiggles: enabled,// Intellisense的配置。启用|禁用智能提示可选值Default、DisabledC_Cpp.autocomplete: Default,// C语言编辑哪些内容时会进行智能提示和补全[cpp]: {editor.quickSuggestions: {comments: on, // 代码注释strings: on, // 常量字符串other: on // 其他}},// C语言编辑哪些内容时会进行智能提示和补全[c]: {editor.quickSuggestions: {comments: on, // 代码注释strings: on, // 常量字符串other: on // 其他}}
}
1.2. Clang-Format
下载LLVM
点击 llvm-project/releases 进入LLVM项目的二进制下载页面下载最新版本的Windows安装包。 安装LLVM
将下载后的安装包clangllvm-18.1.8-x86_64-pc-windows-msvc.tar.xz解压后拷贝到自己的软件安装目录下如C:\software\clang-llvm-18.1.8bin目录下会有个 clang-format.exe这个就是我们需要的代码格式化器。
配置码格式化器
打开Clang-Format插件的配置页面 vscode - Settings - Extensions - Clang-Format configuration
方式一 将clang-format.exe的绝对路径设置到Executable。 方式二 将C:\software\clang-llvm-18.1.8\bin目录添加到系统环境变量的Path中VSCode配置页的Executable填写clang-format。 如果不配置 clang-format.exe 路径格式化代码就会报错如下
The clang-format command is not available. Please check your clang-format.executable user setting and ensure it is installed.
格式化代码的快捷键
格式化部分代码 选中部分代码ctrl k , ctrl f
格式化所有代码 shift alt f。
格式化整个代码源文件 编辑区域右键 - Format Document。
设置代码风格样式
打开Clang-Format插件的配置页面vscode - Settings - Extensions - Clang-Format configuration
Fallback Style选择你喜欢的风格样式可以使用以下这些值这些都是最受欢迎的C代码风格样式
LLVM, Google, Chromium, Mozilla, WebKit。 自定义代码样式
如果以上这些代码风格的样式都不能满足你的需求可以自定义代码风格样式也可以基于某种特定的代码风格做一些符合自己习惯的样式调整。
在项目的根目录下创建一个.clang-format文件并在文件中写入自定义的代码风格样式具体格式定义的使用规则可以参考Clang-Format Style Options。
以下是个人的.clang-format配置可以作为Demo提供参考
# clang-format的般般 18.1.8
# 基于Mozilla的样式进行自定义Language: Cpp
BasedOnStyle: Mozilla
# 代码缩进空格数
IndentWidth: 4
# Tab键设置不使用换行符\t使用空格
UseTab: Never
# Tab键设置4个空格
TabWidth: 4
# 权限关键字(public, private, protected): 往左缩进4个字符
AccessModifierOffset: -4
# 最大列宽99
ColumnLimit: 99# # 大括号({})换行
# BreakBeforeBraces: Allman
# # 短函数的处理策略只有空函数才会合并成一行
# AllowShortFunctionsOnASingleLine: Empty
# # 短条件语句的处理策略从不合并成一行
# AllowShortIfStatementsOnASingleLine: Never
# # 短循环语句的处理策略从不合并成一行
# AllowShortLoopsOnASingleLine: false
# # 短代码块的处理策略只有空代码块才会合并成一行
# AllowShortBlocksOnASingleLine: Empty
# # 模板声明后的换行策略总是换行
# AlwaysBreakTemplateDeclarations: Yes
# # 指针的对齐方式右对齐
# PointerAlignment: Right
# # # 指针(引用)的对齐方式会分析文件内的大部分指针的对齐方式来决定自己的策略
# DerivePointerAlignment: true
1.3. cpp-check-lint
cpp-check-lint基于cppcheck和cpplint的C代码检查工具他将cppcheck、cpplint和VSCode完美的集成在一起。对cppcheck和cpplint有依赖其中cppcheck需要自己另外手动安装并将可执行文件的路径配置到插件的cpp-check-lint.cppcheck.--executable。
1.3.1. cpplint
cpplint是一个用于检查C代码规范的工具它可以帮助我们自动化地检查代码发现潜在的编码问题确保代码风格的一致性和规范性提高代码质量。cpplint的代码检查会遵循 Google C Style Guide。cpplint工具本身是有Python实现的可以通过pip install来安装。
cpplint侧重于C代码规范和风格的检查。
1.3.2. cppcheck
cppcheck是一个 C/C 静态代码分析工具检测编译器通常无法检测到的错误类型目标是没有误报。
cpplint侧重于C代码的错误、潜在安全问题、潜在性能问题的检查。
检查范围包括
自动变量检查
数组的边界检查
class类检查
过期的函数废弃函数调用检查
异常内存使用释放检查
内存泄漏检查主要是通过内存引用指针
操作系统资源释放检查中断文件描述符等
异常STL 函数使用检查
代码格式错误以及性能因素检查。
1.3.3. 插件的使用
下载并安装Cppcheck(Windows通过安装包安装的话安装完后要设置Path环境变量)。打开命令行终端执行cppcheck --version检查是否安装正常有正常输出版本号说明安装成功。重启VSCode.打开配置页(vscode - Settings - Extensions - cpp-check-lint)完成相应的配置
关键配置说明如下
# 是否启用cpp-check-lint插件
cpp-check-lint.--enable: true,
# 是否启用cppcheck检查
cpp-check-lint.cppcheck.--enable: true,
# 如果已配置Path环境变量可直接填写cppcheck否则需要填写绝对路径
cpp-check-lint.cppcheck.--executable: cppcheck,
# 使用什么语言进行检查可以选择c、c
cpp-check-lint.cppcheck.--language: c,
# 使用的C标准
cpp-check-lint.cppcheck.--std_c: c11,
# 使用的C语言标准
cpp-check-lint.cppcheck.--std_c: c11
# 是否支持内联函数
cpp-check-lint.cppcheck.--inline-suppr: false,
# 是否开启文件保存时立刻检查该文件
cpp-check-lint.cppcheck.--onsave: true,
# 是否开启快速修复功能
cpp-check-lint.cppcheck.--quick_fix: false,
# 开启额外的检查可以选择一项或多项多项时用,分割。可以是以下类型值
# warning: 开启警告消息
# style: 开启代码样式(规范)检查
# performance: 开启代码性能检查
# portability: 开启可移植性检查
# information: 启用info信息检查
# unusedFunction: 启用 未使用的函数 检查
# missingInclide: 未包含头文件时发出警告
# all: 以上所有类型检查
cpp-check-lint.cppcheck.--enable: all,
# 是否启用cpplint检查
cpp-check-lint.cpplint.--enable: true,
# 如果已配置Path环境变量可直接填写cpplint否则需要填写绝对路径
cpp-check-lint.cpplint.--executable: cpplint
# 代码行长度限制
cpp-check-lint.cpplint.--linelength: 120,
# 是否开启文件保存时立刻检查该文件
cpp-check-lint.cpplint.--onsave: true,
# 是否开启快速修复功能
cpp-check-lint.cpplint.--quick_fix: true,
# 会检查的文件后缀,可以这些值hxx,h,cxx,cc,hh,h,cpp,cuh,c,hpp,c,cu
cpp-check-lint.cpplint.--extensions: hxx,h,cxx,cc,hh,h,cpp,c,hpp,c
# 支持的头文件后缀
cpp-check-lint.cpplint.--headers: hxx,h,hh,h,hpp,
1.4. C/C Advanced Lint
1.4.1. 插件介绍
C/C Advanced Lint是C/C静态代码分析工具支持1. 自动识别可用的静态代码分析工具2. 代码编写过程中执行检测。与cpp-check-lint是同类型的插件最大的区别是支持的代码分析工具的钟磊和数量不同。
cpp-check-lint 只支持
CppCheckCppLint
C/C Advanced Lint支持
CppCheckClangFlawFinderPC-lint PlusFlexelint or PC-lintlizard
C/C Advanced Lint要正常使用至少需要安装一种上面的代码分析工具(可以同时安装和启用多个分析工具)。
1.4.2. 插件配置
关键配置:
{// 启用C/C Advanced Lint插件c-cpp-flylint.enable: true,// 什么时候执行代码检查可填写onType、onSave、onBuildc-cpp-flylint.run: onSave,// 检测的语言类型可线性c、cc-cpp-flylint.language: c,// C和C的标准可填写c11、c11、c14、c17、c20c-cpp-flylint.standard: [c11,c11]
}
代码分析工具的配置 Cppcheck的配置可以参考“5.2.3. 插件的使用”的相关内容。其他代码分析工具的配置大家可以自己阅读对应的官方文档。只需要配置已安装并启用的代码分析工具。
1.5. Bracket Pair Colorizer
1.5.1. 插件介绍
插件功能成对的括号标记成不同的颜色提高代码的可读性。 插件说明该插件已废弃因为最新版本(我的1.91.1版本已经内置了)的VSCode已经内置了该功能。
1.5.2. 功能配置
既然VSCode已经内置了该功能我们将不在需要安装这个插件直接在VSCode的设置中配置该功能即可。
打开配置页面vscode - Settings在搜索框种输入id:editor.bracketPairColorization.enabled id:editor.guides.bracketPairs。Editor › Guides: Bracket Pairs的三个可选参数含义分别如下 false 禁用括号对引导线。true 启用括号对引导线。active: 只对当前光标所在的括号对启用括号对引导线。 1.6. Code Runner
1.6.1. 插件介绍
Code Runner是一款VSCode的插件它可以让你在VSCode中运行C、C、Java、Python、JavaScript、PHP、Go、Swift、Perl、Ruby、R等语言的代码。
通过这个插件可以快速的编译、运行C代码在编写和调试一些Demo代码时非常方便。在编译大型项目代码时还是建议用CMake、QT、Visual Studio等工具。
1.6.2. 插件配置
settings.json:
{// 配置Code Runner针对C语言的运行脚本code-runner.executorMap: {// Linux下通过GCC编译器便于和运行cpp: cd $dir g $fileName -o $fileNameWithoutExt $dir$fileNameWithoutExt,// ... 其他语言},// 运行代码时是否在终端中打开可选值true、falsecode-runner.runInTerminal: true,// 设置终端控制台的编码65001是UTF-8编码terminal.integrated.shellArgs.windows: [/K chcp 65001 nul]
}
1.6.3. 插件使用
方法一在要执行的.cpp文件右键 - Run Code
方法二在VSCode的命令面板中输入Code Runner: Run Code然后选择Run Code按回车
方法三快捷键Ctrl Alt N
1.7. TODO Highlight
1.7.1. 插件介绍
TODO Highlight是一款VSCode的插件它可以高亮显示代码中存在的TODO和FIXME等注释方便开发者快速定位代码中需要解决的任务。
1.7.2. 添加高亮关键字
进入设置页面 vscode - Settings - Extensions - TODO Highlight。在 TODOhighlight:Keywords配置项点击Edit in settings.json。在todohighlight.keywords中增加需要定义的关键词。
插件默认只配置了两个关键字TODO: 和 FIXME:注意后面需要跟:才能显示高亮。定义如下
{// ...todohighlight.keywords: [{text: TODO:,color: #fff,backgroundColor: #ffbd2a,overviewRulerColor: rgba(255,189,42,0.8)},{text: FIXME:,color: #fff,backgroundColor: #f06292,overviewRulerColor: rgba(240,98,146,0.8)}]
}
我的需求是
关键不加:也要能高亮。关键字要同时支持大小写。
修改后的配置如下
{// ...todohighlight.keywords: [{text: TODO,color: #fff,backgroundColor: #ffbd2a,overviewRulerColor: rgba(255,189,42,0.8)},{text: FIXME,color: #fff,backgroundColor: #f06292,overviewRulerColor: rgba(240,98,146,0.8)},{text: todo,color: #fff,backgroundColor: #ffbd2a,overviewRulerColor: rgba(255,189,42,0.8)},{text: fixme,color: #fff,backgroundColor: #f06292,overviewRulerColor: rgba(240,98,146,0.8)}]
}
2. C开发常用的快捷键
Windows/LinuxmacOS功能描述Alt OOption O头文件(.h)与源文件(.cpp)之间切换F12Fn F12快速跳转到变量或函数的定义Shift F12Shift Fn F12查看所有引用如变量或函数的定义和所有被调用的地方Alt F12Cmd Shift F10Peek(窥视)定义: 在不离开当前代码上下文的情况下查看符号的定义
3. 参考文档
https://clang.llvm.org/docs/ClangFormatStyleOptions.html
https://dev.to/dhanu0510/how-to-configure-c-code-formatting-in-visual-studio-code-4d5m 大家好我是陌尘。
IT从业10年, 北漂过也深漂过目前暂定居于杭州未来不知还会飘向何方。
搞了8年C也干过2年前端用Python写过书也玩过一点PHP未来还会折腾更多东西不死不休。
感谢大家的关注期待与你一起成长。 【SunLogging】 扫码二维码关注微信公众号精彩内容