emacs+swank-jsでjavascriptのrepl駆動開発
研究室配属されてとりあえず課題として1ヶ月くらいでゲーム作ってねって言われたのでフルjavascriptで実装することにしたときの環境構築のメモ。
common lispやclojureはreplが用意されていて,emacsからそのreplに繋ぐことも可能であり、関数を逐一評価してくれるのでまことに便利です。簡単なテストケースに対して実行できるか否か確認しながら開発が出来るし、いちいちシェルに戻って $ python hoge.py とか叩かなくても良いので効率が良いです。こういう開発手法をrepl駆動開発とかいうんだとどっかの記事で読みました。
javascriptでもrepl駆動開発出来るようです。swank-jsというのを使います。
- node.jsとnpmの導入
- swank-jsの導入
- emacsへslimeとjs2-modeの導入
node.jsとnpmの導入
まずnode.jsとそのパッケージ管理ツールであるところのnpmを導入します。 Debianはwheezyではbackportsをaptのsourcelistに追記してやるとapt-getで入りました。詳しくはここ。
swank-jsの導入
$ npm install -g swank-js
で入ります。
slimeとjs2-modeの導入
swank-jsを動かすにはcommon lispの処理系と、そのIDEであるslimeが必要です。つべこべいわず導入します。
$ apt-get install clisp
clispが入ったらemacsにslimeを導入します。emacs24はpackage.elからslimeを入れることが出来ます。js2-modeもpackage.elから導入できます。js2-modeはgoogleの中の人が作ったjavascriptのメジャーモードです。js2-modeとslimeが導入出来たらinit.elに設定を書き加えます。
(add-hook 'js2-mode-hook
(lambda ()
(slime-js-minor-mode 1)))
(require 'slime)
(setq inferior-lisp-program "/usr/local/bin/clisp")
(slime-setup '(slime-repl slime-fancy slime-banner slime-js))
最後に
$ cp ~/.npm/swank-js/0.0.5/package/slime-js.el ~/.emacs.el/elpa/slime-20140402.125/slime-js.el
で環境構築おわりです。