phsilva's PyLint pluginと似たようなものをgedit 3 pluginと書いています。これは、外部のlintプログラムを呼び出し、現在のドキュメントのコード行を強調表示します。私の質問は、私のプラグインがrun_lint
アクションを持っていれば、それをgeditのOnSave
イベントにバインドすることが可能ですか?上にリンクされたドキュメントの利用可能なシグナルのリストにはまだFIXME
の通知があり、APIドキュメントのどこに完全なリストがあるのか分かりません。GeditプラグインはOnSaveイベントにバインドできますか?
1
A
答えて
2
まあ、誰もこれに答えませんでしたが、私はそれを最終的に考え出しました。これには2つのステップがあります。新しいタブがウィンドウ内に作成され、そのタブにドキュメントが含まれている場合です。このドキュメントには、アクションに接続できるloaded
とsaved
という信号があります。各タブには別々のドキュメントがあり、それぞれ独自の信号とハンドラのセットが必要であることを覚えておくことが重要です。
はここの場合には、それが他の人に役に立つ、アウトラインのソリューションです:
class FooPlugin(GObject.Object, Gedit.WindowActivatable):
__gtype_name__ = 'Foo'
...
def do_activate(self):
self._add_ui()
self.window.connect('tab-added', self.on_tab_added)
...
return
def on_tab_added(self, window, tab, data=None):
doc = tab.get_document()
doc.connect('saved', self.on_document_saved)
doc.connect('loaded', self.on_document_loaded)
return
def on_document_loaded(self, document, data=None):
# do something here...
return
def on_document_saved(self, document, data=None):
# do something here...
return
関連する問題
- 1. は新しいgeditのプラグイン
- 2. clone()はイベント/プラグインをバインドしません
- 3. 定義に移動geditプラグイン
- 4. geditプラグインをgnome2バージョンからgnome3バージョンに簡単に変換できますか?
- 5. フィールド値を削除するOnSaveイベント
- 6. Dynamics CRM - onLoadとOnSaveのイベントをフォームスクリプトで処理する
- 7. Silverlight DataTemplateでイベントをバインドすることはできますか?
- 8. 城ActiveRecordでOnSaveはどのように機能しますか?
- 9. ボタンクリック時にjqueryプラグインをバインドできますか?
- 10. Python Geditプラグイン、GTK、ツリーストアフィルタランタイム再帰エラー
- 11. JavaScriptを使用してjQueryイベントにバインドできますか?
- 12. Tkinterフレームにどのイベントをバインドできますか?
- 13. Jquery Mobile/Jqueryにページを残すときにイベント/プラグインのバインドを解除する必要がありますか?
- 14. 変更イベントにグローバルにバインドすることはできますか?
- 15. Macの端末で何かをgeditできますか?
- 16. Windowsのgeditに外部プラグインを追加する
- 17. GeditのManage Snippetsプラグインにコマンドを使用する
- 18. geditでruby/railsをデバッグしますか?
- 19. プラグインをプログラムでロード/アンロードし、Gedit 3で設定を変更します
- 20. OnSaveイベントによってトリガされるフィールドの更新を保存する
- 21. jQueryイベントのパフォーマンス:各イベントの親イベントまたは個別イベントに1つのイベントをバインドしますか?
- 22. jqueryはイベントをクラスにバインドするか、または同じ効果に何かをバインドしますか?
- 23. $(文書)にバインドされたイベントをバインド解除できません
- 24. イベントハンドラは、IHttpModuleの初期化中にのみHttpApplicationイベントにバインドできます。
- 25. イベントをSquarespace AjaxLoaderにバインドする方法はありますか?
- 26. バインド関数は、イベント
- 27. jayqを使用してkeydownイベントにバインドできません
- 28. geditはshoes2.runを開くことができません
- 29. angularjsの$ scope.onをイベントにバインドします。
- 30. ViewModelにイベントをバインドします。
ありがとう!ちょうど私が必要なもの! – rpax
また、https://github.com/janpecha/gedit-on-saveをご覧ください – rpax