Revamping to matrix style
This commit is contained in:
49
node_modules/@volar/language-server/lib/features/configurations.js
generated
vendored
Normal file
49
node_modules/@volar/language-server/lib/features/configurations.js
generated
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.register = register;
|
||||
const vscode = require("vscode-languageserver");
|
||||
function register(server) {
|
||||
const configurations = new Map();
|
||||
const didChangeCallbacks = new Set();
|
||||
server.onInitialized(() => {
|
||||
server.connection.onDidChangeConfiguration(params => {
|
||||
configurations.clear(); // TODO: clear only the configurations that changed
|
||||
for (const cb of didChangeCallbacks) {
|
||||
cb(params);
|
||||
}
|
||||
});
|
||||
const didChangeConfiguration = server.initializeParams.capabilities.workspace?.didChangeConfiguration;
|
||||
if (didChangeConfiguration?.dynamicRegistration) {
|
||||
server.connection.client.register(vscode.DidChangeConfigurationNotification.type);
|
||||
}
|
||||
});
|
||||
return {
|
||||
get,
|
||||
onDidChange,
|
||||
};
|
||||
function get(section, scopeUri) {
|
||||
if (!server.initializeParams.capabilities.workspace?.configuration) {
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
const didChangeConfiguration = server.initializeParams.capabilities.workspace?.didChangeConfiguration;
|
||||
if (!scopeUri && didChangeConfiguration) {
|
||||
if (!configurations.has(section)) {
|
||||
configurations.set(section, getConfigurationWorker(section, scopeUri));
|
||||
}
|
||||
return configurations.get(section);
|
||||
}
|
||||
return getConfigurationWorker(section, scopeUri);
|
||||
}
|
||||
function onDidChange(cb) {
|
||||
didChangeCallbacks.add(cb);
|
||||
return {
|
||||
dispose() {
|
||||
didChangeCallbacks.delete(cb);
|
||||
},
|
||||
};
|
||||
}
|
||||
async function getConfigurationWorker(section, scopeUri) {
|
||||
return (await server.connection.workspace.getConfiguration({ scopeUri, section })) ?? undefined /* replace null to undefined */;
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=configurations.js.map
|
||||
Reference in New Issue
Block a user