【问题标题】:Need help in aligning consecutive assignment little differently在对齐连续分配方面需要帮助
【发布时间】:2019-08-31 19:15:10
【问题描述】:

我使用 clang 格式选项 AlignConsecutiveAssignments: true 用于 C++。但是,对于像下面这样的情况,我想避免额外的间距。

当前输出:

    int i                                 = 0;
    int vol                               = 0;
    int mass                              = 0;
    string center_of_mass                 = "";
    unsigned center_of_gravity            = 0;
    int j                                 = 0;
    int wt                                = 0;
    int longest_variable_name_of_them_all = 0;
    // int a           = 0;
    cout << "item1       = " << wt << endl;
    cout << "longer_item = " << vol << endl;

想要的分段对齐结果:

    int i    = 0;
    int vol  = 0;
    int mass = 0;
    string center_of_mass = "";
    unsigned center_of_gravity = 0;
    int j  = 0;
    int wt = 0;
    int longest_variable_name_of_them_all = 0;
    // int a           = 0;
    cout << "item1       = " << wt << endl;
    cout << "longer_item = " << vol << endl;

根据经验,我希望避免在 = 之前有超过 4 个空格(这就是 center_of_mass 与下一行不对齐的原因)。

有人有我可以在格式化的输出文件上运行的脚本吗?注释将被忽略以保留其中的 ASCII 艺术(如果有):-)

谢谢!

【问题讨论】:

    标签: c++ clang-format


    【解决方案1】:

    在 clang 格式中,想要的东西是不可能的。您可以通过在如下代码区域中禁用 clang-format 来部分实现它

    int i    = 0;
    int vol  = 0;
    int mass = 0;
    // clang-format off
    string center_of_mass = "";
    unsigned center_of_gravity = 0;
    // clang-format on
    int j  = 0;
    int wt = 0;
    // clang-format off
    int longest_variable_name_of_them_all = 0;
    // clang-format on
    // int a           = 0;
    cout << "item1       = " << wt << endl;
    cout << "longer_item = " << vol << endl;
    

    或者你可以用空行打破声明,并在被空行反弹的代码块中加入长名称。

    int i    = 0;
    int vol  = 0;
    int mass = 0;
    int j    = 0;
    int wt   = 0;
    
    string center_of_mass      = "";
    unsigned center_of_gravity = 0;
    
    int longest_variable_name_of_them_all = 0;
    
    // int a           = 0;
    cout << "item1       = " << wt << endl;
    cout << "longer_item = " << vol << endl;
    

    【讨论】:

    • 感谢您的回复。实际上,在实际代码中,变量是按功能分组的,原作者不同意对它们进行排列。我会接受答案,将通过一些外部脚本而不是禁用启用格式来处理它。
    • 为什么不用键盘输入你想要的空格数?
    猜你喜欢
    • 2011-02-25
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-27
    • 2014-02-06
    相关资源
    最近更新 更多