GoogleChrome の拡張機能「Edit with Emacs」を elscreen と連携する

GoogleChrome でテキストエリアを編集する際、Emacs で編集する Edit with Emacs という拡張機能があります。
編集する際は、新しいバッファを作成し、そこでテキストの編集を行います。
これを elscreen の新しい screen を作って欲しく思い、defadvice してみました。

(defvar elscreen-edit-server-new-screen-created nil)
(defadvice edit-server-done
  (after elscreen-edit-server-done)
  (when elscreen-edit-server-new-screen-created
    (elscreen-kill)
    (setq elscreen-edit-server-new-screen-created nil)))
;; (ad-deactivate 'edit-server-done)
(ad-activate 'edit-server-done)

(defadvice edit-server-create-frame
  (around elscreen-edit-server-create-frame (arg))
  (setq elscreen-edit-server-new-screen-created nil)
  (cond
   ((> 10 (elscreen-get-number-of-screens))
    (setq elscreen-edit-server-new-screen-created t)
    (elscreen-create)
    (switch-to-buffer (ad-get-arg 0)))
   (t
    ad-do-it)))
;; (ad-deactivate 'edit-server-create-frame)
(ad-activate 'edit-server-create-frame)

edit-server-done への defadvice が、C-xC-s や C-xC-c をしたとき、Edit with Emacs が作ったスクリーンを消すようにする defadvice です。
# 新しくフラグとなる global 変数を作ってそこで制御して行うのは微妙な気もしますが、まあ…。
edit-server-create-frame への defadvice が elscreen の screen を作るようにする defadvice です。



まあ、よかったらどうぞという形で。

更新時刻

  • 2010/05/15/23:45