forked from qt-creator/qt-creator
LSP: Add setting to provide initializationOptions to the language server
When the language server is initialized, the Initialize request can contain user provided data in initializationOptions field. Allow the user to set data inside. This can be required to let the language server have some context. Change-Id: Ib057fdb940c21b3fd032853fb84253d42ad1e321 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -250,6 +250,7 @@ void Client::initialize()
|
||||
InitializeRequest initRequest;
|
||||
auto params = initRequest.params().value_or(InitializeParams());
|
||||
params.setCapabilities(generateClientCapabilities());
|
||||
params.setInitializationOptions(m_initializationOptions);
|
||||
if (m_project) {
|
||||
params.setRootUri(DocumentUri::fromFilePath(m_project->projectDirectory()));
|
||||
params.setWorkSpaceFolders(Utils::transform(SessionManager::projects(), [](Project *pro){
|
||||
@@ -879,6 +880,11 @@ void Client::setSupportedLanguage(const LanguageFilter &filter)
|
||||
m_languagFilter = filter;
|
||||
}
|
||||
|
||||
void Client::setInitializationOptions(const QJsonObject &initializationOptions)
|
||||
{
|
||||
m_initializationOptions = initializationOptions;
|
||||
}
|
||||
|
||||
bool Client::isSupportedDocument(const TextEditor::TextDocument *document) const
|
||||
{
|
||||
QTC_ASSERT(document, return false);
|
||||
@@ -900,7 +906,8 @@ bool Client::needsRestart(const BaseSettings *settings) const
|
||||
{
|
||||
QTC_ASSERT(settings, return false);
|
||||
return m_languagFilter.mimeTypes != settings->m_languageFilter.mimeTypes
|
||||
|| m_languagFilter.filePattern != settings->m_languageFilter.filePattern;
|
||||
|| m_languagFilter.filePattern != settings->m_languageFilter.filePattern
|
||||
|| m_initializationOptions != settings->initializationOptions();
|
||||
}
|
||||
|
||||
QList<Diagnostic> Client::diagnosticsAt(const DocumentUri &uri, const Range &range) const
|
||||
|
||||
Reference in New Issue
Block a user