Emacs中的Java模式参数缩进

时间:2011-08-05 06:37:08

标签: java emacs lisp

我在emacs中的java模式想要缩进像这样的函数参数:

someLongFunctionName(
                     argumentNumberOne,
                     argumentNumberTwo,
                     argumentNumberThree,
                     argumentNumberFour
                     );

这里有两个问题。首先,它希望将参数的开头与函数名的结尾对齐。其次,它希望将壁橱paren视为一个参数,从而将其与所有其他参数对齐。我不喜欢这两种行为。

我宁愿它像这样缩进我的代码:

someLongFunctionName(
    argumentNumberOne,
    argumentNumberTwo,
    argumentNumberThree,
    argumentNumberFour
);

c-mode在默认情况下做得更好,我想尽可能将行为转移到java模式。

我仍然需要了解emacs缩进引擎是如何工作的,而且此刻我真的没有真正知道那么多的lisp。这两个学习练习肯定在我的板上,但目前快速复制粘贴解决方案将非常棒。

1 个答案:

答案 0 :(得分:14)

试试这个

(defun my-indent-setup ()
  (c-set-offset 'arglist-intro '+))
(add-hook 'java-mode-hook 'my-indent-setup)

来自http://www.emacswiki.org/emacs/IndentingC