Yayin Story Studio logo Yayin Story Studio 项目文档
回到主页 用户手册

YSSCore::Editor::TabCompleterProvider Class

class YSSCore::Editor::TabCompleterProvider

TabCompleter的提供者接口. 详情...

头文件: #include <TabCompleterProvider>
自以下版本: YSS 0.13.0

公开成员函数

(自 YSS 0.13.0 引入) TabCompleterProvider(YSSCore::Editor::TextEdit *textEdit)
(自 YSS 0.13.0 引入) virtual ~TabCompleterProvider()
(自 YSS 0.13.0 引入) QTextDocument *getDocument() const
(自 YSS 0.13.0 引入) virtual QList<YSSCore::Editor::TabCompleterItem> onTabComplete(qint32 lineNumber, qint32 column, const QString &content) = 0

详细说明

这类是YSSCore::Editor::LangServer(语言服务器)的三大接口类其中之一, 用于用户实现语言服务中的Tab补全功能。

这类在初始化时会绑定到一个YSSCore::Editor::TextEdit上,用户可以通过getDocument()函数获取到该TextEdit的文档对象。 不过一般来说,实现补全仅需要onTabComplete函数提供的参数即可,一般不需要额外操作文档对象。

请注意,这个类的生命周期由TextEdit管理,用户不需要也不应该手动删除TabCompleterProvider对象。 当TextEdit被销毁时,TabCompleterProvider也会被自动销毁。

成员函数文档

[since YSS 0.13.0] TabCompleterProvider::TabCompleterProvider(YSSCore::Editor::TextEdit *textEdit)

textEdit 绑定的TextEdit对象。

构造函数,接受一个TextEdit指针作为参数。 构造函数会将TabCompleterProvider绑定到传入的TextEdit上,以便提供补全功能。

这个function 从 YSS 0.13.0 开始支持。

[virtual noexcept, since YSS 0.13.0] TabCompleterProvider::~TabCompleterProvider()

析构函数。

这个function 从 YSS 0.13.0 开始支持。

[since YSS 0.13.0] QTextDocument *TabCompleterProvider::getDocument() const

return 绑定的TextEdit的文档对象。

这个function 从 YSS 0.13.0 开始支持。

[pure virtual, since YSS 0.13.0] QList<YSSCore::Editor::TabCompleterItem> TabCompleterProvider::onTabComplete(qint32 lineNumber, qint32 column, const QString &content)

lineNumber 光标所在的行号,从0开始。 column 光标所在的列号,从0开始。 content 当前整行的内容。

return 补全项列表。

纯虚函数,用户需要重写这个函数来提供Tab补全功能。

如果返回空列表,则表示没有补全项;如果返回非空列表,则会在编辑器中显示这些补全项供用户选择。 编辑器不负责优化补全列表的顺序,用户应该根据实际情况自行排序补全项,以提供更好的用户体验。

这个function 从 YSS 0.13.0 开始支持。