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);
|
||||
}
|
||||
|
||||
WorkSpaceFolder::WorkSpaceFolder(const QString &uri, const QString &name)
|
||||
WorkSpaceFolder::WorkSpaceFolder(const DocumentUri &uri, const QString &name)
|
||||
{
|
||||
setUri(uri);
|
||||
setName(name);
|
||||
|
@@ -440,12 +440,12 @@ class LANGUAGESERVERPROTOCOL_EXPORT WorkSpaceFolder : public JsonObject
|
||||
{
|
||||
public:
|
||||
WorkSpaceFolder() = default;
|
||||
WorkSpaceFolder(const QString &uri, const QString &name);
|
||||
WorkSpaceFolder(const DocumentUri &uri, const QString &name);
|
||||
using JsonObject::JsonObject;
|
||||
|
||||
// The associated URI for this workspace folder.
|
||||
QString uri() const { return typedValue<QString>(uriKey); }
|
||||
void setUri(const QString &uri) { insert(uriKey, uri); }
|
||||
DocumentUri uri() const { return DocumentUri::fromProtocol(typedValue<QString>(uriKey)); }
|
||||
void setUri(const DocumentUri &uri) { insert(uriKey, uri); }
|
||||
|
||||
// The name of the workspace folder. Defaults to the uri's basename.
|
||||
QString name() const { return typedValue<QString>(nameKey); }
|
||||
|
@@ -267,8 +267,9 @@ void Client::initialize()
|
||||
params.setInitializationOptions(m_initializationOptions);
|
||||
if (m_project) {
|
||||
params.setRootUri(DocumentUri::fromFilePath(m_project->projectDirectory()));
|
||||
params.setWorkSpaceFolders(Utils::transform(SessionManager::projects(), [](Project *pro){
|
||||
return WorkSpaceFolder(pro->projectDirectory().toString(), pro->displayName());
|
||||
params.setWorkSpaceFolders(Utils::transform(SessionManager::projects(), [](Project *pro) {
|
||||
return WorkSpaceFolder(DocumentUri::fromFilePath(pro->projectDirectory()),
|
||||
pro->displayName());
|
||||
}));
|
||||
}
|
||||
initRequest.setParams(params);
|
||||
@@ -840,7 +841,8 @@ void Client::projectOpened(ProjectExplorer::Project *project)
|
||||
if (!sendWorkspceFolderChanges())
|
||||
return;
|
||||
WorkspaceFoldersChangeEvent event;
|
||||
event.setAdded({WorkSpaceFolder(project->projectDirectory().toString(), project->displayName())});
|
||||
event.setAdded({WorkSpaceFolder(DocumentUri::fromFilePath(project->projectDirectory()),
|
||||
project->displayName())});
|
||||
DidChangeWorkspaceFoldersParams params;
|
||||
params.setEvent(event);
|
||||
DidChangeWorkspaceFoldersNotification change(params);
|
||||
@@ -860,8 +862,8 @@ void Client::projectClosed(ProjectExplorer::Project *project)
|
||||
if (!sendWorkspceFolderChanges())
|
||||
return;
|
||||
WorkspaceFoldersChangeEvent event;
|
||||
event.setRemoved(
|
||||
{WorkSpaceFolder(project->projectDirectory().toString(), project->displayName())});
|
||||
event.setRemoved({WorkSpaceFolder(DocumentUri::fromFilePath(project->projectDirectory()),
|
||||
project->displayName())});
|
||||
DidChangeWorkspaceFoldersParams params;
|
||||
params.setEvent(event);
|
||||
DidChangeWorkspaceFoldersNotification change(params);
|
||||
@@ -1239,7 +1241,7 @@ void Client::handleMethod(const QString &method, MessageId id, const IContent *c
|
||||
result = nullptr;
|
||||
} else {
|
||||
result = Utils::transform(projects, [](ProjectExplorer::Project *project) {
|
||||
return WorkSpaceFolder(project->projectDirectory().toString(),
|
||||
return WorkSpaceFolder(DocumentUri::fromFilePath(project->projectDirectory()),
|
||||
project->displayName());
|
||||
});
|
||||
}
|
||||
|
Reference in New Issue
Block a user