From 61310508b175eed41bdd702a2a46879a57b8096e Mon Sep 17 00:00:00 2001 From: Mark Sujew Date: Mon, 30 May 2022 16:23:34 +0200 Subject: [PATCH] Fix duplicated editor tabs --- .../src/browser/arduino-frontend-contribution.tsx | 6 +++++- .../src/browser/arduino-ide-frontend-module.ts | 4 ++++ .../src/browser/theia/editor/editor-manager.ts | 9 +++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 arduino-ide-extension/src/browser/theia/editor/editor-manager.ts diff --git a/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx b/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx index 25e5d220a..9804f269f 100644 --- a/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx +++ b/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx @@ -575,7 +575,11 @@ export class ArduinoFrontendContribution (widget) => widget.editor.uri.toString() === uri ); if (!widget || forceOpen) { - return this.editorManager.open(new URI(uri), options); + return this.editorManager.open(new URI(uri), options ?? { + mode: 'reveal', + preview: false, + counter: 0 + }); } } diff --git a/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts b/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts index 355b4e8a9..1f70245cb 100644 --- a/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts +++ b/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts @@ -275,6 +275,8 @@ import { IDEUpdaterDialogWidget, } from './dialogs/ide-updater/ide-updater-dialog'; import { ElectronIpcConnectionProvider } from '@theia/core/lib/electron-browser/messaging/electron-ipc-connection-provider'; +import { EditorManager as TheiaEditorManager } from '@theia/editor/lib/browser/editor-manager'; +import { EditorManager } from './theia/editor/editor-manager'; const ElementQueries = require('css-element-queries/src/ElementQueries'); @@ -507,6 +509,8 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => { bind(SearchInWorkspaceWidget).toSelf(); rebind(TheiaSearchInWorkspaceWidget).toService(SearchInWorkspaceWidget); + + rebind(TheiaEditorManager).to(EditorManager); // replace search icon rebind(TheiaSearchInWorkspaceFactory) diff --git a/arduino-ide-extension/src/browser/theia/editor/editor-manager.ts b/arduino-ide-extension/src/browser/theia/editor/editor-manager.ts new file mode 100644 index 000000000..6c4f7aa8c --- /dev/null +++ b/arduino-ide-extension/src/browser/theia/editor/editor-manager.ts @@ -0,0 +1,9 @@ +import { EditorManager as TheiaEditorManager } from '@theia/editor/lib/browser/editor-manager'; + +export class EditorManager extends TheiaEditorManager { + + protected getOrCreateCounterForUri(): number { + return 0; + } + +}