clang-format 使用指示符删除数组定义中的新行

2023-12-02

如果可能的话,我喜欢用指示符定义数组值:

enum Mode {
    NONE,
    SPLIT_FILES,
    SINGLE_FILE,
    INVALID
};

const std::string ModeName[] = {
    [NONE] = "NONE",
    [SPLIT_FILES] = "SPLIT_FILES",
    [SINGLE_FILE] = "SINGLE_FILE",
    [INVALID] = "INVALID"
};

运行这个clang-format(3.5) 破坏了新行并使其可读性降低:

enum RecorderMode { REC_NONE, REC_SPLIT_FILES, REC_SINGLE_FILE, REC_INVALID };

const std::string RecorderModeName[]
    = {[REC_NONE] = "NONE", [REC_SPLIT_FILES] = "SPLIT_FILES", [REC_SINGLE_FILE] = "SINGLE_FILE",
       [REC_INVALID] = "INVALID" };

数组定义有几个问题:= {被移动到下一行。如果我在最后一个数组条目后添加逗号,则行会缩进两次。

有没有办法保留新行和缩进,而不使用 clang-format 关闭注释?

This显示了一个解决方法enum(在最后一个常量后添加逗号,或在逗号后添加尾随注释),但它似乎不适用于数组。


这个答案给了我一个可以接受的解决方法:

Set ColumnLimit为 0。代价是不会自动换行,但这是值得的。无论如何,所有工作中的程序员都倾向于不会写超过 120 列的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

clang-format 使用指示符删除数组定义中的新行 的相关文章

随机推荐