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

gotin blog

Whatever gotin wanna write

GreasemonkeyでEmacsチックなテキストエディタをちょっと更新

GreasemonkeyでEmacsチックなテキストエディタですが、
内部ファイルのJavaScript拡張機能を作れるようなしかけにはなっていたのですが、
そのインストール作業は以下のような感じでちょっと面倒でした。


1.拡張機能JavaScriptの保存先ファイルを開く
2.拡張機能JavaScriptwgetで取得して、開いておいた内部ファイルに保存
3.保存したファイルを起動時に実行するようにinit.jsにExecuter.execute関数を記述

そこで、これをクリック一発でできるように、以下のようなしかけを作りました。


しかけその1:
起動時に内部ファイルの /plugin ディレクトリ直下のファイルをすべてevalする

しかけその2:
開いているページ内の*.jsなリンクの横にファイルインポート用ボタン(アイコン)を置いて、
(こんなの→f:id:gotin:20061208021533p:image
それを押したら /plugin/ 以下にそのファイルを保存する

変更ついでに init.js も少し変更しました。
コマンドやキーバインドの設定の他に
そこで使う処理に関する関数の定義もinit.jsに書いていたのですが、
それらはuser.jsに持たせることにしました。
拡張機能スクリプトでも使いたいような関数が多かったためです。

それと、 g_editorっていう名前もなんだかいまいちな気がしてきたので、
GreasemonkeyEmacsという意味で「gmacs」に変更しました。

ということで、こちら↓が肝心なgmacs本体のスクリプトです
gmacs.user.js

一つ前の記事で紹介していたテキストエリア連携機能スクリプトへの
リンクも↓ここにはっておきます。
textarea.js
gmacsインストール後はリンクの横にインポート用アイコンが出てると思いますので、
さっそくインポートを試してみてください。



[追記]
本題と関係ないですが ブログモードでタイトルをつけると
今までとは違うURLがふられるんですね。
はてブカウンタが消えてしもた^^;;;
まいっか。


[拡張機能アイデアメモ]

  • 開いているページ内の入力済みフォームの値を記録、再現するしかけ。記録先をgmacsのファイルに。
  • 開いているページのソースをgmacsで開いて、保存したらその内容を反映したページに。
  • Greasemonkeyスクリプトを/pluginsにインポートしたら、実行するか否かをinclude/excludeの記述に従って判定。

[gmacsのエンハンスアイデアメモ]

  • search/replace機能(無理かなぁ。。。)
  • 複数バッファ管理
  • JavaScript編集時の自動インデント処理(うへー難しそう。。)
  • 登録済みコマンド・キーバインド一覧表示(ヘルプ)(これは簡単そう)



[追記その2]
ファイル管理の仕方をちょこっと変更して、
作成日時、更新日時の情報も持つようにしました。
dirで開くと更新日時も表示されます。
今までのファイルだとundefinedが表示されます。

これであとちょこちょこっとすれば
GreasemonkeyでGreasemonkey、とほぼおなじことがgmacsでも可能になるはずです。