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