Я хотел бы добавить свое собственное пользовательское поведение (на стороне сервера) к операции закрывающей вкладки, поэтому я думаю, что я должен расширить этот метод closeFile()
из DocumentManager
https://github.com/jupyterlab/jupyterlab/blob/master/packages/docmanager/src/manager.ts#L177.
У меня есть пользовательский плагин для файлового браузера (расширение), который хорошо работает, если я использую его с основным IDocumentManager JupyterLab, но нет, если я использую его с расширенным / перезаписанным IMyDocumentManager, как здесь:
const browserPlugin: JupyterLabPlugin<void> = {
id: "my:fs",
requires: [IMyDocumentManager, ISettingRegistry, IMainMenu],
activate: activateMyBrowser,
autoStart: true
};
My 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.