我目前正在使用QScintilla开发自己的代码编辑器。 QScintilla已经提供自动完成和calltips功能。我想要的是摆脱自动完成弹出窗口小部件,检索它获得的列表,解析并用我自己的小部件显示它们。 所以这就是我所拥有的:
//disable the autocompletion feature:
QsciScintilla::setAutoCompletionSource( QsciScintilla::AcsNone);
//use this function call to get the list from api class:
void updateAutoCompletionList (const QStringList &context, QStringList &list)
问题是,updateAutoCompletionList只给我QsciScintilla :: AcsAPIs的结果,我无法从QsciScintilla::AcsDocument
得到结果。
有什么办法可以从QsciScintilla::AcsDocument
获得结果吗?
事先感谢。
答案 0 :(得分:0)
我自己解决了。
我没有可用的API,所以我读了QsciScintilla类的源代码,它有一个名为“startAutoCompletion”的方法,你可以从中得到答案。
实际上它会搜索所有文本,收集与自动完成上下文匹配的单词,避免重复。不像我那样花哨,但实际上表现并不像我经常那样慢:)