使用Clang-Format伪造CMakeLists.txt

时间:2017-05-30 11:56:18

标签: cmake clang-format cmake-format

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

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

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

问题:

  1. 有没有办法让clang格式将CMakeLists.txt识别为与 Cpp 不同的语言?
  2. clang-format是否有能力为CMake语言添加规则?
  3. 在此上下文中是否存在clang-format的替代?
  4. 实施例

    输入

    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)
    

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

1 个答案:

答案 0 :(得分:1)

  1. 一个相关问题:Is there any utility that can reformat a cmake file

  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
clang-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)