【问题标题】:How to align C++ class member names in one column in emacs?如何在 emacs 的一列中对齐 C++ 类成员名称?
【发布时间】:2011-02-19 01:22:59
【问题描述】:

我想将所有 C++ 类成员名称(不要与成员类型混淆)在一列中对齐。

让我们看一下入口处的例子:

class Foo
{
public:
    void   method1( );
    int                  method2( ); 
    const Bar *        method3( ) const; 
protected:
    float    m_member;
};

这就是我们最后想要的:

class Foo
{
public:
    void           method1( );
    int            method2( ); 
    const Bar *    method3( ) const; 
protected:
    float          m_member;
};

因此,最长的成员类型声明定义了类成员名称将对齐到的列。 如何在 emacs 中执行这种转换?

【问题讨论】:

  • 你可以使用align-regexp 和一些时髦的东西来达到这种效果,但我同意尼尔的观点。
  • 当 Jimmy 在您的团队中添加一个返回 const Thingummyjiggle* 的新方法时会发生什么?他应该编辑你头文件中的每一行吗?
  • Neil:很难讨论一个人的喜好:) 我个人认为这种形式的班级成员格式很好而且很优雅。它还有助于您更快地阅读成员方法,而不会过度拉伤您的眼部肌肉。
  • Noufal:谢谢小费。我会检查一下。
  • Johnsyweb:基本上是的,应该解析整个文件或至少部分文件(公共部分,一组类似方法)以满足格式标准。我想要的是能够选择类的某些部分并根据上述描述对其进行格式化。

标签: c++ emacs indentation code-formatting


【解决方案1】:

选择带有方法声明的区域

M-x align-regexp

输入字符串[^ ]+\((\|;\)并回车

编辑在匹配中添加;,这也对齐了成员变量。

【讨论】:

  • 我添加了分号来对齐成员变量。
  • 和@Tray,您的合并解决方案解决了发布的问题。谢谢你们两个:)
猜你喜欢
  • 1970-01-01
  • 2017-11-01
  • 2019-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-18
  • 2011-03-07
相关资源
最近更新 更多