3

I want to introduce clang-formatter to our company, but there are some restrictions, like:

Some files in our company that are better read with a tab-width=2 while others are better read with tab-width=4.

This means that some files (due to the nature of their content) should have a different .clang-format configuration file. So, assumming that we end up with 2 or 3 configurations, suitable for each content, is there a way that I can force some files to be formatted by a particular .clang_format ?

for example,

  • could this be done by placing a different .clang_format in each folder ?

or

  • by entering the YAML lines as comments at the beginning of each file (like doxygen) ?

we use C, C++, visual studio and vim

4

2 回答 2

3

您对使用哪个文件的控制有限.clang_format,因为格式化程序将开始在源文件目录中搜索文件,然后连续搜索父目录。但是,以这样的方式组织您的目录结构可能非常不方便。

但是,您可以在每次调用时覆盖样式中的特定选项。来自clang-format 文档

用于-style="{key: value, ...}"设置特定参数,例如: -style="{BasedOnStyle: llvm, IndentWidth: 8}"

不幸的是,Visual Studio 插件目前不允许更改clang-format基于每个文件传递的选项,因此后一种方法在这里不起作用。

据我所知,目前尚不支持允许从源文件中设置样式选项的“modeline”注释,尽管我希望在未来的版本中添加它。

于 2013-12-12T14:34:56.043 回答
2

您可以将不同的 .clang-format (_clang-format) 文件放入每个目录。clang-format 将开始在文件的目录中查找它,然后搜索其所有父项,直到找到一个(假设您正在设置 -style=file)。

这听起来像是可以解决您的用例。如果没有,我想了解如何。您是否在同一目录中有需要不同缩进的文件?

于 2014-06-03T08:40:28.353 回答