From bd8e66dccfe584acdedc724a4d7d05c06110519b Mon Sep 17 00:00:00 2001 From: Akos Kitta Date: Mon, 20 Mar 2023 14:50:16 +0100 Subject: [PATCH 1/2] no-merge: added a preference to reproduce #1791 the smaller the timeout the better chance you have to see the duplicate editors. Signed-off-by: Akos Kitta --- arduino-ide-extension/src/browser/arduino-preferences.ts | 7 +++++++ .../src/browser/contributions/open-sketch-files.ts | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/arduino-ide-extension/src/browser/arduino-preferences.ts b/arduino-ide-extension/src/browser/arduino-preferences.ts index 5adc8b9c2..72fad503f 100644 --- a/arduino-ide-extension/src/browser/arduino-preferences.ts +++ b/arduino-ide-extension/src/browser/arduino-preferences.ts @@ -258,6 +258,12 @@ export const ArduinoConfigSchema: PreferenceSchema = { ), default: undefined, }, + 'arduino.sketch.editorOpenTimeout': { + type: 'number', + description: + 'Set the editor timeout in milliseconds to reproduce the duplicate editor tabs. See #1791', + default: 5000, + }, }, }; @@ -288,6 +294,7 @@ export interface ArduinoConfiguration { 'arduino.cli.daemon.debug': boolean; 'arduino.sketch.inoBlueprint': string; 'arduino.checkForUpdates': boolean; + 'arduino.sketch.editorOpenTimeout': number; } export const ArduinoPreferences = Symbol('ArduinoPreferences'); diff --git a/arduino-ide-extension/src/browser/contributions/open-sketch-files.ts b/arduino-ide-extension/src/browser/contributions/open-sketch-files.ts index 01fa997d3..56e877ea4 100644 --- a/arduino-ide-extension/src/browser/contributions/open-sketch-files.ts +++ b/arduino-ide-extension/src/browser/contributions/open-sketch-files.ts @@ -196,7 +196,7 @@ export class OpenSketchFiles extends SketchContribution { } }); - const timeout = 5_000; // number of ms IDE2 waits for the editor to show up in the UI + const timeout = this.preferences['arduino.sketch.editorOpenTimeout']; // number of ms IDE2 waits for the editor to show up in the UI const result: EditorWidget | undefined | 'timeout' = await Promise.race([ deferred.promise, wait(timeout).then(() => { From 3a52bbf2653c1fa5e4d42ccb2d93c5bf1dffe876 Mon Sep 17 00:00:00 2001 From: Akos Kitta Date: Mon, 20 Mar 2023 14:27:03 +0100 Subject: [PATCH 2/2] fix: incorrect editor widget key calculation to avoid duplicate editor tabs when opening a sketch with no previously saved workbench layout Closes #1791 Signed-off-by: Akos Kitta --- .../src/browser/contributions/open-sketch-files.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arduino-ide-extension/src/browser/contributions/open-sketch-files.ts b/arduino-ide-extension/src/browser/contributions/open-sketch-files.ts index 56e877ea4..fce1d9e19 100644 --- a/arduino-ide-extension/src/browser/contributions/open-sketch-files.ts +++ b/arduino-ide-extension/src/browser/contributions/open-sketch-files.ts @@ -45,7 +45,11 @@ export class OpenSketchFiles extends SketchContribution { await this.ensureOpened(uri); } if (focusMainSketchFile) { - await this.ensureOpened(mainFileUri, true, { mode: 'activate' }); + await this.ensureOpened(mainFileUri, true, { + mode: 'activate', + preview: false, + counter: 0, + }); } if (mainFileUri.endsWith('.pde')) { const message = nls.localize(