さてプラグインだが。
プラグインはほとんど Python で作られているのはご存知のとおり。
このマシンでは IronPython しか入れていないのだが。
同梱の組込 Python2.6 でプラグインを動かすということみたい。
Python で作られているコードスニペットプラグインを有効にする。
拡張子を py にしたファイルを開き py と打ち込んで Tab キーを叩く。
キチンと動作する、Python2 を別途で用意する必要は無いようだ。
つか EmEditor の外部ツールと違ってバカ早い、
って、だから Windows ではテキストファイルの一行目に特別な意味なんて無い。
@Linux では実行パーミッション時に一行目プログラムで動かす、拡張子は無意味
本当に Linux のものを Windows で動かせるようにしただけなんだとよく判る例。
ちなみにスニペットを変更すると
%USERPROFILE%\.gnome2\gedit\snippets
に変更データが入る、なるほど Linux と同じなんだ。
どうでもいいけど Explorer ではドットで始まる名前のファイルが作れない。
MKDIR コマンドなら作れる、大きなお世話だ。
ならばプラグインも
%USERPROFILE%\.gnome2\gedit\pligins
でイケそうなのに認識してくれない。
Gedit – Tutorials – SCOL Language
うーん、Program Files (x86) 以下に入れるしか手段が無いみたいだ。
%PROGRAMFILES(X86)%\gedit\lib\gedit-2\plugins
しかたがないので管理者権限で Explorer を起動。
以下の自作プラグインをひたすらコピー、Gedit2 だから v1 のほうね。
Gedit 及び Eye of Gnome プラグイン
おぉ動く、LFonBR は CRLF だと CR 部が改行されちゃうけどね。
とりあえず Linux 依存(パス区切り等)の部分が無いなら動くのね。
しかし External tools が無いのは痛い。
Apps/Gedit/Plugins – GNOME Wiki!
標準にあるはずなんだが、External tools の More を見る。
GLib からでは環境変数が登録できないってことかな。
面倒くさいけどチェックするプラグインでもテキトーに作るか。
test.gedit-plugin
[Gedit Plugin] Loader=python Module=test IAge=2 Name=Test Name[ja]=テスト Description=test Description[ja]=テスト Authors=sasakima-naoCopyright=Copyright © 2009 sasakima-nao Website=http://palepoli.skr.jp/
test.py
#-*- coding:utf-8 -*- import gedit import gtk import os ui_str = """<ui> <menubar name="MenuBar"> <menu name="EditMenu" action="Edit"> <placeholder name="EditOps_3"> <menuitem name="test" action="test"/> </placeholder> </menu> </menubar> </ui> """ class HtmlEscapePlugin(gedit.Plugin): def __init__(self): gedit.Plugin.__init__(self) def activate(self, window): self._window = window manager = self._window.get_ui_manager() self._action_group = gtk.ActionGroup("TestActions") # GtkActionEntry # name, stock_id, label, accelerator, tooltip, callback actions = [("test", None, "test", None, "test", self.on_test_activate)] self._action_group.add_actions(actions) manager.insert_action_group(self._action_group, -1) self._ui_id = manager.add_ui_from_string(ui_str) def deactivate(self, window): manager = self._window.get_ui_manager() manager.remove_ui(self._ui_id) manager.remove_action_group(self._action_group) manager.ensure_update() def update_ui(self, window): pass def on_test_activate(self, action): # Check s = os.environ["USERNAME"] self.messagebox(s) try: # echo %GEDIT_CURRENT_DOCUMENT_PATH% s = os.environ["GEDIT_CURRENT_DOCUMENT_PATH"] self.messagebox(s) except: self.messagebox("No %GEDIT_CURRENT_DOCUMENT_PATH%") def messagebox(self, text): dlg = gtk.MessageDialog(self._window, gtk.DIALOG_MODAL, gtk.MESSAGE_WARNING, gtk.BUTTONS_OK, text) r = dlg.run() dlg.destroy()
あぁやっぱり。
これじゃ自力でも外部ツールは作れないよ。
IronPython をエディタから起動したかったんだが困った。