mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-09 02:30:15 -06:00
fix(47261): allow linkcode/linkplain tags in see tag (#47403)
This commit is contained in:
parent
a0bab5de5c
commit
b9a06e515f
@ -8148,12 +8148,14 @@ namespace ts {
|
||||
&& nextTokenJSDoc() === SyntaxKind.AtToken
|
||||
&& tokenIsIdentifierOrKeyword(nextTokenJSDoc())) {
|
||||
const kind = scanner.getTokenValue();
|
||||
if(kind === "link" || kind === "linkcode" || kind === "linkplain") {
|
||||
return kind;
|
||||
}
|
||||
if (isJSDocLinkTag(kind)) return kind;
|
||||
}
|
||||
}
|
||||
|
||||
function isJSDocLinkTag(kind: string) {
|
||||
return kind === "link" || kind === "linkcode" || kind === "linkplain";
|
||||
}
|
||||
|
||||
function parseUnknownTag(start: number, tagName: Identifier, indent: number, indentText: string) {
|
||||
return finishNode(factory.createJSDocUnknownTag(tagName, parseTrailingTagComments(start, getNodePos(), indent, indentText)), start);
|
||||
}
|
||||
@ -8276,7 +8278,7 @@ namespace ts {
|
||||
|
||||
function parseSeeTag(start: number, tagName: Identifier, indent?: number, indentText?: string): JSDocSeeTag {
|
||||
const isMarkdownOrJSDocLink = token() === SyntaxKind.OpenBracketToken
|
||||
|| lookAhead(() => nextTokenJSDoc() === SyntaxKind.AtToken && tokenIsIdentifierOrKeyword(nextTokenJSDoc()) && scanner.getTokenValue() === "link");
|
||||
|| lookAhead(() => nextTokenJSDoc() === SyntaxKind.AtToken && tokenIsIdentifierOrKeyword(nextTokenJSDoc()) && isJSDocLinkTag(scanner.getTokenValue()));
|
||||
const nameExpression = isMarkdownOrJSDocLink ? undefined : parseJSDocNameReference();
|
||||
const comments = indent !== undefined && indentText !== undefined ? parseTrailingTagComments(start, getNodePos(), indent, indentText) : undefined;
|
||||
return finishNode(factory.createJSDocSeeTag(tagName, nameExpression, comments), start);
|
||||
|
||||
23
tests/baselines/reference/seeTag4.js
Normal file
23
tests/baselines/reference/seeTag4.js
Normal file
@ -0,0 +1,23 @@
|
||||
//// [seeTag4.js]
|
||||
/**
|
||||
* @typedef {any} A
|
||||
*/
|
||||
|
||||
/**
|
||||
* @see {@link A}
|
||||
* @see {@linkcode A}
|
||||
* @see {@linkplain A}
|
||||
*/
|
||||
let foo;
|
||||
|
||||
|
||||
//// [seeTag4.js]
|
||||
/**
|
||||
* @typedef {any} A
|
||||
*/
|
||||
/**
|
||||
* @see {@link A}
|
||||
* @see {@linkcode A}
|
||||
* @see {@linkplain A}
|
||||
*/
|
||||
var foo;
|
||||
13
tests/baselines/reference/seeTag4.symbols
Normal file
13
tests/baselines/reference/seeTag4.symbols
Normal file
@ -0,0 +1,13 @@
|
||||
=== tests/cases/conformance/jsdoc/seeTag4.js ===
|
||||
/**
|
||||
* @typedef {any} A
|
||||
*/
|
||||
|
||||
/**
|
||||
* @see {@link A}
|
||||
* @see {@linkcode A}
|
||||
* @see {@linkplain A}
|
||||
*/
|
||||
let foo;
|
||||
>foo : Symbol(foo, Decl(seeTag4.js, 9, 3))
|
||||
|
||||
13
tests/baselines/reference/seeTag4.types
Normal file
13
tests/baselines/reference/seeTag4.types
Normal file
@ -0,0 +1,13 @@
|
||||
=== tests/cases/conformance/jsdoc/seeTag4.js ===
|
||||
/**
|
||||
* @typedef {any} A
|
||||
*/
|
||||
|
||||
/**
|
||||
* @see {@link A}
|
||||
* @see {@linkcode A}
|
||||
* @see {@linkplain A}
|
||||
*/
|
||||
let foo;
|
||||
>foo : any
|
||||
|
||||
15
tests/cases/conformance/jsdoc/seeTag4.ts
Normal file
15
tests/cases/conformance/jsdoc/seeTag4.ts
Normal file
@ -0,0 +1,15 @@
|
||||
// @checkJs: true
|
||||
// @allowJs: true
|
||||
// @outdir: out/
|
||||
// @filename: seeTag4.js
|
||||
|
||||
/**
|
||||
* @typedef {any} A
|
||||
*/
|
||||
|
||||
/**
|
||||
* @see {@link A}
|
||||
* @see {@linkcode A}
|
||||
* @see {@linkplain A}
|
||||
*/
|
||||
let foo;
|
||||
Loading…
x
Reference in New Issue
Block a user