2012-08-09 1 views
3

Dans Emacs modes C-like (C++, Java) Je voudrais code à indentées comme suit:Laissez Emacs aligner les opérateurs de points lors indenter

SomeClass someObject; 
someObject.add(foo) 
      .add(bar) 
      .execute(); 

Cependant, par défaut Emacs ceci:

SomeClass someObject; 
someObject.add(foo) 
    .add(bar) 
    .execute(); 

Comment dois-je ajuster l'indentation, quelles variables dois-je modifier?

+0

Je trouve une fonctionnalité similaire pour l'opérateur <<. Il semble que l'élément syntactique stream-op est géré par la fonction c-lineup-streamop dans c-mode auto-indent. Mais je n'ai rien trouvé pour l'opérateur point jusqu'à présent. – Arne

+0

Plus d'informations: C-c C-s me montre l'information syntaxique comme: 'Syntactic analysis: ((arglist-cont 17974))' ou 'Syntactic analysis: ((statement-cont 17768))'. Donc, Emacs ne reconnaît pas cela comme une situation syntaxique particulière. :( – Arne

Répondre

2

Vous pouvez utiliser align complexe (région des hautes lumières et C-u M-x align-regexp)

Lorsque vous êtes invité:

REGEXP: \(\.\) 
GROUP: -1 
SPACING: 0 
REPEAT: n 
+0

Tout à fait bien, mais cela prend également en compte les commentaires .. Conduit à des résultats bizarres ... :) – Arne

+0

Hm, j'ai essayé de construire une autre expression rationnelle, qui exclut les // commentaires (\ ([^ /]. * \) \ (\. \)), mais cela conduit aussi à des résultats étranges, puisque align-regexp n'est pas sensible à la syntaxe. – Arne

Questions connexes