clang-format未根据其配置文件格式化C头文件(.h)

ne5o7dgx  于 2023-10-16  发布在  其他
关注(0)|答案(2)|浏览(125)

bounty还有2天到期。此问题的答案有资格获得+50声望奖励。Newb希望引起更多的注意这个问题。

我正在运行x86_64 GNU/Linux机器,并在neovim中使用clang-format来格式化我的C代码。此外,我使用我自己的. clang格式的配置文件,主要是基于Mozilla的风格。

**我对配置文件所做的更改直接转换为源文件(.c)我格式化的文件,但由于某种原因,头文件(.h)不遵循.clang-format配置文件中指定的格式样式。**它说每次我尝试格式化头文件时,clang-format都成功运行,但格式本身并不像.clang-format文件中指定的那样,我做错了什么?

请记住,当我格式化源文件时,所有内容都完全按照. xml-format中指定的格式进行格式化。
编辑:我正在运行clang-format可执行文件,其中包含这些参数(我的. clang-format路径)
clang-format --style=file:/home/myusername/.config/forming/.clang-format

e5njpo68

e5njpo681#

从命令行运行clang-format来格式化文件时,必须使用-i选项。
这指示clang-format执行inplace edit操作,从而用新格式覆盖文件。
在不使用-i的情况下调用clang-format将格式化文件,但不会将其保存到任何位置

myzjeezk

myzjeezk2#

我不认为style=file是这样工作的。从clang-format --help

--style=<string>           - Coding style, currently supports:
                               LLVM, GNU, Google, Chromium, Microsoft, Mozilla, WebKit.
                             Use -style=file to load style configuration from
                             .clang-format file located in one of the parent
                             directories of the source file (or current
                             directory for stdin).
                             Use -style="{key: value, ...}" to set specific
                             parameters, e.g.:
                               -style="{BasedOnStyle: llvm, IndentWidth: 8}"

我相信style=file实际上是默认行为。它基本上搜索父目录,直到找到一个名为.clang-format的文件。基本上:

./.clang-format
../.clang-format
../../.clang-format

如果您将.clang-format移动到当前工作目录的父目录,它将工作。

相关问题