【问题标题】:clang-format regex syntax referenceclang 格式正则表达式语法参考
【发布时间】:2017-02-20 12:48:05
【问题描述】:

我希望 clang-format 不修改我用来分隔函数的注释行。我认为commentPragmas 是正确的选择,但我找不到关于 clang-format regex 格式的信息。

我尝试commentPragmas: '^/\*-.*' 来捕捉我的分隔线,看起来像这样

/*------------------------------------------------------------------*/

但是上面的正则表达式不起作用...我在哪里可以查找 clang-format 的正则表达式的语法?

【问题讨论】:

    标签: regex clang-format


    【解决方案1】:

    TL/DR:风格是 POSIX ERE


    据我所知,ClangFormat docs 中没有记录正则表达式风格,这非常无用。

    让我们深入研究一下源代码。

    有一个名为ContinuationIndenter 的类,它有一个CommentPragmasRegex 字段,类型为...llvm::Regexright here。好吧,这也不是很有帮助,但也许它只是一个包装器......

    原来是llvm::Regex is a wrapper 周围... llvm_regex。标题包含this comment

    这个文件实现了一个 POSIX 正则表达式匹配器。基本和 支持扩展 POSIX 正则表达式 (ERE)。 ERE 已扩展 支持匹配中的反向引用。 此实现还支持使用嵌入的 NUL 字符匹配字符串。

    header that defines llvm_regex我们也可以找到这条评论:

    这段代码来源于 OpenBSD 的 libc/regex

    【讨论】:

    • 谢谢。但是,如果我没有忽略我的正则表达式与 posix ere 兼容的东西,不是吗?因为那时我必须寻找其他原因导致这不起作用。
    • 是的,您的模式看起来不错。我不知道 ClangFormat,所以我不确定我是否可以提供进一步的帮助,但如果我要指责某事,那将是 ^ - 默认情况下它是否设置为匹配每一行?
    • 我已经尝试过有无,没有区别:/但无论如何,谢谢,我会继续试验。
    猜你喜欢
    • 2023-04-05
    • 2011-03-22
    • 2011-08-23
    • 2012-05-06
    • 2010-09-20
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多