Clojure-modeへの歩み、その1
プログラミングするなら前回つくったNetBeans+enclojure環境も良いんだろうけど、
なんかこう、ササッと書きたいんだよ。
違うだろ、俺たちが欲しいのは(-`Д´-;)
チャチャっと書いちゃいたいときとか
IDEの起動を待ってる間に情熱が冷めちゃいます{{(>_<)}}よね
じゃあエディタでやっちゃおうよって訳。
使用するのは勿論xyzzy。
私xyzzyerなので、emacsやmeadowじゃなくてxyzzyで使いたい><
でも、xyzzyのclojure-modeなんて無さそう。
じゃあ、作ればイインダヨ( ̄∀ ̄)d
はい、長い前振りでスミマセン。
clojure-modeを作ろうってことですが、一から作るのも大変なので、既存のモノを流用します。
で、流用しようと思ってるのがこちらのscheme-mode、
つhttp://fun.sci.fukuoka-u.ac.jp/wiki/index.php?xyzzy
ライセンスがイマイチわからないので、問題あれば教えてエライ人。m(_ _)m
どうしてこれ流用するかって言うと、確かこのscheme-modeはkawa*1も使えたはず*2。
なので、基本評価器を現状設定しているGaucheから
Clojureに置き換えてやればいいだけのはず。
; Gauche - directly (setf *scheme-process-open-hook* #'(lambda (buffer) (if (buffer-process) (buffer-process) (progn (save-window-excursion (with-output-to-temp-buffer ("*Scheme run*"))) (make-process (format nil "~A" (map-slash-to-backslash (merge-pathnames "C:/Home/Gauche/bin/gosh.exe -i" (si:system-root))))))))) (setf *scheme-process-read-filter* #'(lambda (proc text) (pop-to-buffer "*Scheme run*" 10) (goto-char (point-max)) (insert text) (set-window (get-buffer-window (process-buffer proc))) (refresh-screen)))
javaでの実行方法はKawaの設定を参考にすりゅ。
; Kawa - directly (setf *scheme-process-open-hook* #'(lambda (buffer) (if (buffer-process) (buffer-process) (progn (set-buffer buffer) (make-process (format nil "java -cp "~A" kawa.repl --full-tailcalls" (map-slash-to-backslash (merge-pathnames "kawa-1.7.90.jar" (si:system-root)))))))))
これらを参考に、clojureのパスを設定やコマンド実行に変更してやるように、カキカキすれば。
; Clojure - directly (setf *scheme-process-open-hook* #'(lambda (buffer) (if (buffer-process) (buffer-process) (progn (save-window-excursion (with-output-to-temp-buffer ("*Clj run*"))) (make-process (format nil "java -cp ~A clojure.main" (map-slash-to-backslash (merge-pathnames "C:/Home/clojure-1.1.0/clojure.jar" (si:system-root))))))))) (setf *scheme-process-read-filter* #'(lambda (proc text) (pop-to-buffer "*Clj run*" 10) (goto-char (point-max)) (insert text) (set-window (get-buffer-window (process-buffer proc))) (refresh-screen)))
ほい、完了。
で実行してみると、おぉ〜動く、動く(*⌒∇^)ノ
xyzzyでclojureじゃん
プログラミングClojureのコード参考にチョコチョコっと、スクリプティング。
ほい、問題なさそうですね^^;
まだDOSプロンプトよりチョット便利ってだけなんですけど、これでclojureライフが満喫できまう(*´Д`)
プログラミングClojure posted with amazlet at 10.02.15
|
|
その2へ続く! と、いいなw;
続くと良いですよね^^;