emacs中groovy风格方法参数的缩进
我正在使用带有groovy electric模式的emacs(按概述安装)。我的.emacs文件的相关部分(我想)在这个问题的末尾给出 当我输入缩进时,我得到的当前行为是:emacs中groovy风格方法参数的缩进,emacs,groovy,elisp,Emacs,Groovy,Elisp,我正在使用带有groovy electric模式的emacs(按概述安装)。我的.emacs文件的相关部分(我想)在这个问题的末尾给出 当我输入缩进时,我得到的当前行为是: def someObject = new Something( param1 在这一点上,一切都是我想要的,但只要我键入“:”字符,它就会变成: def someObject = new Something( param1: 我希望参数/值对(以及随后的任何参数/值对)保持缩进一级,如前所述: def someO
def someObject = new Something(
param1
在这一点上,一切都是我想要的,但只要我键入“:”字符,它就会变成:
def someObject = new Something(
param1:
我希望参数/值对(以及随后的任何参数/值对)保持缩进一级,如前所述:
def someObject = new Something(
param1: val1,
param2: val2
)
.emacs
摘录:
(electric-indent-mode t)
(setq-default tab-width 4)
(setq-default indent-tabs-mode nil)
(setq indent-line-function 'insert-tab)
(setq tabify nil)
(setq-default c-basic-offset 4)
(delete-selection-mode 1)
(set-default-font "-apple-Bitstream_Vera_Sans_Mono-medium-normal-normal-*-*-*-*-*-m-0-iso10646-1")
(setq load-path (cons "~/.emacs.d/" load-path))
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/")
(setq whitespace-action '(auto-cleanup)) ;; automatically clean up bad whitespace
(setq whitespace-style '(trailing space-before-tab indentation empty space-after-tab)) ;; only show bad whitespace
;;; delete trailing whitespace
(add-hook 'before-save-hook 'delete-trailing-whitespace)
;;; turn on syntax highlighting
(global-font-lock-mode 1)
;;; use groovy-mode when file ends in .groovy or has #!/bin/groovy at start
(autoload 'groovy-mode "groovy-mode" "Major mode for editing Groovy code." t)
(add-to-list 'auto-mode-alist '("\\.groovy\\'" . groovy-mode))
(add-to-list 'interpreter-mode-alist '("groovy" . groovy-mode))
;;; make Groovy mode electric by default.
(add-hook 'groovy-mode-hook
(lambda ()
(require 'groovy-electric)
(groovy-electric-mode)))
编辑:关于@ataylor下面的建议,我已经尝试了两种方法:
(add-hook 'groovy-mode-hook
'(lambda ()
(require 'groovy-electric)
(groovy-electric-mode)))
(add-hook 'groovy-mode-hook '(c-set-offset 'label 4))
及
这两个都不是我想要的。这是正确的位置吗?Groovy模式将这些类型的参数视为标签,比如case语句标签和从Java继承的很少使用的特性,该特性允许
break
语句指定目标
您可以通过将以下内容添加到挂钩来覆盖缩进:
(add-hook 'groovy-mode-hook
(lambda ()
(c-set-offset 'label 4)))
请参阅编辑,你的建议对我不起作用,但可能我没有完全按照你的意思做…关于你的编辑:第二个版本很接近,但不要引用lambda。我已经更新了我的答案,以显示整个
addhook
。
(add-hook 'groovy-mode-hook
(lambda ()
(c-set-offset 'label 4)))