From 0bf899a5f8110fbea97272bdda03b68b91745e51 Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 1 Jul 2022 15:09:24 -0700 Subject: Language server: auto completion of `import` file and directories. (#2312) * Language server: auto completion of `import` file and directories. * Completion of include path. * Improvements. Co-authored-by: Yong He --- .../slang-language-server-protocol.cpp | 38 +++++++++++++++------- 1 file changed, 27 insertions(+), 11 deletions(-) (limited to 'source/compiler-core/slang-language-server-protocol.cpp') diff --git a/source/compiler-core/slang-language-server-protocol.cpp b/source/compiler-core/slang-language-server-protocol.cpp index d2950b164..628baf08d 100644 --- a/source/compiler-core/slang-language-server-protocol.cpp +++ b/source/compiler-core/slang-language-server-protocol.cpp @@ -150,6 +150,17 @@ static const StructRttiInfo _makeRangeRtti() } const StructRttiInfo Range::g_rttiInfo = _makeRangeRtti(); +static const StructRttiInfo _makeTextEditRtti() +{ + TextEdit obj; + StructRttiBuilder builder(&obj, "LanguageServerProtocol::TextEdit", nullptr); + builder.addField("range", &obj.range); + builder.addField("newText", &obj.newText); + builder.ignoreUnknownFields(); + return builder.make(); +} +const StructRttiInfo TextEdit::g_rttiInfo = _makeTextEditRtti(); + static const StructRttiInfo _makeDidOpenTextDocumentRtti() { DidOpenTextDocumentParams obj; @@ -460,6 +471,22 @@ static const StructRttiInfo _makeCompletionItemRtti() } const StructRttiInfo CompletionItem::g_rttiInfo = _makeCompletionItemRtti(); +static const StructRttiInfo _makeTextEditCompletionItemRtti() +{ + TextEditCompletionItem obj; + StructRttiBuilder builder(&obj, "LanguageServerProtocol::TextEditCompletionItem", nullptr); + builder.addField("label", &obj.label, StructRttiInfo::Flag::Optional); + builder.addField("detail", &obj.detail, StructRttiInfo::Flag::Optional); + builder.addField("kind", &obj.kind, StructRttiInfo::Flag::Optional); + builder.addField("documentation", &obj.documentation, StructRttiInfo::Flag::Optional); + builder.addField("data", &obj.data, StructRttiInfo::Flag::Optional); + builder.addField("textEdit", &obj.textEdit, StructRttiInfo::Flag::Optional); + builder.addField("commitCharacters", &obj.commitCharacters, StructRttiInfo::Flag::Optional); + builder.ignoreUnknownFields(); + return builder.make(); +} +const StructRttiInfo TextEditCompletionItem::g_rttiInfo = _makeTextEditCompletionItemRtti(); + static const StructRttiInfo _makeSemanticTokensParamsRtti() { SemanticTokensParams obj; @@ -641,17 +668,6 @@ static const StructRttiInfo _makeDocumentSymbolRtti() } const StructRttiInfo DocumentSymbol::g_rttiInfo = _makeDocumentSymbolRtti(); -static const StructRttiInfo _makeTextEditRtti() -{ - TextEdit obj; - StructRttiBuilder builder(&obj, "LanguageServerProtocol::TextEdit", nullptr); - builder.addField("range", &obj.range); - builder.addField("newText", &obj.newText); - builder.ignoreUnknownFields(); - return builder.make(); -} -const StructRttiInfo TextEdit::g_rttiInfo = _makeTextEditRtti(); - static const StructRttiInfo _makeInlayHintParamsRtti() { InlayHintParams obj; -- cgit v1.2.3