在使用 QsciLexerPython 词法分析器设置 api 时,我期待 Python 关键字(即for, range, lambda
)的自动完成建议,并希望使用标准库模块和函数(即等)获得自动完成建议,但在下面的代码示例中,压缩和更新了website,唯一发生的自动完成是添加到列表中的四个字符串。sys, os.path
我做错了什么,如果是这样,我如何让 python 关键字在自动完成中注册?(我的主要问题当然在这里)
如果这是预期的行为,那么词法分析器在自动完成中扮演什么角色,为什么在这个例子中来自词法分析器的关键字没有分配给自动完成列表?
最后,是否可以在自动完成中包含 python 标准库模块和子模块,这需要什么?
"""Base code originally from: http://kib2.free.fr/tutos/PyQt4/QScintilla2.html"""
import sys
from PyQt5 import QtWidgets, Qsci
app = QtWidgets.QApplication(sys.argv)
editor = Qsci.QsciScintilla()
lexer = Qsci.QsciLexerPython()
editor.setLexer(lexer)
## setup autocompletion
api = Qsci.QsciAPIs(lexer)
api.add("aLongString")
api.add("aLongerString")
api.add("aDifferentString")
api.add("sOmethingElse")
api.prepare()
editor.setAutoCompletionThreshold(1)
editor.setAutoCompletionSource(Qsci.QsciScintilla.AcsAPIs)
editor.show()
editor.setText(open(sys.argv[0]).read())
sys.exit(app.exec_())