Files
discord-clone/node_modules/vscode-languageclient/lib/common/progress.js
2023-01-03 09:29:04 -06:00

42 lines
1.6 KiB
JavaScript

"use strict";
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
* ------------------------------------------------------------------------------------------ */
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProgressFeature = void 0;
const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol");
const progressPart_1 = require("./progressPart");
function ensure(target, key) {
if (target[key] === void 0) {
target[key] = Object.create(null);
}
return target[key];
}
class ProgressFeature {
constructor(_client) {
this._client = _client;
this.activeParts = new Set();
}
fillClientCapabilities(capabilities) {
ensure(capabilities, 'window').workDoneProgress = true;
}
initialize() {
const client = this._client;
const deleteHandler = (part) => {
this.activeParts.delete(part);
};
const createHandler = (params) => {
this.activeParts.add(new progressPart_1.ProgressPart(this._client, params.token, deleteHandler));
};
client.onRequest(vscode_languageserver_protocol_1.WorkDoneProgressCreateRequest.type, createHandler);
}
dispose() {
for (const part of this.activeParts) {
part.done();
}
this.activeParts.clear();
}
}
exports.ProgressFeature = ProgressFeature;
//# sourceMappingURL=progress.js.map