読者です 読者をやめる 読者になる 読者になる

coffee-compile-buffer時に対応する JavaScript位置にポイントを移動する

emacs coffee-mode

coffee-mode-bufferで CoffeeScriptJavaScriptコンパイル
した際に, CoffeeScriptのカーソル位置に対応する JavaScript
ポイントにジャンプできるようになりました。

sourcemapをインストールする

https://github.com/syohex/emacs-sourcemap


sourcemap.elは sourcemapのデコーダです. コンパイル時に
sourcemapを出力して、それを sourcemap.elでパースして,
最も近い位置を探して, その位置にポイントを移動させます.
sourcemap.elは MELPAからインストールできます.

設定

coffee-args-compileに '-m'を追加して, sourcemapを生成する
ようにします. そして coffee-after-compile-hookに sourcemap.elの
sourcemap-goto-corresponding-pointを登録します.

(setq coffee-args-compile '("-c" "-m"))
(add-hook 'coffee-after-compile-hook 'sourcemap-goto-corresponding-point)


あとは coffee-compile-buffer(デフォルトで C-c C-kにバインド)を
実行するだけです.

イメージ

通常はJavaScriptの先頭にカーソルがあるのですが, 以下のように対応する
箇所にポイントが移動します.



おわりに

CoffeeScriptを全然書いたことがないのでわからないのですが,
実際のプロダクトで使えるようなものではないと思います. どんな
JavaScriptに変換されるかを知りたいという人には便利な機能
なのではないかと思います.


ソースコードに比例して, sourcemapのサイズも
大きくなってパースに時間がかかってしまいます.
そこはもう少し改善できないか検討してみます.