2013年 3月 の投稿一覧

ENSIMEのインストールと設定

はじめに

scala-mode2を入れたついでに

ENSIME(the ENhanced Scala Interaction Mode for Emacs)を

入れてみます.

環境とバージョン

  • OS:Debian Wheezy amd64
  • Emacs:emacs-snapshot_20130317-1_amd64
  • Scala:scala_2.9.2+dfsg-1_all

機能

  • Highlight errors and warnings in your code buffers.
  • Inspect the type of any expression.
  • Browse packages
  • Completion for variables, methods, constructors, etc.
  • Incrementally search through classpath symbols
  • Find all references to a symbol
  • Jump to symbol definitions.
  • Semantic Highlighting
  • Automated Refactorings (rename, organize imports, extract method)
  • Source Formatting
  • AST-based selection
  • Supports sbt 11,12
  • Embedded sbt shell
  • REPL
  • Debug support

ダウンロード

Dropbox – ENSIME Releases より

ensime_2.9.2-0.9.8.9.tar.gzをダウンロードします.

Scalaのバージョン-ensimeのバージョンになっているみたいなので

インストールされているScalaのバージョンにあったtar.gzを

ダウンロードしてください.

設定

ロードパスの通ったディレクトリに展開してください.

.emacsに以下の設定を追加してください.

;; load the ensime lisp code...
(add-to-list 'load-path "ENSIME_ROOT/elisp/")
(require 'ensime)

;; This step causes the ensime-mode to be started whenever
;; scala-mode is started for a buffer. You may have to customize this step
;; if you're not using the standard scala mode.
(add-hook 'scala-mode-hook 'ensime-scala-mode-hook)

scala-mode2のインストールと設定

はじめに

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)
))

scala-modeのインストール

環境とバージョン

  • OS:Debian Wheezy amd64
  • Emacs:emacs-snapshot_20130304-1_amd64
  • scala-mode:0.5.99.5

ダウンロード

git clone https://github.com/scala/scala-dist.git

できたディレクトリ’scala-dist/tool-support/src/emacs’

以下のファイルすべてをロードパスの通っているディレクトリ

に置きます.

設定

初期設定ファイル(.emacs等)に以下のようなコードを書きます.

ここではscalaモードでyasnippetsを使えるように’yasnippet/snippets/scala-mode’を

scala snippetsのディレクトリとして指定しています.

(require 'scala-mode-auto)

(setq yas/scala-directory "LOAD-PATH/yasnippet/snippets/scala-mode")
(yas/load-directory yas/scala-directory)

(add-hook 'scala-mode-hook
          '(lambda ()
             (yas/minor-mode-on)
             ))

nrepl-ritz.elをインストールする

はじめに

前回の記事でnrepl.elをインストールしたので,

ついでにnrepl-ritz.elもインストールします.

環境とバージョン

OS:Debian Wheezy amd64

Emacs:emacs-snapshot_20130304-1_amd64

nrepl:0.1.7

nrepl-ritz:0.7.1

ダウンロード

git clone https://github.com/pallet/ritz.git

設定

ダウンロードしたnrepl-ritz.elをロードパスの通ったディレクトリに置きます.

初期設定ファイル(.emacs等)に以下のようなコードを書きます.

(add-hook 'nrepl-interaction-mode-hook 'my-nrepl-mode-setup)
(defun my-nrepl-mode-setup ()
  (require 'nrepl-ritz))

nrepl.elをインストールする

前提条件

nrepl.elはclojure-mode.elに依存しているので

clojure-mode.elのインストールと設定はできている

必要があります.

環境とバージョン

OS:Debian Wheezy amd64

Emacs:emacs-snapshot_20130304-1_amd64

nrepl:0.1.7

ダウンロード

git clone https://github.com/kingtim/nrepl.el.git

設定

ダウンロードしたnrepl.elをロードパスの通ったディレクトリに置きます.

初期設定ファイル(.emacs等)に以下のようなコードを書きます.

(require 'nrepl)

参考リンク