如何在 JupyterLab 中获取对 CodeMirror 实例的引用?
How can I get a reference to a CodeMirror instance in JupyterLab?
文档表明在CodeEditorWrapper实例中有一个CodeMirror实例:https://jupyterlab.readthedocs.io/en/stable/extension/notebook.html?highlight=codemirror#widget-hierarchy
我在 CodeEditorWrapper 实例上找到了 editor
属性。我认为它可能是一个像这里描述的那样的 CodeMirror 实例:https://codemirror.net/doc/manual.html,但它似乎不是。
如何在 JupyterLab 中获取对 CodeMirror 实例的引用?
我正在尝试执行此处描述的操作:https://discuss.codemirror.net/t/get-visible-lines-with-respect-to-current-scroll/1429
编辑:
一旦你有一个单元格的引用,它可以像这样获得:
(Cell<ICellModel>#editor as CodeMirrorEditor).editor
例如,
Notebook#widgets.forEach((cell: Cell<ICellModel>) => {
(cell.editor as CodeMirrorEditor).editor // Editor
});
如果您想获得 CodeMirror
实例,我认为您不需要使用 CodeEditorWrapper
。对于 JupyterLab 3.0,以下内容应该运行良好:
const cell: Cell = getTheCellObjectSomehow();
const editor = cell.editor as CodeMirrorEditor;
// or
// const fileEditor: FileEditor = getTheFileEditorObjectSomehow();
// const editor = cell.fileEditor as CodeMirrorEditor;
const cm: CodeMirror.Editor = cm.editor;
其中 cm
是您的 CodeMirror 实例。如有疑问,请咨询拼写检查扩展 (here) or lsp extension (here) 如何处理 CodeMirror 访问。
文档表明在CodeEditorWrapper实例中有一个CodeMirror实例:https://jupyterlab.readthedocs.io/en/stable/extension/notebook.html?highlight=codemirror#widget-hierarchy
我在 CodeEditorWrapper 实例上找到了 editor
属性。我认为它可能是一个像这里描述的那样的 CodeMirror 实例:https://codemirror.net/doc/manual.html,但它似乎不是。
如何在 JupyterLab 中获取对 CodeMirror 实例的引用?
我正在尝试执行此处描述的操作:https://discuss.codemirror.net/t/get-visible-lines-with-respect-to-current-scroll/1429
编辑:
一旦你有一个单元格的引用,它可以像这样获得:
(Cell<ICellModel>#editor as CodeMirrorEditor).editor
例如,
Notebook#widgets.forEach((cell: Cell<ICellModel>) => {
(cell.editor as CodeMirrorEditor).editor // Editor
});
如果您想获得 CodeMirror
实例,我认为您不需要使用 CodeEditorWrapper
。对于 JupyterLab 3.0,以下内容应该运行良好:
const cell: Cell = getTheCellObjectSomehow();
const editor = cell.editor as CodeMirrorEditor;
// or
// const fileEditor: FileEditor = getTheFileEditorObjectSomehow();
// const editor = cell.fileEditor as CodeMirrorEditor;
const cm: CodeMirror.Editor = cm.editor;
其中 cm
是您的 CodeMirror 实例。如有疑问,请咨询拼写检查扩展 (here) or lsp extension (here) 如何处理 CodeMirror 访问。