No emacs, como alinhar os parênteses de fechamento com o início da linha de abertura?

11

O estilo de indentação padrão para chamadas de função de várias linhas em muitos modos emacs é alinhar o colchete de fechamento com os outros argumentos da função, assim:

function_one(
    arg1,
    arg2
    );

Eu preferiria se o suporte de fechamento estivesse alinhado com o início da linha que contém o suporte de abertura. Por exemplo:

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

Como eu faço isso?

mavit
fonte
1
Eu tenho ignorado o mesmo desejo por anos ! Hoje é o dia de consertar isso.
contrato Prof. Falken violou

Respostas:

12
  • Para os vários modos derivados do modo CC (por exemplo, modo c, modo java, modo php), personalize c-offsets-alistpara que arglist-closeesteja definido como c-lineup-close-paren.
  • Para o modo cperl, personalize cperl-indent-parens-as-blockpara true.
  • Para o modo cperl, o GNU Emacs 24.3+, definido cperl-close-paren-offsetcomo negativo decperl-indent-level
  • Para o modo perl no GNU emacs 24.3 e superior, personalize perl-indent-parens-as-blockcomo true.
  • Para o modo python, esse comportamento é encontrado no GNU emacs 24.3 e superior.

Você pode personalizar uma variável digitando M-x customize-variable. Como alternativa, adicione as seguintes linhas ao seu ~/.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
fonte
Existe alguma maneira de fazer isso funcionar no modo python com o Emacs 23.1.1?
Ishmael #
A solução para o Emacs 23.1.1 é simplesmente obter o último python-mode.el aqui . Descompacte-o no diretório ~ / .emacs.d e, em seu arquivo .emacs, adicione o seguinte:(add-to-list 'load-path (expand-file-name "~/.emacs.d/python-mode.el-6.1.3")) (require 'python-mode)
ishmael 10/10
E como faço isso funcionar em C ou C ++ ?
O contrato do Prof. Falken violou
Existe alguma maneira de colocar o outro estilo no python-modeEmacs> = 24.3?
mgalgs