はじめに
前回はscala-modeのインストールを書きましたが,Emacs24専用のモードscala-mode2があったので
今回はこれをインストールしてみます.
環境とバージョン
- OS:Debian Wheezy amd64
- Emacs:emacs-snapshot_20130317-1_amd64
インストール
git clone git://github.com/hvesalai/scala-mode2.git
設定
.emacsに以下の設定を追加してください.
(add-to-list 'load-path "/path/to/scala-mode2/")
(require 'scala-mode2)
改行とインデント,行連結,バックタブ
(add-hook 'scala-mode-hook '(lambda ()
;; Bind the 'newline-and-indent' command to RET (aka 'enter'). This
;; is normally also available as C-j. The 'newline-and-indent'
;; command has the following functionality: 1) it removes trailing
;; whitespace from the current line, 2) it create a new line, and 3)
;; indents it. An alternative is the
;; 'reindent-then-newline-and-indent' command.
(local-set-key (kbd "RET") 'newline-and-indent)
;; Alternatively, bind the 'newline-and-indent' command and
;; 'scala-indent:insert-asterisk-on-multiline-comment' to RET in
;; order to get indentation and asterisk-insertion within multi-line
;; comments.
;; (local-set-key (kbd "RET") '(lambda ()
;; (interactive)
;; (newline-and-indent)
;; (scala-indent:insert-asterisk-on-multiline-comment)))
;; Bind the 'join-line' command to C-M-j. This command is normally
;; bound to M-^ which is hard to access, especially on some European
;; keyboards. The 'join-line' command has the effect or joining the
;; current line with the previous while fixing whitespace at the
;; joint.
(local-set-key (kbd "C-M-j") 'join-line)
;; Bind the backtab (shift tab) to
;; 'scala-indent:indent-with-reluctant-strategy command. This is usefull
;; when using the 'eager' mode by default and you want to "outdent" a
;; code line as a new statement.
(local-set-key (kbd "<backtab>") 'scala-indent:indent-with-reluctant-strategy)
;; and other bindings here
))
ホワイトスペース
不適当なホワイトスペースをハイライトし,
保存時に不要なホワイトスペースを削除する設定.
(add-hook 'scala-mode-hook '(lambda ()
(require 'whitespace)
;; clean-up whitespace at save
(make-local-variable 'before-save-hook)
(add-hook 'before-save-hook 'whitespace-cleanup)
;; turn on highlight. To configure what is highlighted, customize
;; the *whitespace-style* variable. A sane set of things to
;; highlight is: face, tabs, trailing
(whitespace-mode)
))