@krassowski/jupyterlab-lsp
Version:
Language Server Protocol integration for JupyterLab
42 lines (33 loc) • 1.16 kB
text/typescript
import { CodeEditor } from '@jupyterlab/codeeditor';
import { expect } from 'chai';
import { IVirtualDocumentBlock, VirtualDocument } from '../virtual/document';
export function extract_code(document: VirtualDocument, code: string) {
return document.extract_foreign_code(
{ value: code, ce_editor: null as any },
{
line: 0,
column: 0
}
);
}
interface IDocumentWithRange {
range: CodeEditor.IRange;
virtual_document: VirtualDocument;
}
export function get_the_only_pair(
foreign_document_map: Map<CodeEditor.IRange, IVirtualDocumentBlock>
): IDocumentWithRange {
expect(foreign_document_map.size).to.equal(1);
let range = foreign_document_map.keys().next().value;
let { virtual_document } = foreign_document_map.get(range)!;
return { range, virtual_document };
}
export function get_the_only_virtual(
foreign_document_map: Map<CodeEditor.IRange, IVirtualDocumentBlock>
) {
let { virtual_document } = get_the_only_pair(foreign_document_map);
return virtual_document;
}
export function wrap_in_python_lines(line: string) {
return 'print("some code before")\n' + line + '\n' + 'print("and after")\n';
}