From 338e71d2da4679db7375bee385b7a015ea1864bb Mon Sep 17 00:00:00 2001 From: Wenlu Wang Date: Mon, 9 Aug 2021 18:14:51 +0800 Subject: [PATCH] Fix folding ranges with inlay hints --- .../contrib/inlayHints/inlayHintsController.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/vs/editor/contrib/inlayHints/inlayHintsController.ts b/src/vs/editor/contrib/inlayHints/inlayHintsController.ts index e6b191ccfbd..809aecedd89 100644 --- a/src/vs/editor/contrib/inlayHints/inlayHintsController.ts +++ b/src/vs/editor/contrib/inlayHints/inlayHintsController.ts @@ -38,13 +38,16 @@ export interface InlayHintsData { export async function getInlayHints(model: ITextModel, ranges: Range[], token: CancellationToken): Promise { const datas: InlayHintsData[] = []; const providers = InlayHintsProviderRegistry.ordered(model).reverse(); - const promises = flatten(providers.map(provider => ranges.map(range => Promise.resolve(provider.provideInlayHints(model, range, token)).then(result => { - if (result) { - datas.push({ list: result, provider }); - } - }, err => { - onUnexpectedExternalError(err); - })))); + const promises = flatten(providers.map(provider => ranges.map(range => { + return Promise.resolve(provider.provideInlayHints(model, range, token)).then(result => { + const itemsInRange = result?.filter(hint => range.containsPosition(hint.position)); + if (itemsInRange?.length) { + datas.push({ list: itemsInRange, provider }); + } + }, err => { + onUnexpectedExternalError(err); + }); + }))); await Promise.all(promises);