c ++垂直声明对齐[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c ++垂直声明对齐[关闭]相关的知识,希望对你有一定的参考价值。

我试图找到C ++代码的美化器,它可以做垂直声明对齐。这段代码:

struct A {
  double a;
  int b;
}

必须转换成这个:

struct A {
  double a;
  int    b;
}

注意,这里不是赋值,这只是带有对齐字段的struct的声明。是否有任何程序或扩展为Visual Studio代码执行此操作?

答案

锵格式

可能,您还应该能够使用clang-format及其AlignConsecutiveDeclarations选项,但我还没有验证这对于连续的类成员声明是否可行(如果没有,此部分将被删除):

AlignConsecutiveDeclarationsbool

如果true,对齐连续的声明。

这将对齐连续行的声明名称。这将导致格式化,如

int         aaaa = 12;
float       b = 23;
std::string ccc = 23;

Visual Studio代码格式化程序:代码对齐

以下受灾部分中提到的扩展适用于Visual Studio;不是Visual Studio代码(由OP请求)。同一作者已经发布了针对VSCode的早期改编版代码对齐,但是:

Current State

目前缺少许多Code alignment的最佳功能。该计划是提前发布并经常发布,并最终达到平价。

主代码对齐存储库:https://github.com/cpmcgrath/codealignment

...

Visual Studio扩展Code alignment允许您格式化,例如以您在示例中显示的方式构建成员。

引用it's documentation

代码对齐扩展允许您通过不仅仅等于...来对齐...

Some more examples

private string m_firstName = string.Empty; => private string  m_firstName = string.Empty; 
private string m_surname = string.Empty;   => private string  m_surname   = string.Empty; 
private int m_age = 18;                    => private int     m_age       = 18; 
private Address m_address;                 => private Address m_address;

...

另一答案

对于那些使用Clion的人来说,Editor > Code Style > C/C++有一个选项。在Wrapping and Braces选项卡中,您可以选中Variable groups | Align in columns复选框。

enter image description here

另一答案

clang-format带有“AlignConsecutiveDeclarations”输出:

struct A {
  double a;
  int    b;
}

以上是关于c ++垂直声明对齐[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

VS C++学习--设置代码行号背景颜色大括号垂直线对齐

导航菜单中的文本未在中间垂直对齐[关闭]

如何沿同一垂直线对齐多个标记的内联块输入控件? [关闭]

UIStackView 没有将自身对齐到中心?对象-c

C# WinForms TextBox 等的垂直对齐

水平居中与垂直居中,以及对齐