UNPKG

@jupyter-lsp/jupyterlab-lsp

Version:

Language Server Protocol integration for JupyterLab

46 lines (39 loc) 1.09 kB
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 };