UNPKG

@jupyter-lsp/jupyterlab-lsp

Version:

Language Server Protocol integration for JupyterLab

50 lines 1.59 kB
class OverridesMap extends Map { constructor(magicOverrides) { super(magicOverrides.map(m => [new RegExp(m.pattern), m.replacement])); } _overrideFor(code) { for (let [key, value] of this) { if (code.match(key)) { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore return code.replace(key, value); } } return null; } } export class ReversibleOverridesMap extends OverridesMap { constructor(magicOverrides) { super(magicOverrides); this.overrides = magicOverrides; } get reverse() { return this.type(this.overrides .filter(override => override.reverse != null) .map(override => override.reverse)); } type(overrides) { return new ReversibleOverridesMap(overrides); } overrideFor(cell) { return super._overrideFor(cell); } replaceAll(rawLines, map = this) { let substitutedLines = new Array(); let skipInspect = new Array(); for (let i = 0; i < rawLines.length; i++) { let line = rawLines[i]; let override = map.overrideFor(line); substitutedLines.push(override == null ? line : override); skipInspect.push(override != null); } return { lines: substitutedLines, skipInspect: skipInspect }; } reverseReplaceAll(rawLines) { return this.replaceAll(rawLines, this.reverse).lines; } } //# sourceMappingURL=maps.js.map