用Clang-Format格式化CMakeLists.txt

Una*_*dra 5 cmake clang-format cmake-format

有没有办法获取clang格式以正确格式化CMake文件?

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

理想情况下,我想自定义样式,但是现在最大的问题是,clang格式会使许多行缩进。文件越长,我获得的缩进级别越高。

问题:

  1. 有没有办法让clang格式将a识别CMakeLists.txt为不同于Cpp的语言?
  2. clang格式是否可以为我添加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)
Run Code Online (Sandbox Code Playgroud)

实际产量

cmake_minimum_required(VERSION 3.2) project(HELLO)

    add_executable(helloDemo demo.cxx demo_b.cxx)
        add_executable(goodByeDemo goodbye.cxx goodbye_b.cxx)
Run Code Online (Sandbox Code Playgroud)

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

Una*_*dra 5

  1. 一个相关的问题:是否有任何可以重新格式化 cmake 文件的实用程序

  2. Clang-format 无法做到这一点,但现在存在替代方案: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)
Run Code Online (Sandbox Code Playgroud)

命令:

pip install --user cmake_format  # Or sudo to install system-wide
cmake-format -i CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)

结果输出:

cmake_minimum_required(VERSION 3.2)
project(HELLO)

add_executable(helloDemo demo.cxx demo_b.cxx)
add_executable(goodByeDemo goodbye.cxx goodbye_b.cxx)
Run Code Online (Sandbox Code Playgroud)