diff --git a/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts b/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts index 7065485acda..7901d414ef9 100644 --- a/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts +++ b/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts @@ -337,6 +337,7 @@ export class ConfigurationManager implements debug.IConfigurationManager { public openConfigFile(sideBySide: boolean): TPromise { const resource = uri.file(paths.join(this.contextService.getWorkspace().resource.fsPath, '/.vscode/launch.json')); + let configFileCreated = false; return this.fileService.resolveContent(resource).then(content => true, err => this.getInitialConfigFileContent().then(content => { @@ -344,10 +345,11 @@ export class ConfigurationManager implements debug.IConfigurationManager { return false; } + configFileCreated = true; return this.fileService.updateContent(resource, content).then(() => true); } - )).then(configFileCreated => { - if (!configFileCreated) { + )).then(errorFree => { + if (!errorFree) { return false; } this.telemetryService.publicLog('debugConfigure'); @@ -355,8 +357,9 @@ export class ConfigurationManager implements debug.IConfigurationManager { return this.editorService.openEditor({ resource: resource, options: { - forceOpen: true - } + forceOpen: true, + pinned: configFileCreated // pin only if config file is created #8727 + }, }, sideBySide).then(() => true); }, (error) => { throw new Error(nls.localize('DebugConfig.failed', "Unable to create 'launch.json' file inside the '.vscode' folder ({0}).", error)); diff --git a/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts b/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts index 15486e6fa5d..dc1b640994f 100644 --- a/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts +++ b/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts @@ -202,6 +202,7 @@ class ConfigureTaskRunnerAction extends Action { return TPromise.as(undefined); } let sideBySide = !!(event && (event.ctrlKey || event.metaKey)); + let configFileCreated = false; return this.fileService.resolveFile(this.contextService.toResource('.vscode/tasks.json')).then((success) => { return success; }, (err:any) => { @@ -247,6 +248,7 @@ class ConfigureTaskRunnerAction extends Action { if (editorConfig.editor.insertSpaces) { content = content.replace(/(\n)(\t+)/g, (_, s1, s2) => s1 + strings.repeat(' ', s2.length * editorConfig.editor.tabSize)); } + configFileCreated = true; return this.fileService.createFile(this.contextService.toResource('.vscode/tasks.json'), content); }); }); @@ -258,7 +260,8 @@ class ConfigureTaskRunnerAction extends Action { return this.editorService.openEditor({ resource: stat.resource, options: { - forceOpen: true + forceOpen: true, + pinned: configFileCreated // pin only if config file is created #8727 } }, sideBySide); }, (error) => {