forked from qt-creator/qt-creator
LSP: use DocumentUri as workspaceFolder
Fixes: QTCREATORBUG-24452 Change-Id: I596138e658118f7b348c22e67d60d153f547fdfa Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -102,7 +102,7 @@ void WorkspaceEdit::setChanges(const Changes &changes)
|
|||||||
insert(changesKey, changesObject);
|
insert(changesKey, changesObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
WorkSpaceFolder::WorkSpaceFolder(const QString &uri, const QString &name)
|
WorkSpaceFolder::WorkSpaceFolder(const DocumentUri &uri, const QString &name)
|
||||||
{
|
{
|
||||||
setUri(uri);
|
setUri(uri);
|
||||||
setName(name);
|
setName(name);
|
||||||
|
@@ -440,12 +440,12 @@ class LANGUAGESERVERPROTOCOL_EXPORT WorkSpaceFolder : public JsonObject
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
WorkSpaceFolder() = default;
|
WorkSpaceFolder() = default;
|
||||||
WorkSpaceFolder(const QString &uri, const QString &name);
|
WorkSpaceFolder(const DocumentUri &uri, const QString &name);
|
||||||
using JsonObject::JsonObject;
|
using JsonObject::JsonObject;
|
||||||
|
|
||||||
// The associated URI for this workspace folder.
|
// The associated URI for this workspace folder.
|
||||||
QString uri() const { return typedValue<QString>(uriKey); }
|
DocumentUri uri() const { return DocumentUri::fromProtocol(typedValue<QString>(uriKey)); }
|
||||||
void setUri(const QString &uri) { insert(uriKey, uri); }
|
void setUri(const DocumentUri &uri) { insert(uriKey, uri); }
|
||||||
|
|
||||||
// The name of the workspace folder. Defaults to the uri's basename.
|
// The name of the workspace folder. Defaults to the uri's basename.
|
||||||
QString name() const { return typedValue<QString>(nameKey); }
|
QString name() const { return typedValue<QString>(nameKey); }
|
||||||
|
@@ -267,8 +267,9 @@ void Client::initialize()
|
|||||||
params.setInitializationOptions(m_initializationOptions);
|
params.setInitializationOptions(m_initializationOptions);
|
||||||
if (m_project) {
|
if (m_project) {
|
||||||
params.setRootUri(DocumentUri::fromFilePath(m_project->projectDirectory()));
|
params.setRootUri(DocumentUri::fromFilePath(m_project->projectDirectory()));
|
||||||
params.setWorkSpaceFolders(Utils::transform(SessionManager::projects(), [](Project *pro){
|
params.setWorkSpaceFolders(Utils::transform(SessionManager::projects(), [](Project *pro) {
|
||||||
return WorkSpaceFolder(pro->projectDirectory().toString(), pro->displayName());
|
return WorkSpaceFolder(DocumentUri::fromFilePath(pro->projectDirectory()),
|
||||||
|
pro->displayName());
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
initRequest.setParams(params);
|
initRequest.setParams(params);
|
||||||
@@ -840,7 +841,8 @@ void Client::projectOpened(ProjectExplorer::Project *project)
|
|||||||
if (!sendWorkspceFolderChanges())
|
if (!sendWorkspceFolderChanges())
|
||||||
return;
|
return;
|
||||||
WorkspaceFoldersChangeEvent event;
|
WorkspaceFoldersChangeEvent event;
|
||||||
event.setAdded({WorkSpaceFolder(project->projectDirectory().toString(), project->displayName())});
|
event.setAdded({WorkSpaceFolder(DocumentUri::fromFilePath(project->projectDirectory()),
|
||||||
|
project->displayName())});
|
||||||
DidChangeWorkspaceFoldersParams params;
|
DidChangeWorkspaceFoldersParams params;
|
||||||
params.setEvent(event);
|
params.setEvent(event);
|
||||||
DidChangeWorkspaceFoldersNotification change(params);
|
DidChangeWorkspaceFoldersNotification change(params);
|
||||||
@@ -860,8 +862,8 @@ void Client::projectClosed(ProjectExplorer::Project *project)
|
|||||||
if (!sendWorkspceFolderChanges())
|
if (!sendWorkspceFolderChanges())
|
||||||
return;
|
return;
|
||||||
WorkspaceFoldersChangeEvent event;
|
WorkspaceFoldersChangeEvent event;
|
||||||
event.setRemoved(
|
event.setRemoved({WorkSpaceFolder(DocumentUri::fromFilePath(project->projectDirectory()),
|
||||||
{WorkSpaceFolder(project->projectDirectory().toString(), project->displayName())});
|
project->displayName())});
|
||||||
DidChangeWorkspaceFoldersParams params;
|
DidChangeWorkspaceFoldersParams params;
|
||||||
params.setEvent(event);
|
params.setEvent(event);
|
||||||
DidChangeWorkspaceFoldersNotification change(params);
|
DidChangeWorkspaceFoldersNotification change(params);
|
||||||
@@ -1239,7 +1241,7 @@ void Client::handleMethod(const QString &method, MessageId id, const IContent *c
|
|||||||
result = nullptr;
|
result = nullptr;
|
||||||
} else {
|
} else {
|
||||||
result = Utils::transform(projects, [](ProjectExplorer::Project *project) {
|
result = Utils::transform(projects, [](ProjectExplorer::Project *project) {
|
||||||
return WorkSpaceFolder(project->projectDirectory().toString(),
|
return WorkSpaceFolder(DocumentUri::fromFilePath(project->projectDirectory()),
|
||||||
project->displayName());
|
project->displayName());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user