c++ - 有没有更好的方法在 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”。
任何建议将不胜感激。
解决方案
根据弗兰克的评论,我尝试使用.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
文件中的样式覆盖很好地格式化。
推荐阅读
- entity-framework - 通过批处理文件删除某些文本
- npm - NPM 未安装软件包但纱线正在工作
- java - PSQLException 在“$$ DECLARE”处或附近未终止的美元引号字符串,同时从 Spring 应用程序执行 sql 文件
- python - 将字符串值覆盖到日期时间
- python - “pipenv install”导致“OSError: Command .../python2.7 - setuptools pip wheel failed with error code 1”
- visual-studio-2010 - SSIS 从文件名中获取日期
- java - Android time conversion
- xaml - 绑定到 ElementName 取决于绑定顺序
- c# - UWP+Prism MVVM - 如何通过 XAML 设置视图模型属性的值?
- javascript - 使用 jQuery/JS 设置与具有特定内容的任何标题相邻的样式有序列表