forked from qt-creator/qt-creator
LanguageClient: send project folder on server request
The server can request the list of opened projects via the "workspace/workspaceFolders" request. Add a creator response for this request. Change-Id: Ieadf604aeb920da28f085b8441e6f9af1f540fd3 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -871,6 +871,21 @@ void Client::handleMethod(const QString &method, MessageId id, const IContent *c
|
||||
paramsValid = params.isValid(&error);
|
||||
if (paramsValid)
|
||||
applyWorkspaceEdit(params.edit());
|
||||
} else if (method == WorkSpaceFolderRequest::methodName) {
|
||||
WorkSpaceFolderRequest::Response response(dynamic_cast<const WorkSpaceFolderRequest *>(content)->id());
|
||||
const QList<ProjectExplorer::Project *> projects
|
||||
= ProjectExplorer::SessionManager::projects();
|
||||
WorkSpaceFolderResult result;
|
||||
if (projects.isEmpty()) {
|
||||
result = nullptr;
|
||||
} else {
|
||||
result = Utils::transform(projects, [](ProjectExplorer::Project *project) {
|
||||
return WorkSpaceFolder(project->projectDirectory().toString(),
|
||||
project->displayName());
|
||||
});
|
||||
}
|
||||
response.setResult(result);
|
||||
sendContent(response);
|
||||
} else if (id.isValid(&error)) {
|
||||
Response<JsonObject, JsonObject> response(id);
|
||||
ResponseError<JsonObject> error;
|
||||
|
||||
Reference in New Issue
Block a user