我想将我自己的自定义行为(服务器端)添加到结束标签操作中,因此我认为我应该扩展该方法的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时,出现错误:
可能是因为我必须以不同的方式定义令牌。我应该使用new Token<IMyDocumentManager ('@jupyterlab/docmanager:IDocumentManager')
以外的其他字符串代替'@jupyterlab/docmanager:IDocumentManager'
,但是我真的不知道是什么。很难从PhosphorJS代码中推断出来。