使用 Clang-Format 格式化 CMakeLists.txt

Formatting CMakeLists.txt with Clang-Format

有没有办法让 clang-format 正确格式化 CMake 文件?

我有一个包含 Language: CppBasedOnStyle: Google.clang-format 文件。未指定其他语言。

理想情况下,我想自定义样式,但是现在最大的问题是,clang-format 缩进了很多行。文件越长,缩进的级别越多。

问题:

  1. 有没有办法让 clang-format 将 CMakeLists.txt 识别为与 Cpp 不同的语言?
  2. clang-format 是否具有为 CMake 语言添加规则的功能?
  3. 在这种情况下是否存在替代 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)

预期输出:与输入相同。或者命令和括号之间可能没有 space。

  1. 相关问题:

  2. Clang 格式无法做到这一点,但现在存在替代方案:https://github.com/cheshirekow/cmake_format

示例 -- 输入错误:

cmake_minimum_required(VERSION 3.2) project(HELLO)

    add_executable(helloDemo demo.cxx demo_b.cxx)
        add_executable(goodByeDemo goodbye.cxx goodbye_b.cxx)

命令:

pip install --user cmake_format  # Or sudo to install system-wide
cmake-format -i CMakeLists.txt

结果输出:

cmake_minimum_required(VERSION 3.2)
project(HELLO)

add_executable(helloDemo demo.cxx demo_b.cxx)
add_executable(goodByeDemo goodbye.cxx goodbye_b.cxx)