extensions/typescript-language-features/src/languageFeatures/codeLens/implementationsCodeLens.ts/TypeScriptImplementationsCodeLensProvider/extractSymbol
class TypeScriptImplementationsCodeLensProvider:	protected extractSymbol(
		item: Proto.NavigationTree,
		_parent: Proto.NavigationTree | undefined
	): vscode.Range | undefined {
		if (!item.nameSpan) {
			return undefined;
		}

		const itemSpan = typeConverters.Range.fromTextSpan(item.nameSpan);

		switch (item.kind) {
			case PConst.Kind.interface:
				return itemSpan;

			case PConst.Kind.class:
			case PConst.Kind.method:
			case PConst.Kind.memberVariable:
			case PConst.Kind.memberGetAccessor:
			case PConst.Kind.memberSetAccessor:
				if (/\babstract\b/g.test(item.kindModifiers)) {
					return itemSpan;
				}
				break;
		}
		return undefined;
	}