如何在 PyDev Jython 脚本中注册更改文本的通知?
我想为 PyDev 编写一个 Jython 脚本,它将分析编辑器中的文本,然后在某些情况下向文本添加一些注释。每次用户键入内容时,分析应该再次运行。
我通读了PyDev 中 Jython 脚本的介绍,并查看了示例脚本,但它们似乎都是从命令键触发的。我查看了PyEdit 类,看起来我应该注册IPyEditListener3 的 onInputChanged 事件。
我尝试了下面的脚本,但它似乎没有调用我的事件处理程序。我错过了什么?
if False:
from org.python.pydev.editor import PyEdit #@UnresolvedImport
cmd = 'command string'
editor = PyEdit
#-------------- REQUIRED LOCALS
#interface: String indicating which command will be executed
assert cmd is not None
#interface: PyEdit object: this is the actual editor that we will act upon
assert editor is not None
print 'command is:', cmd, ' file is:', editor.getEditorFile().getName()
if cmd == 'onCreateActions':
from org.python.pydev.editor import IPyEditListener #@UnresolvedImport
from org.python.pydev.editor import IPyEditListener3 #@UnresolvedImport
class PyEditListener(IPyEditListener, IPyEditListener3):
def onInputChanged(self,
edit,
oldInput,
newInput,
monitor):
print 'onInputChanged'
try:
editor.addPyeditListener(PyEditListener())
except Exception, ex:
print ex
print 'finished.'