From 14aa8e7101f53a6752880aa403cdf7f25e18129a Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 2 Dec 2016 16:39:42 +0100 Subject: [PATCH] fix #16380 --- .../contrib/suggest/common/completionModel.ts | 2 +- .../test/common/completionModel.test.ts | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/vs/editor/contrib/suggest/common/completionModel.ts b/src/vs/editor/contrib/suggest/common/completionModel.ts index 0442b8ad8e9..a6fe047b2f5 100644 --- a/src/vs/editor/contrib/suggest/common/completionModel.ts +++ b/src/vs/editor/contrib/suggest/common/completionModel.ts @@ -122,7 +122,7 @@ export class CompletionModel { // differnet word, but in practice not - that's why we cache const wordLen = suggestion.overwriteBefore + characterCountDelta - (item.position.column - this._column); if (word.length !== wordLen) { - word = leadingLineContent.slice(-wordLen); + word = wordLen === 0 ? '' : leadingLineContent.slice(-wordLen); } let match = false; diff --git a/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts b/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts index 6c5acc76586..8e2f4d613c8 100644 --- a/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts +++ b/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts @@ -148,4 +148,27 @@ suite('CompletionModel', function () { // dupe, issue #14942 assertTopScore('is', 0, 'isValidViewletId', 'import statement'); }); + + test('proper current word when length=0, #16380', function () { + + model = new CompletionModel([ + createSuggestItem('