diff --git a/packages/application-extension/src/index.ts b/packages/application-extension/src/index.ts index cd0ddd62a5..01d8a1c07b 100644 --- a/packages/application-extension/src/index.ts +++ b/packages/application-extension/src/index.ts @@ -200,16 +200,24 @@ const opener: JupyterFrontEndPlugin = { ): void => { const { commands, docRegistry } = app; + const ignoredPattern = new RegExp('/tree/(.*)'); + const pathSegmentPattern = new RegExp('\\bnotebooks\\b|\\bedit\\b'); const command = 'router:tree'; commands.addCommand(command, { execute: (args: any) => { const parsed = args as IRouter.ILocation; const matches = parsed.path.match(TREE_PATTERN) ?? []; + const [, , path] = matches; if (!path) { return; } + const pathSegments: string[] = parsed.path.split(pathSegmentPattern); + if (pathSegments.length > 1 && pathSegments[0].match(ignoredPattern)) { + return; + } + app.started.then(async () => { const file = decodeURIComponent(path); const urlParams = new URLSearchParams(parsed.search); diff --git a/packages/console-extension/src/index.ts b/packages/console-extension/src/index.ts index 1efc124eb4..79eeb96cb0 100644 --- a/packages/console-extension/src/index.ts +++ b/packages/console-extension/src/index.ts @@ -29,13 +29,16 @@ const opener: JupyterFrontEndPlugin = { activate: (app: JupyterFrontEnd, router: IRouter) => { const { commands } = app; const consolePattern = new RegExp('/consoles/(.*)'); + const ignoreTreePattern = new RegExp('/(tree|notebooks|edit)/(.*)'); const command = 'router:console'; commands.addCommand(command, { execute: (args: any) => { const parsed = args as IRouter.ILocation; const matches = parsed.path.match(consolePattern); - if (!matches) { + const isTreeMatch = parsed.path.match(ignoreTreePattern); + + if (isTreeMatch || !matches) { return; } const [, match] = matches; diff --git a/packages/terminal-extension/src/index.ts b/packages/terminal-extension/src/index.ts index 3de0250808..0183eb50c0 100644 --- a/packages/terminal-extension/src/index.ts +++ b/packages/terminal-extension/src/index.ts @@ -33,13 +33,16 @@ const opener: JupyterFrontEndPlugin = { ) => { const { commands } = app; const terminalPattern = new RegExp('/terminals/(.*)'); + const ignoreTreePattern = new RegExp('/(tree|notebooks|edit)/(.*)'); const command = 'router:terminal'; commands.addCommand(command, { execute: (args: any) => { const parsed = args as IRouter.ILocation; const matches = parsed.path.match(terminalPattern); - if (!matches) { + const isTreeMatch = parsed.path.match(ignoreTreePattern); + + if (isTreeMatch || !matches) { return; } const [, name] = matches;