Gedit插件能绑定到保存事件吗?

2024-09-30 18:20:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个gedit 3 plugin,类似于phsilva's PyLint plugin,它调用外部lint程序并突出显示当前文档中的代码行。{{myaction是否可以绑定到cd1}?我在上面链接的文档中的可用信号列表仍然有一个FIXME的通知,我正在努力找出在API文档中的什么地方可以找到完整的列表。在


Tags: 代码文档程序api列表信号链接plugin
1条回答
网友
1楼 · 发布于 2024-09-30 18:20:42

好吧,没人回答,但我终于弄明白了。在包含文档的窗口中创建新选项卡时,有两个步骤。文档具有可以连接到操作的loaded和{}信号。请记住,每个选项卡都有一个单独的文档,每个文档都需要自己的一组信号和处理程序。在

以下是一个简单的解决方案,以防对其他人有用:

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

相关问题 更多 >