58 QQmlToolingSharedSettings *settings)
59 : m_codeModelManager(
nullptr, settings),
61 m_textSynchronization(&m_codeModelManager),
62 m_workspace(&m_codeModelManager),
63 m_completionSupport(&m_codeModelManager),
64 m_navigationSupport(&m_codeModelManager),
65 m_definitionSupport(&m_codeModelManager),
66 m_referencesSupport(&m_codeModelManager),
67 m_documentFormatting(&m_codeModelManager),
68 m_renameSupport(&m_codeModelManager),
69 m_rangeFormatting(&m_codeModelManager),
70 m_hover(&m_codeModelManager),
71 m_highlightSupport(&m_codeModelManager),
72 m_documentSymbolSupport(&m_codeModelManager),
73 m_progressSupport(&m_codeModelManager),
74 m_lint(&m_server, &m_codeModelManager)
76 m_server.addServerModule(
this);
77 m_server.addServerModule(&m_textSynchronization);
78 m_server.addServerModule(&m_lint);
79 m_server.addServerModule(&m_workspace);
80 m_server.addServerModule(&m_completionSupport);
81 m_server.addServerModule(&m_navigationSupport);
82 m_server.addServerModule(&m_definitionSupport);
83 m_server.addServerModule(&m_referencesSupport);
84 m_server.addServerModule(&m_documentFormatting);
85 m_server.addServerModule(&m_renameSupport);
86 m_server.addServerModule(&m_rangeFormatting);
87 m_server.addServerModule(&m_hover);
88 m_server.addServerModule(&m_documentSymbolSupport);
89 m_server.addServerModule(&m_progressSupport);
90 m_server.addServerModule(&m_highlightSupport);
91 m_server.finishSetup();
92 qCWarning(lspServerLog) <<
"Did Setup";
103 QLanguageServerProtocol *protocol)
106 QObject::connect(server, &QLanguageServer::lifecycleError,
this,
107 &QQmlLanguageServer::errorExit);
108 QObject::connect(server, &QLanguageServer::exit,
this, &QQmlLanguageServer::exit);
110 server, &QLanguageServer::runStatusChanged,
this,
111 [](QLanguageServer::RunStatus r) { qCDebug(lspServerLog) <<
"runStatus" <<
int(r); });
115 for (
const auto &buildDirs : params.buildDirsToSet) {
116 QStringList dirPaths;
117 dirPaths.resize(buildDirs.buildDirs.size());
118 std::transform(buildDirs.buildDirs.begin(), buildDirs.buildDirs.end(),
119 dirPaths.begin(), [](
const QByteArray &utf8Str) {
120 return QString::fromUtf8(utf8Str);
122 m_codeModelManager.setBuildPathsForRootUrl(buildDirs.baseUri, dirPaths);
128 QLspSpecification::InitializeResult &serverInfo)
131 if (serverInfo.capabilities.experimental.has_value() && serverInfo.capabilities.experimental->isObject())
132 expCap = serverInfo.capabilities.experimental->toObject();
133 expCap.insert(u"addBuildDirs"_s, QJsonObject({ { u"supported"_s,
true } }));
134 serverInfo.capabilities.experimental = expCap;