如何为 clang-format 添加功能?
How to add capabilities to clang-format?
Clang 有助于让每个人都对公司的编码标准保持诚实,但它并没有提供所有情况的完整覆盖并且做出(IMO)错误的选择而不是忽略某些情况。例如(来自另一个有类似问题的post):
z1 = sqrt(x*x + y*y);
被 clang 格式“破坏”成
z2 = sqrt(x * x + y * y);
确实符合公司标准,但z1表达式更容易一目了然。我希望 clang-format ignore(不添加也不删除)二元运算符周围的空格。我没有看到 any 设置二元运算符周围的空格。不管我要不要,它都能做到。
那么,我可以添加处理新参数的功能吗?
SpaceAroundBinaryOperator: true|false|ignore
?
即,经验丰富的 C++ 程序员是否可以访问 clang 格式的代码,而无需花费一周或更长时间来弄清楚代码?有什么建议吗?
So, can I add the capability to handle a new parameter...
is the clang-format code accessible to an experienced C++ programmer without having to spend a week or more just figuring out the code?
有这个:https://clang.llvm.org/docs/ClangFormatStyleOptions.html#adding-additional-style-options,但是那里的信息不多。
还有这个:https://clang.llvm.org/docs/LibFormat.html
也许这样:https://clang.llvm.org/docs/#design-documents
但我认为您真的必须深入研究 source code。有很多代码(因为 clang-format
代码是整个 clang C++ 编译器和相关工具 LLVM 项目的一部分),所以我认为您需要一周或更长时间来解决问题。不过只是我的猜测...
Clang 有助于让每个人都对公司的编码标准保持诚实,但它并没有提供所有情况的完整覆盖并且做出(IMO)错误的选择而不是忽略某些情况。例如(来自另一个有类似问题的post):
z1 = sqrt(x*x + y*y);
被 clang 格式“破坏”成
z2 = sqrt(x * x + y * y);
确实符合公司标准,但z1表达式更容易一目了然。我希望 clang-format ignore(不添加也不删除)二元运算符周围的空格。我没有看到 any 设置二元运算符周围的空格。不管我要不要,它都能做到。
那么,我可以添加处理新参数的功能吗?
SpaceAroundBinaryOperator: true|false|ignore
?
即,经验丰富的 C++ 程序员是否可以访问 clang 格式的代码,而无需花费一周或更长时间来弄清楚代码?有什么建议吗?
So, can I add the capability to handle a new parameter...
is the clang-format code accessible to an experienced C++ programmer without having to spend a week or more just figuring out the code?
有这个:https://clang.llvm.org/docs/ClangFormatStyleOptions.html#adding-additional-style-options,但是那里的信息不多。
还有这个:https://clang.llvm.org/docs/LibFormat.html
也许这样:https://clang.llvm.org/docs/#design-documents
但我认为您真的必须深入研究 source code。有很多代码(因为 clang-format
代码是整个 clang C++ 编译器和相关工具 LLVM 项目的一部分),所以我认为您需要一周或更长时间来解决问题。不过只是我的猜测...