Emacs 中的 Java 模式参数缩进

标签 java emacs lisp

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

someLongFunctionName(
                     argumentNumberOne,
                     argumentNumberTwo,
                     argumentNumberThree,
                     argumentNumberFour
                     );

这里有两个问题。首先,它希望将参数的开头与函数名的结尾对齐。其次,它想把壁橱里的括号当作一个论点来对待,从而使它与所有其他论点保持一致。我不喜欢这两种行为。

我更希望它像这样缩进我的代码:

someLongFunctionName(
    argumentNumberOne,
    argumentNumberTwo,
    argumentNumberThree,
    argumentNumberFour
);

默认情况下,c 模式在这方面做得更好,如果可能的话,我想将这种行为转移到 java 模式。

我仍然需要学习 emacs 缩进引擎是如何工作的,而且老实说,目前我什至不太了解 lisp。这两个学习练习绝对适合我,但目前快速复制粘贴解决方案会非常棒。

最佳答案

试试这个

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

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

关于Emacs 中的 Java 模式参数缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6952369/

相关文章:

java - 在 Java 中等待一个事件——有多难?

java - 不可变集合实现

java - System.out 重定向到 JTextPane

Emacs:打印行号

emacs - 使用 Emacs 以组织模式启动

java - 对于初学者来说,如何在 Emacs 中首次启用自动完成功能?

stream - SICP 练习 3.67 - 无限制地生成所有整数对

java - 我需要关闭 java.io 包的 Reader 装饰器吗?

lisp - 有没有办法在 Common-Lisp 中不传递参数而不是传递 "NIL"?

lisp - 如何使用 clisp 将字符串转换为列表?