【问题标题】:How do I specify a clang-format file?如何指定 clang 格式的文件?
【发布时间】:2018-03-04 13:44:44
【问题描述】:

我刚刚在 Redhat 6 机器上构建了 clang 5.0.0 并尝试运行 clang-format。我无法让 -style 选项读取样式文件。这是我认为应该起作用的一组命令的示例:

./clang-format -style=llvm -dump-config > .llvm-format
./clang-format -style=.llvm-format ~/myFile.cc

当我运行此命令时,我收到以下错误:

Invalid value for -style

当按预期放置在父目录中时,它似乎可以找到并使用 .clang-format。内置类型也可以工作:

./clang-format -style=Mozilla ~/myFile.cc

那么,问题是我无法明确指定要使用的 .clang 格式文件。这是我的构建问题还是我误用了 clang-format oir 误解了文档?

【问题讨论】:

标签: c++ clang llvm llvm-clang clang-format


【解决方案1】:

只是一个额外的提示: (在我的情况下,在 Windows 10 上) - 如果您将配置转储到文件中,请在之后检查 ascii 编码,例如在记事本++ - .clang 格式的文件必须是没有 BOM 的 utf8 !!! (您可以在 Notepadd++ 中进行转换) - 否则您会收到类似“YAML:1:4: error: Got empty plain scalar”之类的错误 - 将 .clang-format 文件放在同一文件夹或 code-file.c 的父目录中

格式化 code-file.c 的正确命令行调用如下所示: clang-format.exe -style=file -i C:\path\code-file.c

【讨论】:

    【解决方案2】:

    我也对此感到困惑。当他们告诉您使用标志-style=file 时,他们的字面意思是让您输入-style=file,而不是-style=<path/to/actual/filename>

    使用此标志,clang-format 将在目标文件的目录中查找名为 .clang-format 的文件。如果它没有找到任何它会cd .. 并重试。似乎没有办法告诉clang-format 使用名称不完全是.clang-format 的文件。

    您的示例的正确用法是:

    ./clang-format -style=llvm -dump-config > ~/.clang-format
    ./clang-format -style=file ~/myFile.cc
    

    【讨论】:

    • 这是迄今为止我听过的最愚蠢的实现之一。至少我每天都在哭……
    猜你喜欢
    • 2018-07-28
    • 1970-01-01
    • 2013-09-11
    • 2019-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 2018-04-06
    相关资源
    最近更新 更多