views:

147

answers:

1

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 ?

+4  A: 

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.

Peter
@Peter I added the semicolon which aligns the member variable as well.
Trey Jackson
@Peter and @Tray, your merged solution solves the posted problem. Thank you both :)
KotBerbelot