Skip to content

Commit df23ce3

Browse files
committed
add jsdoc import type tag go to definition tests
1 parent fc4ac15 commit df23ce3

16 files changed

+555
-0
lines changed

src/services/jsDoc.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ const jsDocTagNames = [
131131
"host",
132132
"ignore",
133133
"implements",
134+
"importType",
134135
"inheritdoc",
135136
"inner",
136137
"instance",

src/services/utilities.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ import {
187187
isInternalModuleImportEqualsDeclaration,
188188
isJSDoc,
189189
isJSDocCommentContainingNode,
190+
isJSDocImportTypeTag,
190191
isJSDocLink,
191192
isJSDocLinkCode,
192193
isJSDocLinkLike,
@@ -2574,6 +2575,7 @@ export function isModuleSpecifierLike(node: Node): node is StringLiteralLike {
25742575
return isStringLiteralLike(node) && (
25752576
isExternalModuleReference(node.parent) ||
25762577
isImportDeclaration(node.parent) ||
2578+
isJSDocImportTypeTag(node.parent) ||
25772579
isRequireCall(node.parent, /*requireStringLiteralLikeArgument*/ false) && node.parent.arguments[0] === node ||
25782580
isImportCall(node.parent) && node.parent.arguments[0] === node
25792581
);
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// === goToDefinition ===
2+
// === /b.ts ===
3+
// [||]export interface A { }
4+
5+
// === /a.js ===
6+
// /**
7+
// * @importType { A } from [|"./b/*GOTO DEF*/"|]
8+
// */
9+
10+
// === Details ===
11+
[
12+
{
13+
"kind": "script",
14+
"name": "./b",
15+
"unverified": false
16+
}
17+
]
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// === goToDefinition ===
2+
// === /a.js ===
3+
// /**
4+
// * @importType { A } from/*GOTO DEF*/ "./b"
5+
// */
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// === goToDefinition ===
2+
// === /a.js ===
3+
// /**
4+
// * @importType { A } from /*GOTO DEF*/ "./b";
5+
// */
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// === goToDefinition ===
2+
// === /b.ts ===
3+
// <|export interface [|A|] { }|>
4+
5+
// === /a.js ===
6+
// /**
7+
// * @importType { [|A|]/*GOTO DEF*/ } from "./b";
8+
// */
9+
10+
// === Details ===
11+
[
12+
{
13+
"kind": "interface",
14+
"name": "A",
15+
"containerName": "\"/b\"",
16+
"isLocal": false,
17+
"isAmbient": false,
18+
"unverified": false
19+
}
20+
]
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// === goToDefinition ===
2+
// === /b.ts ===
3+
// <|export interface [|A|] { }|>
4+
5+
// === /a.js ===
6+
// /**
7+
// * @importType { A } from "./b";
8+
// */
9+
//
10+
// /**
11+
// * @param { [|A|]/*GOTO DEF*/ } a
12+
// */
13+
// function f(a) {}
14+
15+
// === Details ===
16+
[
17+
{
18+
"kind": "interface",
19+
"name": "A",
20+
"containerName": "\"/b\"",
21+
"isLocal": false,
22+
"isAmbient": false,
23+
"unverified": false
24+
}
25+
]

0 commit comments

Comments
 (0)