2009/09/08

Ejacs(Ejax)とjs2-modeを連携させる

WS000009

初めてelisp書いてみました。力技丸出しです。

 

C-c jでJavaScriptを書く状態を作る

バッファを上下に2分割して上はjs2-mode下はjs-console(Ejacs)を実行。

WS000010

C-c j

WS000011

リージョンをjs-consoleに渡して評価してもらう

JavaScriptのコードを入力

WS000012

リージョンを選択し、C-c C-r

WS000013 

 

以上(w

ほんとはScheme-modeくらい評価方法が選択できたらいいんだけど取り合えずこれでいいや。

 

C-c jでjs2-modeとjs-consoleを起動

(defun js-other-window ()
  "Run JavaScript on other window"
  (interactive)
  (split-window)
  (let ((buf-name (buffer-name (current-buffer))))
    (js2-mode)
    (js-console)
    (switch-to-buffer-other-window
     (get-buffer-create buf-name))))

 

(define-key global-map
  "\C-cj" 'js-other-window)

 

リージョンを評価

(defun js-execute-region ()
  "Execute region"
  (interactive)
  (let ((buf-name (buffer-name (current-buffer))))
    (copy-region-as-kill (point-min)(point-max))
    (let ((js-code (car kill-ring)))
          (switch-to-buffer-other-window "*js*")
          (js-console-exec-input (car kill-ring))
          (js-console-display-output (switch-to-buffer-other-window buf-name))
          )))

 

(add-hook 'js2-mode-hook '(lambda ()
                (local-set-key "\C-x\C-e" 'js-send-last-sexp)
                   (local-set-key "\C-\M-x" 'js-send-last-sexp-and-go)
                (local-set-key "\C-cb" 'js-send-buffer)
                (local-set-key "\C-c\C-b" 'js-send-buffer-and-go)
                (local-set-key "\C-cl" 'js-load-file-and-go)
                (local-set-key "\C-c\C-r" 'js-execute-region)
                ))

0 件のコメント:

コメントを投稿