C++ 垂直对齐 Visual Studio Code 中的声明

elc*_*h10 1 c++ alignment clang-format visual-studio-code

我尝试在 Visual Studio Code 中进行垂直声明对齐。

这段代码:

struct A {
  double a;
  int b;
}
Run Code Online (Sandbox Code Playgroud)

必须转换成这样:

struct A {
  double a;
  int    b;
}
Run Code Online (Sandbox Code Playgroud)

请注意,这里不是赋值,这只是具有对齐字段的结构声明。

是否有任何 Visual Studio Code 扩展可以执行此操作?

dfr*_*fri 5

Clang 格式

可能,你也应该能够使用clang-format它的AlignConsecutiveDeclarations选项,但我还没有验证这对于连续的类成员声明是否可行(如果不是,本节将被删除):

AlignConsecutiveDeclarations( bool)

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

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

int         aaaa = 12;
float       b = 23;
std::string ccc = 23;
Run Code Online (Sandbox Code Playgroud)

Visual Studio Code Formatter:代码对齐

下面的问题部分提到的扩展适用于Visual Studio;不是 Visual Studio Code(按照 OP 的要求)。同一作者发布了 VSCode 代码对齐的早期改编版本,但是:

当前状态

目前缺少代码对齐的许多最佳功能。计划是提前发布,经常发布,最终达到平价。

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

...

Visual Studio 扩展代码对齐允许您以您在示例中显示的方式格式化结构成员。

引用它的文档

代码对齐扩展允许您对齐不仅仅是等号...

更多例子

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;
Run Code Online (Sandbox Code Playgroud)

...