@jupyterlab/lsp
Version:
45 lines • 1.74 kB
JavaScript
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/**
* Register the capabilities with the server capabilities provider
*
* @param serverCapabilities - server capabilities provider.
* @param registration - capabilities to be registered.
* @return - the new server capabilities provider
*/
function registerServerCapability(serverCapabilities, registration) {
const serverCapabilitiesCopy = JSON.parse(JSON.stringify(serverCapabilities));
const { method, registerOptions } = registration;
const providerName = method.substring(13) + 'Provider';
if (providerName) {
if (!registerOptions) {
serverCapabilitiesCopy[providerName] = true;
}
else {
serverCapabilitiesCopy[providerName] = JSON.parse(JSON.stringify(registerOptions));
}
}
else {
console.warn('Could not register server capability.', registration);
return null;
}
return serverCapabilitiesCopy;
}
/**
* Unregister the capabilities with the server capabilities provider
*
* @param serverCapabilities - server capabilities provider.
* @param registration - capabilities to be unregistered.
* @return - the new server capabilities provider
*/
function unregisterServerCapability(serverCapabilities, unregistration) {
const serverCapabilitiesCopy = JSON.parse(JSON.stringify(serverCapabilities));
const { method } = unregistration;
const providerName = method.substring(13) + 'Provider';
delete serverCapabilitiesCopy[providerName];
return serverCapabilitiesCopy;
}
export { registerServerCapability, unregisterServerCapability };
//# sourceMappingURL=server-capability-registration.js.map