首页 > 解决方案 > 有没有更好的方法在 VS Code 中设置 C++ 格式选项,而不是将它们打包成一个长字符串?

问题描述

我在 VS Code 中的 macOS 上使用 Clang C++,并且我已经覆盖了“settings.json”文件中的一些 C++ 格式化选项。我可以从设置 UI 设置一些东西,但对于更详细的设置,我在“settings.json”中添加了以下条目:

  "C_Cpp.clang_format_fallbackStyle": "{ EmptyLineBeforeAccessModifier: Never, AllowShortCaseLabelsOnASingleLine: true, ConstructorInitializerIndentWidth: 2, ColumnLimit: 120, PointerAlignment: Left, AllowShortIfStatementsOnASingleLine: true, SpaceAfterTemplateKeyword: false, AlignOperands: false, ContinuationIndentWidth: 2 }"

我在Clang 格式样式选项中找到了这些设置的描述

它似乎工作正常,当我按下 Alt-F 时,我的 C++ 文件得到了很好的重新格式化,但我想知道是否有更好的方法来指定设置,而不是在 settings.json 中使用一个长字符串。

例如,如果我可以在不同的行上指定每个格式设置或以某种方式将字符串拆分为多行,那就太好了。我不认为可以在常规 JSON 文件中将字符串拆分为多行,但也许 VS 代码有办法?

我不确定它是否相关,但我已在设置 UI 中将“C_Cpp: Clang_format_fallback Style”设置为“Google”。

任何建议将不胜感激。

标签: c++macosvisual-studio-codeformattingclang++

解决方案


根据弗兰克的评论,我尝试使用.clang-format文件,经过一番折腾后,我让它工作了。我首先尝试将 .clang-format 放在.vscode我项目的目录中,但这没有用。在阅读了关于clang 格式的移动之后,我将文件移动到了我的主目录(注意文件格式.clang-format是 YAML 而不是 JSON),因为它需要位于被格式化文件的同一目录或父目录中。

我认为这不是必需的,但我也最终跑了,brew install clang-format因为我在我的路径中找不到它。一旦安装了它,我就跑了clang-format -style google -dump-config>~/.clang-format,然后做了我想要的覆盖。

我能够从中删除长后备字符串,settings.json并且 VS Code 仍然使用我的新.clang-format文件中的样式覆盖很好地格式化。


推荐阅读