gpt4 book ai didi

python - Gedit 插件可以绑定(bind)到 OnSave 事件吗?

转载 作者:行者123 更新时间:2023-12-01 06:02:57 25 4
gpt4 key购买 nike

我正在写一个gedit 3 plugin ,类似于 phsilva's PyLint plugin ,它调用外部 lint 程序并突出显示当前文档中的代码行。我的问题是,如果我的插件有 run_lint 操作,是否可以将其绑定(bind)到 gedit 中的 OnSave 事件?我上面链接的文档中的可用信号列表仍然有一个 FIXME 通知,我正在努力找出在 API 文档汤中的哪里可以找到完整的列表。

最佳答案

好吧,没有人回答这个问题,但我最终明白了。当在包含文档的窗口中创建新选项卡时,需要执行两个步骤。该文档具有可连接到操作的loadedsaved 信号。请务必记住,每个选项卡都有一个单独的文档,每个文档都需要自己的一组信号和处理程序。

这是一个概要解决方案,以防对其他人有用:

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

关于python - Gedit 插件可以绑定(bind)到 OnSave 事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9340318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com