From 3f472f0b9e93d610dcc3700ecbf7578edad8b0f9 Mon Sep 17 00:00:00 2001 From: Mark Sujew Date: Tue, 31 May 2022 11:33:07 +0200 Subject: [PATCH] Fix duplicated editor tabs (#1012) --- .../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 a62094efc..1a227d1b2 100644 --- a/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx +++ b/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx @@ -579,7 +579,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 a6f20c1bf..9b4f49052 100644 --- a/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts +++ b/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts @@ -276,6 +276,8 @@ import { import { ElectronIpcConnectionProvider } from '@theia/core/lib/electron-browser/messaging/electron-ipc-connection-provider'; import { MonitorModel } from './monitor-model'; import { MonitorManagerProxyClientImpl } from './monitor-manager-proxy-client-impl'; +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'); @@ -525,6 +527,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) .to(SearchInWorkspaceFactory) 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; + } + +}