@jupyter-lsp/jupyterlab-lsp
Version:
Language Server Protocol integration for JupyterLab
46 lines (39 loc) • 1.09 kB
text/typescript
import { JupyterFrontEndPlugin } from '@jupyterlab/application';
import {
ICodeOverridesRegistry,
ILSPCodeOverridesManager,
IScopedCodeOverride
} from './tokens';
export class CodeOverridesManager implements ILSPCodeOverridesManager {
private readonly _overrides: ICodeOverridesRegistry;
get registry() {
return this._overrides;
}
constructor() {
this._overrides = {};
}
register(override: IScopedCodeOverride, language: string) {
if (!(language in this._overrides)) {
this._overrides[language] = { cell: [], line: [] };
}
let overrides = this._overrides[language];
switch (override.scope) {
case 'cell':
overrides.cell.push(override);
break;
case 'line':
overrides.line.push(override);
break;
}
}
}
export const CODE_OVERRIDES_MANAGER: JupyterFrontEndPlugin<ILSPCodeOverridesManager> =
{
id: ILSPCodeOverridesManager.name,
requires: [],
activate: app => {
return new CodeOverridesManager();
},
provides: ILSPCodeOverridesManager,
autoStart: true
};