Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to align C++ class member names in one column in emacs?

I would like to align all C++ class member names ( do not confuse with member types ) in one column.

Lets look at the example of what we have at entrance:

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

and this is what we would like to have at the end:

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

So the longest member type declaration defines the column to which class member names will be aligned. How can i perform such transformation in emacs ?

like image 218
KotBerbelot Avatar asked May 13 '10 11:05

KotBerbelot


1 Answers

Select the region with the method declarations

M-x align-regexp

Enter the string [^ ]+\((\|;\) and press Enter

Edited to add the ; in the matching, which aligns the member variable as well.

like image 60
Peter Avatar answered Oct 21 '22 06:10

Peter