Dans emacs, comment aligner les parenthèses fermantes avec le début de la ligne d'ouverture?

11

Le style d'indentation par défaut pour les appels de fonctions multilignes dans de nombreux modes emacs consiste à aligner le crochet rond de fermeture avec les autres arguments de la fonction, ainsi:

function_one(
    arg1,
    arg2
    );

Je préférerais que le crochet de fermeture soit aligné avec le début de la ligne qui contient le crochet d'ouverture. Par exemple:

function_one(
    function_two(
        f2_arg1,
        f2_arg2
    ),
    f1_arg2,
    f1_arg3
);

Comment puis-je faire cela?

mavit
la source
1
J'ignore la même envie depuis des années ! Aujourd'hui est le jour pour y remédier.
contrat du professeur Falken a été rompu le

Réponses:

12
  • Pour les nombreux modes dérivés du mode CC (par exemple, mode c, mode java, mode php), personnalisez-le de c-offsets-alistsorte qu'il arglist-closesoit défini sur c-lineup-close-paren.
  • Pour le mode cperl, personnalisez-le cperl-indent-parens-as-blocksur true.
  • Pour le mode cperl, GNU Emacs 24.3+, réglé cperl-close-paren-offsetsur le négatif decperl-indent-level
  • Pour le mode perl dans GNU emacs 24.3 et supérieur, personnalisez-le perl-indent-parens-as-blocksur true.
  • Pour le mode python, ce comportement se trouve dans GNU emacs 24.3 et supérieur.

Vous pouvez personnaliser une variable en tapant M-x customize-variable. Vous pouvez également ajouter les lignes suivantes à votre ~/.emacs:

(add-to-list 'c-offsets-alist '(arglist-close . c-lineup-close-paren))
(setq cperl-indent-parens-as-block t)
(setq perl-indent-parens-as-block t)
mavit
la source
Existe-t-il un moyen de faire fonctionner cela en mode python avec Emacs 23.1.1?
ishmael
La solution pour Emacs 23.1.1 est simplement d'obtenir le dernier python-mode.el ici . Décompressez-le dans votre répertoire ~ / .emacs.d, puis dans votre fichier .emacs, ajoutez ceci:(add-to-list 'load-path (expand-file-name "~/.emacs.d/python-mode.el-6.1.3")) (require 'python-mode)
ishmael
Et comment faire pour que cela fonctionne en C ou C ++ ?
Prof. contrat Falken a violé
Existe-t-il un moyen d'obtenir l' autre style python-modesur Emacs> = 24,3?
mgalgs