From 65b4157f7a3bfb94af03a28d6cbb573ba21248d7 Mon Sep 17 00:00:00 2001 From: isidor Date: Mon, 24 Oct 2016 16:25:31 +0200 Subject: [PATCH] debug: always pass overwriteBefore for each Suggestion fixes #14193 --- src/vs/workbench/parts/debug/common/debug.ts | 2 +- src/vs/workbench/parts/debug/common/debugModel.ts | 7 ++++--- src/vs/workbench/parts/debug/electron-browser/repl.ts | 6 +++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index 273b656a2fd..cadd6efb32b 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -173,7 +173,7 @@ export interface IStackFrame extends ITreeElement { source: Source; getScopes(): TPromise; restart(): TPromise; - completions(text: string, position: Position): TPromise; + completions(text: string, position: Position, overwriteBefore: number): TPromise; } export interface IEnablement extends ITreeElement { diff --git a/src/vs/workbench/parts/debug/common/debugModel.ts b/src/vs/workbench/parts/debug/common/debugModel.ts index 7a925ece172..5d16733beb8 100644 --- a/src/vs/workbench/parts/debug/common/debugModel.ts +++ b/src/vs/workbench/parts/debug/common/debugModel.ts @@ -354,7 +354,7 @@ export class StackFrame implements debug.IStackFrame { return this.thread.process.session.restartFrame({ frameId: this.frameId }); } - public completions(text: string, position: Position): TPromise { + public completions(text: string, position: Position, overwriteBefore: number): TPromise { if (!this.thread.process.session.configuration.capabilities.supportsCompletionsRequest) { return TPromise.as([]); } @@ -365,10 +365,11 @@ export class StackFrame implements debug.IStackFrame { column: position.column, line: position.lineNumber }).then(response => { - return response && response.body && response.body.targets ? response.body.targets.map(item => ({ + return response && response.body && response.body.targets ? response.body.targets.map(item => ({ label: item.label, insertText: item.text || item.label, - type: item.type + type: item.type, + overwriteBefore: item.length || overwriteBefore })) : []; }, err => []); } diff --git a/src/vs/workbench/parts/debug/electron-browser/repl.ts b/src/vs/workbench/parts/debug/electron-browser/repl.ts index d964d1b7f3d..fadd4be2035 100644 --- a/src/vs/workbench/parts/debug/electron-browser/repl.ts +++ b/src/vs/workbench/parts/debug/electron-browser/repl.ts @@ -172,12 +172,12 @@ export class Repl extends Panel implements IPrivateReplService { triggerCharacters: ['.'], provideCompletionItems: (model: IReadOnlyModel, position: Position, token: CancellationToken): Thenable => { const word = this.replInput.getModel().getWordAtPosition(position); + const overwriteBefore = word ? word.word.length : 0; const text = this.replInput.getModel().getLineContent(position.lineNumber); const focusedStackFrame = this.debugService.getViewModel().focusedStackFrame; - const completions = focusedStackFrame ? focusedStackFrame.completions(text, position) : TPromise.as([]); + const completions = focusedStackFrame ? focusedStackFrame.completions(text, position, overwriteBefore) : TPromise.as([]); return wireCancellationToken(token, completions.then(suggestions => ({ - currentWord: word ? word.word : '', - suggestions + suggestions: suggestions }))); } }, -- GitLab