Skip to content

Commit b3a4b72

Browse files
author
Andy
authored
Always include Jsdoc comment in getTouchingPropertyName (microsoft#23379)
1 parent a641e6f commit b3a4b72

8 files changed

+16
-17
lines changed

src/harness/fourslash.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1090,7 +1090,7 @@ namespace FourSlash {
10901090
}
10911091

10921092
private getNode(): ts.Node {
1093-
return ts.getTouchingPropertyName(this.getSourceFile(), this.currentCaretPosition, /*includeJsDocComment*/ false);
1093+
return ts.getTouchingPropertyName(this.getSourceFile(), this.currentCaretPosition);
10941094
}
10951095

10961096
private goToAndGetNode(range: Range): ts.Node {

src/services/completions.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -875,7 +875,7 @@ namespace ts.Completions {
875875
let isStartingCloseTag = false;
876876
let isJsxInitializer: IsJsxInitializer = false;
877877

878-
let location = getTouchingPropertyName(sourceFile, position, insideJsDocTagTypeExpression); // TODO: GH#15853
878+
let location = getTouchingPropertyName(sourceFile, position);
879879
if (contextToken) {
880880
// Bail out if this is a known invalid completion location
881881
if (isCompletionListBlocker(contextToken)) {

src/services/documentHighlights.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* @internal */
22
namespace ts.DocumentHighlights {
33
export function getDocumentHighlights(program: Program, cancellationToken: CancellationToken, sourceFile: SourceFile, position: number, sourceFilesToSearch: ReadonlyArray<SourceFile>): DocumentHighlights[] | undefined {
4-
const node = getTouchingPropertyName(sourceFile, position, /*includeJsDocComment*/ true);
4+
const node = getTouchingPropertyName(sourceFile, position);
55

66
if (node.parent && (isJsxOpeningElement(node.parent) && node.parent.tagName === node || isJsxClosingElement(node.parent))) {
77
// For a JSX element, just highlight the matching tag, not all references.

src/services/findAllReferences.ts

+5-6
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ namespace ts.FindAllReferences {
4040
}
4141

4242
export function findReferencedSymbols(program: Program, cancellationToken: CancellationToken, sourceFiles: ReadonlyArray<SourceFile>, sourceFile: SourceFile, position: number): ReferencedSymbol[] | undefined {
43-
const node = getTouchingPropertyName(sourceFile, position, /*includeJsDocComment*/ true);
43+
const node = getTouchingPropertyName(sourceFile, position);
4444
const referencedSymbols = Core.getReferencedSymbolsForNode(position, node, program, sourceFiles, cancellationToken);
4545
const checker = program.getTypeChecker();
4646
return !referencedSymbols || !referencedSymbols.length ? undefined : mapDefined<SymbolAndEntries, ReferencedSymbol>(referencedSymbols, ({ definition, references }) =>
@@ -52,8 +52,7 @@ namespace ts.FindAllReferences {
5252
}
5353

5454
export function getImplementationsAtPosition(program: Program, cancellationToken: CancellationToken, sourceFiles: ReadonlyArray<SourceFile>, sourceFile: SourceFile, position: number): ImplementationLocation[] | undefined {
55-
// A node in a JSDoc comment can't have an implementation anyway.
56-
const node = getTouchingPropertyName(sourceFile, position, /*includeJsDocComment*/ false);
55+
const node = getTouchingPropertyName(sourceFile, position);
5756
const referenceEntries = getImplementationReferenceEntries(program, cancellationToken, sourceFiles, node, position);
5857
const checker = program.getTypeChecker();
5958
return map(referenceEntries, entry => toImplementationLocation(entry, checker));
@@ -85,7 +84,7 @@ namespace ts.FindAllReferences {
8584
}
8685

8786
export function findReferencedEntries(program: Program, cancellationToken: CancellationToken, sourceFiles: ReadonlyArray<SourceFile>, sourceFile: SourceFile, position: number, options?: Options): ReferenceEntry[] | undefined {
88-
const node = getTouchingPropertyName(sourceFile, position, /*includeJsDocComment*/ true);
87+
const node = getTouchingPropertyName(sourceFile, position);
8988
return map(flattenEntries(Core.getReferencedSymbolsForNode(position, node, program, sourceFiles, cancellationToken, options)), toReferenceEntry);
9089
}
9190

@@ -732,7 +731,7 @@ namespace ts.FindAllReferences.Core {
732731
}
733732

734733
function getPossibleSymbolReferenceNodes(sourceFile: SourceFile, symbolName: string, container: Node = sourceFile): ReadonlyArray<Node> {
735-
return getPossibleSymbolReferencePositions(sourceFile, symbolName, container).map(pos => getTouchingPropertyName(sourceFile, pos, /*includeJsDocComment*/ true));
734+
return getPossibleSymbolReferencePositions(sourceFile, symbolName, container).map(pos => getTouchingPropertyName(sourceFile, pos));
736735
}
737736

738737
function getPossibleSymbolReferencePositions(sourceFile: SourceFile, symbolName: string, container: Node = sourceFile): ReadonlyArray<number> {
@@ -836,7 +835,7 @@ namespace ts.FindAllReferences.Core {
836835
}
837836

838837
function getReferencesAtLocation(sourceFile: SourceFile, position: number, search: Search, state: State, addReferencesHere: boolean): void {
839-
const referenceLocation = getTouchingPropertyName(sourceFile, position, /*includeJsDocComment*/ true);
838+
const referenceLocation = getTouchingPropertyName(sourceFile, position);
840839

841840
if (!isValidReferencePosition(referenceLocation, search.text)) {
842841
// This wasn't the start of a token. Check to see if it might be a

src/services/goToDefinition.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace ts.GoToDefinition {
66
return [getDefinitionInfoForFileReference(reference.fileName, reference.file.fileName)];
77
}
88

9-
const node = getTouchingPropertyName(sourceFile, position, /*includeJsDocComment*/ true);
9+
const node = getTouchingPropertyName(sourceFile, position);
1010
if (node === sourceFile) {
1111
return undefined;
1212
}
@@ -112,7 +112,7 @@ namespace ts.GoToDefinition {
112112

113113
/// Goto type
114114
export function getTypeDefinitionAtPosition(typeChecker: TypeChecker, sourceFile: SourceFile, position: number): DefinitionInfo[] | undefined {
115-
const node = getTouchingPropertyName(sourceFile, position, /*includeJsDocComment*/ true);
115+
const node = getTouchingPropertyName(sourceFile, position);
116116
if (node === sourceFile) {
117117
return undefined;
118118
}
@@ -143,7 +143,7 @@ namespace ts.GoToDefinition {
143143
return { definitions, textSpan: createTextSpanFromRange(comment) };
144144
}
145145

146-
const node = getTouchingPropertyName(sourceFile, position, /*includeJsDocComment*/ true);
146+
const node = getTouchingPropertyName(sourceFile, position);
147147
const textSpan = createTextSpan(node.getStart(), node.getWidth());
148148

149149
return { definitions, textSpan };

src/services/rename.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
namespace ts.Rename {
33
export function getRenameInfo(typeChecker: TypeChecker, defaultLibFileName: string, getCanonicalFileName: GetCanonicalFileName, sourceFile: SourceFile, position: number): RenameInfo {
44
const getCanonicalDefaultLibName = memoize(() => getCanonicalFileName(normalizePath(defaultLibFileName)));
5-
const node = getTouchingPropertyName(sourceFile, position, /*includeJsDocComment*/ true);
5+
const node = getTouchingPropertyName(sourceFile, position);
66
const renameInfo = node && nodeIsEligibleForRename(node)
77
? getRenameInfoForNode(node, typeChecker, sourceFile, isDefinedInLibraryFile)
88
: undefined;

src/services/services.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1466,7 +1466,7 @@ namespace ts {
14661466
synchronizeHostData();
14671467

14681468
const sourceFile = getValidSourceFile(fileName);
1469-
const node = getTouchingPropertyName(sourceFile, position, /*includeJsDocComment*/ true);
1469+
const node = getTouchingPropertyName(sourceFile, position);
14701470
if (node === sourceFile) {
14711471
// Avoid giving quickInfo for the sourceFile as a whole.
14721472
return undefined;
@@ -1784,7 +1784,7 @@ namespace ts {
17841784
const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);
17851785

17861786
// Get node at the location
1787-
const node = getTouchingPropertyName(sourceFile, startPos, /*includeJsDocComment*/ false);
1787+
const node = getTouchingPropertyName(sourceFile, startPos);
17881788

17891789
if (node === sourceFile) {
17901790
return undefined;

src/services/utilities.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -648,8 +648,8 @@ namespace ts {
648648
* Gets the token whose text has range [start, end) and
649649
* position >= start and (position < end or (position === end && token is literal or keyword or identifier))
650650
*/
651-
export function getTouchingPropertyName(sourceFile: SourceFile, position: number, includeJsDocComment: boolean): Node {
652-
return getTouchingToken(sourceFile, position, includeJsDocComment, n => isPropertyNameLiteral(n) || isKeyword(n.kind));
651+
export function getTouchingPropertyName(sourceFile: SourceFile, position: number): Node {
652+
return getTouchingToken(sourceFile, position, /*includeJsDocComment*/ true, n => isPropertyNameLiteral(n) || isKeyword(n.kind));
653653
}
654654

655655
/**

0 commit comments

Comments
 (0)