Emacsのcoffee-modeで、おもむろにJavascriptをcoffeeに置換する。(マージされました)

*追記*
本家にマージされたので、デフォルトでこの機能使えます
https://github.com/defunkt/coffee-mode を参照してください


CoffeeScriptは素晴らしい言語なんだけど、ネット上のサンプルは基本的にJSで転がってるので、コピペした際は手作業で修正する必要があります。
で、js2coffeeっていうjavascript -> CoffeeScript って変換を行うプログラムがあるんだけど、それ使ってEmacsのcoffee-modeでjavascriptをcoffeeに置換できるようにした。

使い方

こんなコードを拾ってきたとして

hoge = function(){
  console.log("hello");
};

リージョン選択して M-x coffee-js2coffee-replace-region
すると置換される

hoge = ->
  console.log "hello"

インスコ

npm install -g js2coffee

coffee-script.el か .emacs.d/init.el に追加

(defcustom js2coffee-command "js2coffee"
  "The js2coffee command used for evaluating code. Must be in your
path."
  :type 'string
  :group 'coffee)

(defun coffee-js2coffee-replace-region (start end)
  "Compiles a region and displays the JS in another buffer."
  (interactive "r")

  (let ((buffer (get-buffer coffee-compiled-buffer-name)))
    (when buffer
      (kill-buffer buffer)))

  (call-process-region start end 
                       js2coffee-command nil
                       (current-buffer)
                       )
  (delete-region start end)
  )

https://github.com/defunkt/coffee-mode から clone して pull request した。受け入れられるかは知らん。外部モジュール(js2coffee)に依存してるし。
(マージされました)



大学のRuby入門の夏期集中講義が初心者向け過ぎて暇だったので久しぶりにelispいじった。