astro-ghostcms/.pnpm-store/v3/files/92/0d0e8dec1435f05b1d9b51b43e1...

45 lines
2.4 KiB
Plaintext
Raw Permalink Normal View History

2024-02-14 14:10:47 +00:00
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
* ------------------------------------------------------------------------------------------ */
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
exports.WorkspaceFoldersFeature = void 0;
const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol");
const WorkspaceFoldersFeature = (Base) => {
return class extends Base {
constructor() {
super();
this._notificationIsAutoRegistered = false;
}
initialize(capabilities) {
super.initialize(capabilities);
let workspaceCapabilities = capabilities.workspace;
if (workspaceCapabilities && workspaceCapabilities.workspaceFolders) {
this._onDidChangeWorkspaceFolders = new vscode_languageserver_protocol_1.Emitter();
this.connection.onNotification(vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type, (params) => {
this._onDidChangeWorkspaceFolders.fire(params.event);
});
}
}
fillServerCapabilities(capabilities) {
super.fillServerCapabilities(capabilities);
const changeNotifications = capabilities.workspace?.workspaceFolders?.changeNotifications;
this._notificationIsAutoRegistered = changeNotifications === true || typeof changeNotifications === 'string';
}
getWorkspaceFolders() {
return this.connection.sendRequest(vscode_languageserver_protocol_1.WorkspaceFoldersRequest.type);
}
get onDidChangeWorkspaceFolders() {
if (!this._onDidChangeWorkspaceFolders) {
throw new Error('Client doesn\'t support sending workspace folder change events.');
}
if (!this._notificationIsAutoRegistered && !this._unregistration) {
this._unregistration = this.connection.client.register(vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type);
}
return this._onDidChangeWorkspaceFolders.event;
}
};
};
exports.WorkspaceFoldersFeature = WorkspaceFoldersFeature;