clang 格式正则表达式语法参考
clang-format regex syntax reference
我希望 clang-format 不修改我用来将函数彼此分开的注释行。我认为 commentPragmas
是正确的选择,但我找不到有关 clang-format 正则表达式格式的信息。
我尝试 commentPragmas: '^/\*-.*'
捕获我的分隔线,看起来像这样
/*------------------------------------------------------------------*/
但是上面的正则表达式不起作用...我在哪里可以找到 clang 格式的正则表达式的语法?
TL/DR: The flavor is POSIX ERE
据我所知,ClangFormat docs 中没有记录正则表达式风格,这非常无用。
让我们深入源代码一探究竟。
有一个名为 ContinuationIndenter
的 class,它有一个 CommentPragmasRegex
字段,类型为... llvm::Regex
right here。好吧,这也没什么用,但也许它只是一个包装器...
结果 llvm::Regex
is a wrapper around... llvm_regex
. The header includes this comment 不过:
This file implements a POSIX regular expression matcher. Both Basic and
Extended POSIX regular expressions (ERE) are supported. EREs were extended
to support backreferences in matches.
This implementation also supports matching strings with embedded NUL chars.
在header that defines llvm_regex
中我们还可以找到这样的评论:
This code is derived from OpenBSD's libc/regex
我希望 clang-format 不修改我用来将函数彼此分开的注释行。我认为 commentPragmas
是正确的选择,但我找不到有关 clang-format 正则表达式格式的信息。
我尝试 commentPragmas: '^/\*-.*'
捕获我的分隔线,看起来像这样
/*------------------------------------------------------------------*/
但是上面的正则表达式不起作用...我在哪里可以找到 clang 格式的正则表达式的语法?
TL/DR: The flavor is POSIX ERE
据我所知,ClangFormat docs 中没有记录正则表达式风格,这非常无用。
让我们深入源代码一探究竟。
有一个名为 ContinuationIndenter
的 class,它有一个 CommentPragmasRegex
字段,类型为... llvm::Regex
right here。好吧,这也没什么用,但也许它只是一个包装器...
结果 llvm::Regex
is a wrapper around... llvm_regex
. The header includes this comment 不过:
This file implements a POSIX regular expression matcher. Both Basic and Extended POSIX regular expressions (ERE) are supported. EREs were extended to support backreferences in matches. This implementation also supports matching strings with embedded NUL chars.
在header that defines llvm_regex
中我们还可以找到这样的评论:
This code is derived from OpenBSD's libc/regex