diff --git a/src/vs/workbench/parts/debug/browser/debugActions.ts b/src/vs/workbench/parts/debug/browser/debugActions.ts index 1d35bf5ea6472c245c80a3afda96f028d731255c..f9b26e2ad3286579f7e53c5adf1a890031b86f71 100644 --- a/src/vs/workbench/parts/debug/browser/debugActions.ts +++ b/src/vs/workbench/parts/debug/browser/debugActions.ts @@ -113,7 +113,7 @@ export class ConfigureAction extends AbstractDebugAction { configurationManager.selectConfiguration(configurationManager.getLaunches()[0]); } - return configurationManager.selectedConfiguration.launch.openConfigFile(sideBySide); + return configurationManager.selectedConfiguration.launch.openConfigFile(sideBySide, false); } } diff --git a/src/vs/workbench/parts/debug/browser/debugCommands.ts b/src/vs/workbench/parts/debug/browser/debugCommands.ts index 7c09e489c3a7cc7bf0714715d327aedca3622db4..a827a84bb219aaf61216821277cb17e5581f5f9b 100644 --- a/src/vs/workbench/parts/debug/browser/debugCommands.ts +++ b/src/vs/workbench/parts/debug/browser/debugCommands.ts @@ -186,7 +186,7 @@ export function registerCommands(): void { } const launch = manager.getLaunches().filter(l => l.uri.toString() === launchUri).pop() || manager.selectedConfiguration.launch; - return launch.openConfigFile(false).done(({ editor, created }) => { + return launch.openConfigFile(false, false).done(({ editor, created }) => { if (editor && !created) { const codeEditor = editor.getControl(); if (codeEditor) { diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index d832d738ecb602e8a2d15821e090196e169a3077..0c28a3e0db4e6f85250c3c4223fcf480fdfb248e 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -574,7 +574,7 @@ export interface ILaunch { /** * Opens the launch.json file. Creates if it does not exist. */ - openConfigFile(sideBySide: boolean, type?: string): TPromise<{ editor: IEditor, created: boolean }>; + openConfigFile(sideBySide: boolean, preserveFocus: boolean, type?: string): TPromise<{ editor: IEditor, created: boolean }>; } // Debug service interfaces diff --git a/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts b/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts index 2d2fd7ce3bc994d20ea94d5df6f497fd5f457b03..2640da6c03a4c764ba6ad6bc845774d31fe21726 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts @@ -442,7 +442,7 @@ class Launch implements ILaunch { return config.configurations.filter(config => config && config.name === name).shift(); } - public openConfigFile(sideBySide: boolean, type?: string): TPromise<{ editor: IEditor, created: boolean }> { + public openConfigFile(sideBySide: boolean, preserveFocus: boolean, type?: string): TPromise<{ editor: IEditor, created: boolean }> { const resource = this.uri; let created = false; @@ -487,6 +487,7 @@ class Launch implements ILaunch { resource, options: { selection, + preserveFocus, pinned: created, revealIfVisible: true }, @@ -521,8 +522,11 @@ class WorkspaceLaunch extends Launch implements ILaunch { return this.configurationService.inspect('launch').workspace; } - openConfigFile(sideBySide: boolean, type?: string): TPromise<{ editor: IEditor, created: boolean }> { - return this.editorService.openEditor({ resource: this.contextService.getWorkspace().configuration }).then(editor => ({ editor, created: false })); + openConfigFile(sideBySide: boolean, preserveFocus: boolean, type?: string): TPromise<{ editor: IEditor, created: boolean }> { + return this.editorService.openEditor({ + resource: this.contextService.getWorkspace().configuration, + options: { preserveFocus } + }, sideBySide ? SIDE_GROUP : ACTIVE_GROUP).then(editor => ({ editor, created: false })); } } @@ -555,7 +559,7 @@ class UserLaunch extends Launch implements ILaunch { return this.configurationService.inspect('launch').user; } - openConfigFile(sideBySide: boolean, type?: string): TPromise<{ editor: IEditor, created: boolean }> { - return this.preferencesService.openGlobalSettings().then(editor => ({ editor, created: false })); + openConfigFile(sideBySide: boolean, preserveFocus: boolean, type?: string): TPromise<{ editor: IEditor, created: boolean }> { + return this.preferencesService.openGlobalSettings(false, { preserveFocus }).then(editor => ({ editor, created: false })); } } diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index 182570ef159906f96143bf205dd85ea54fd40e78..21e321d5ea59742b95c2623131d31e0516e38f8e 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -557,7 +557,7 @@ export class DebugService implements IDebugService { } if (launch && type) { - return launch.openConfigFile(false, type).done(undefined, errors.onUnexpectedError); + return launch.openConfigFile(false, true, type).done(undefined, errors.onUnexpectedError); } }) ).then(() => undefined); @@ -628,7 +628,7 @@ export class DebugService implements IDebugService { return this.showError(nls.localize('noFolderWorkspaceDebugError', "The active file can not be debugged. Make sure it is saved on disk and that you have a debug extension installed for that file type.")); } - return launch && launch.openConfigFile(false).then(editor => void 0); + return launch && launch.openConfigFile(false, true).then(editor => void 0); }) ).then(() => { this.initializing = false;