an odd fellow

仕事のメモ

emacs+swank-jsでjavascriptのrepl駆動開発

研究室配属されてとりあえず課題として1ヶ月くらいでゲーム作ってねって言われたのでフルjavascriptで実装することにしたときの環境構築のメモ。

common lispclojureはreplが用意されていて,emacsからそのreplに繋ぐことも可能であり、関数を逐一評価してくれるのでまことに便利です。簡単なテストケースに対して実行できるか否か確認しながら開発が出来るし、いちいちシェルに戻って $ python hoge.py とか叩かなくても良いので効率が良いです。こういう開発手法をrepl駆動開発とかいうんだとどっかの記事で読みました。

javascriptでもrepl駆動開発出来るようです。swank-jsというのを使います。

  1. node.jsとnpmの導入
  2. swank-jsの導入
  3. 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

で環境構築おわりです。