Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes/No <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.60.0-insider (user setup) OS Version: Windows_NT x64 10.0. List of extensions: None, all are disabled Steps to Reproduce: a new typescript file. , the suggestions widget opens and the first suggestion is . gray text however, only shows , it's missing the last character. 've attached a gif. Notice how when I type , the gray text displays but when I type , it shows . !
can you please verify todays insider build fixes this?
Yes, it has been fixed!

Discussion:
return i; } <del> function minimizeInlineCompletion(model: ITextModel, inlineCompletion: NormalizedInlineCompletion | undefined): NormalizedInlineCompletion | undefined { </del> <ins> export function minimizeInlineCompletion(model: ITextModel, inlineCompletion: NormalizedInlineCompletion | undefined): NormalizedInlineCompletion | undefined { </ins> if (!inlineCompletion) { return inlineCompletion; }

const startOffset = model.getOffsetAt(inlineCompletion.range.getStartPosition()) + commonPrefixLength; const start = model.getPositionAt(startOffset); <del> const commonSuffixLength = lengthOfLongestCommonSuffix(valueToReplace, inlineCompletion.text); </del> <ins> const remainingValueToReplace = valueToReplace.substr(commonPrefixLength); const commonSuffixLength = lengthOfLongestCommonSuffix(remainingValueToReplace, inlineCompletion.text); </ins> const end = model.getPositionAt(Math.max(startOffset, model.getOffsetAt(inlineCompletion.range.getEndPosition()) - commonSuffixLength)); return {

*  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <del> import { SuggestWidgetPreviewModel } from 'vs/editor/contrib/inlineCompletions/suggestWidgetPreviewModel'; </del> <ins> import { minimizeInlineCompletion, SuggestWidgetPreviewModel } from 'vs/editor/contrib/inlineCompletions/suggestWidgetPreviewModel'; </ins> import { SuggestController } from 'vs/editor/contrib/suggest/suggestController'; import { SnippetController2 } from 'vs/editor/contrib/snippet/snippetController2'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection';

import { Range } from 'vs/editor/common/core/range'; import { runWithFakedTimers } from 'vs/base/test/common/timeTravelScheduler'; import { SharedInlineCompletionCache } from 'vs/editor/contrib/inlineCompletions/ghostTextModel'; <ins> import { createTextModel } from 'vs/editor/test/common/editorTestUtils'; </ins> suite('Suggest Widget Model', () => { test('Active', async () => {

} ); }); <ins> test('minimizeInlineCompletion', async () => { const model = createTextModel('fun'); const result = minimizeInlineCompletion(model, { range: new Range(1, 1, 1, 4), text: 'function' })!; assert.deepStrictEqual({ range: result.range.toString(), text: result.text }, { range: '[1,4 -> 1,4]', text: 'ction' }); }); </ins> }); const provider: CompletionItemProvider = {