如何扩展JupyterLab的DocumentManager

时间:2018-10-09 23:38:22

标签: jupyter-notebook jupyter jupyter-lab

我想将我自己的自定义行为(服务器端)添加到结束标签操作中,因此我认为我应该扩展该方法的closeFile() DocumentManager https://github.com/jupyterlab/jupyterlab/blob/master/packages/docmanager/src/manager.ts#L177

我有一个自定义文件浏览器插件(扩展名),如果我将其与JupyterLab的核心IDocumentManager一起使用,则效果很好,但如果与扩展/覆盖的IMyDocumentManager一起使用,则效果很好:

const browserPlugin: JupyterLabPlugin<void> = {
  id: "my:fs",
  requires: [IMyDocumentManager, ISettingRegistry, IMainMenu],
  activate: activateMyBrowser,
  autoStart: true
};

我的IMyDocumentManager如下:

import { IDocumentManager, DocumentManager } from '@jupyterlab/docmanager';
import { Token } from '@phosphor/coreutils';

export interface IMyDocumentManager extends IDocumentManager {}

export const IMyDocumentManager = new Token<IMyDocumentManager ('@jupyterlab/docmanager:IDocumentManager'); 

export class MyDocumentManager extends DocumentManager implements IMyDocumentManager {
   closeFile(path: string): Promise<void> {
    console.log("Test override a method for closing: " + path);
    return super.closeFile(path);
  }
 }

当我在浏览器中加载JupyterLab时,出现错误:

enter image description here

可能是因为我必须以不同的方式定义令牌。我应该使用new Token<IMyDocumentManager ('@jupyterlab/docmanager:IDocumentManager')以外的其他字符串代替'@jupyterlab/docmanager:IDocumentManager',但是我真的不知道是什么。很难从PhosphorJS代码中推断出来。

0 个答案:

没有答案