VS Code中clangd大括号换行设置及混用C/C++扩展格式化器方法
问题1:配置clangd实现指定代码格式化样式
要让clangd格式化后达到你需要的效果,调整格式化规则即可,操作如下:
- 打开VS Code设置(快捷键
Ctrl+,),搜索clangd.arguments,点击「编辑 in settings.json」 - 在参数数组中添加ClangFormat规则配置,示例如下:
关键参数说明:"clangd.arguments": [ "--format-style={BasedOnStyle: LLVM, BreakBeforeBraces: Allman, IndentWidth: 3, AllowShortFunctionsOnASingleLine: None}" ]BreakBeforeBraces: Allman:让大括号单独占一行IndentWidth: 3:设置缩进为3个空格(可按需改为2或4)AllowShortFunctionsOnASingleLine: None:确保短函数也不会和大括号在同一行
- 保存配置后,用
Ctrl+Shift+I触发格式化即可生效
也可以在项目根目录创建.clang-format文件,写入以下内容实现项目级配置:
BasedOnStyle: LLVM BreakBeforeBraces: Allman IndentWidth: 3 AllowShortFunctionsOnASingleLine: None
问题2:同时使用clangd智能感知和微软C/C++扩展的格式化器
可以单独禁用微软C/C++扩展的智能感知模块,保留其格式化功能,步骤如下:
- 打开VS Code的settings.json,添加以下配置:
// 禁用微软C/C++的智能感知,保留clangd的智能感知能力 "C_Cpp.intelliSenseEngine": "Disabled", // 将默认格式化器指定为微软C/C++扩展 "editor.defaultFormatter": "ms-vscode.cpptools", // 关闭clangd的自动格式化,避免冲突 "clangd.formatOnType": false, "clangd.formatOnSave": false - 保存配置后,clangd将负责代码补全、跳转等智能感知工作,格式化操作则由微软C/C++扩展的格式化器处理
内容的提问来源于stack exchange,提问作者Colors
相关产品推荐
相关产品推荐

