diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index 273b656a2fd660573ed38e21f43e6bdf46fe5a28..cadd6efb32b67a4cedb269fc9dcc11f086cfce8a 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 7a925ece172122f663fe4e853d418b28a1de0eb9..5d16733beb80fb71640216554874e1c1e96436e2 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 d964d1b7f3d50f90f1e6eb8a1e2a3a5831aa4fa4..fadd4be2035be6e61e08250e47d6dc60736ebb7e 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 }))); } },