【发布时间】:2017-10-30 21:23:34
【问题描述】:
有没有办法让 clang-format 正确格式化 CMake 文件?
我有一个带有Language: Cpp 和BasedOnStyle: Google 的.clang-format 文件。未指定其他语言。
理想情况下,我想自定义样式,但是现在最大的问题是,clang-format 缩进很多行。文件越长,我得到的缩进级别就越多。
问题:
- 有没有办法让 clang 格式将
CMakeLists.txt识别为与 Cpp 不同的语言? - clang-format 是否可以让我为 CMake 语言添加规则?
- 在这种情况下是否存在 clang 格式的替代方案?
示例
输入
cmake_minimum_required (VERSION 3.2)
project(HELLO)
add_executable (helloDemo demo.cxx demo_b.cxx)
add_executable (goodByeDemo goodbye.cxx goodbye_b.cxx)
实际输出
cmake_minimum_required(VERSION 3.2) project(HELLO)
add_executable(helloDemo demo.cxx demo_b.cxx)
add_executable(goodByeDemo goodbye.cxx goodbye_b.cxx)
预期输出:与输入相同。或者命令和括号之间没有空格。
【问题讨论】:
-
可能不会。它会将文件解析为 cpp 文件。缩进可能是因为它希望语句将用分号分隔,因此它可能会将所有内容解释为一条大长线,并缩进它以向您显示这是一个连续的语句。您可以尝试将开关 AlignAfterOpenBracket 设置为 false。我不确定这是影响缩进的那个,但你仍然会遇到 ifs 和 fors 的问题,因为它们不遵循类似 C 的语法。 clang.llvm.org/docs/ClangFormatStyleOptions.html
-
因此,clang-format v. 8.0.1 将对 CMakeLists.txt 文件进行处理。它看起来有点聪明,因为它会接受评论并删除 # 之后的空格。有什么方法可以控制这些文件的处理方式吗?
标签: cmake clang-format cmake-format