From 06ea138fbb1774ffd26a0ecb9ade2f5b8ace888d Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Wed, 13 Jun 2018 18:00:34 -0700 Subject: [PATCH] Use nameSpan for getting basic symbol range #51176 --- .../src/features/baseCodeLensProvider.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/extensions/typescript-language-features/src/features/baseCodeLensProvider.ts b/extensions/typescript-language-features/src/features/baseCodeLensProvider.ts index 8e30d03c0ba..1a2628f1e9b 100644 --- a/extensions/typescript-language-features/src/features/baseCodeLensProvider.ts +++ b/extensions/typescript-language-features/src/features/baseCodeLensProvider.ts @@ -109,16 +109,17 @@ export abstract class TypeScriptBaseCodeLensProvider implements CodeLensProvider (item.childItems || []).forEach(child => this.walkNavTree(document, child, item, results)); } - - /** - * TODO: TS currently requires the position for 'references 'to be inside of the identifer - * Massage the range to make sure this is the case - */ protected getSymbolRange(document: TextDocument, item: Proto.NavigationTree): Range | null { if (!item) { return null; } + // TS 3.0+ provides a span for just the symbol + if ((item as any).nameSpan) { + return typeConverters.Range.fromTextSpan((item as any).nameSpan); + } + + // In older versions, we have to calculate this manually. See #23924 const span = item.spans && item.spans[0]; if (!span) { return null;