Skip to content

Commit 871096b

Browse files
authored
Merge pull request #42356 from armanio123/FixJSDocFormatting
Fix double asterisk formatting in JSDoc
2 parents 701493f + a231b23 commit 871096b

File tree

3 files changed

+108
-6
lines changed

3 files changed

+108
-6
lines changed

src/compiler/parser.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7691,13 +7691,14 @@ namespace ts {
76917691
skipWhitespaceOrAsterisk();
76927692

76937693
const { name, isBracketed } = parseBracketNameInPropertyAndParamTag();
7694-
skipWhitespace();
7694+
const indentText = skipWhitespaceOrAsterisk();
76957695

76967696
if (isNameFirst) {
76977697
typeExpression = tryParseTypeExpression();
76987698
}
76997699

7700-
const comment = parseTagComments(indent + scanner.getStartPos() - start);
7700+
const comment = parseTrailingTagComments(start, getNodePos(), indent, indentText);
7701+
77017702
const nestedTypeLiteral = target !== PropertyLikeParse.CallbackParameter && parseNestedTypeLiteral(typeExpression, name, target, indent);
77027703
if (nestedTypeLiteral) {
77037704
typeExpression = nestedTypeLiteral;

tests/cases/fourslash/commentsLinePreservation.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,16 +129,16 @@ verify.quickInfos({
129129
3: ["(parameter) param1: string", "first line of param\n\nparam information third line"],
130130

131131
g: ["function g(param1: string): void", "This is firstLine\nThis is second Line"],
132-
4: ["(parameter) param1: string", "param information first line"],
132+
4: ["(parameter) param1: string", " param information first line"],
133133

134134
h: ["function h(param1: string): void", "This is firstLine\nThis is second Line"],
135-
5: ["(parameter) param1: string", "param information first line\n\nparam information third line"],
135+
5: ["(parameter) param1: string", " param information first line\n\n param information third line"],
136136

137137
i: ["function i(param1: string): void", "This is firstLine\nThis is second Line"],
138-
6: ["(parameter) param1: string", "param information first line\n\nparam information third line"],
138+
6: ["(parameter) param1: string", " param information first line\n\n param information third line"],
139139

140140
j: ["function j(param1: string): void", "This is firstLine\nThis is second Line"],
141-
7: ["(parameter) param1: string", "param information first line\n\nparam information third line"],
141+
7: ["(parameter) param1: string", " param information first line\n\n param information third line"],
142142

143143
k: ["function k(param1: string): void", "This is firstLine\nThis is second Line"],
144144
8: ["(parameter) param1: string", "hello"],
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
/// <reference path='fourslash.ts'/>
2+
3+
// Regression test for #33386
4+
5+
//// /**
6+
//// * @param {number} var1 **Highlighted text**
7+
//// * @param {string} var2 Another **Highlighted text**
8+
//// */
9+
//// function f1(var1, var2) { }
10+
////
11+
//// /**
12+
//// * @param {number} var1 *Regular text with an asterisk
13+
//// * @param {string} var2 Another *Regular text with an asterisk
14+
//// */
15+
//// function f2(var1, var2) { }
16+
////
17+
//// /**
18+
//// * @param {number} var1
19+
//// * *Regular text with an asterisk
20+
//// * @param {string} var2
21+
//// * Another *Regular text with an asterisk
22+
//// */
23+
//// function f3(var1, var2) { }
24+
////
25+
//// /**
26+
//// * @param {number} var1
27+
//// * **Highlighted text**
28+
//// * @param {string} var2
29+
//// * Another **Highlighted text**
30+
//// */
31+
//// function f4(var1, var2) { }
32+
////
33+
//// /**
34+
//// * @param {number} var1
35+
//// **Highlighted text**
36+
//// * @param {string} var2
37+
//// Another **Highlighted text**
38+
//// */
39+
//// function f5(var1, var2) { }
40+
////
41+
//// f1(/*1*/);
42+
//// f2(/*2*/);
43+
//// f3(/*3*/);
44+
//// f4(/*4*/);
45+
//// f5(/*5*/);
46+
47+
verify.signatureHelp({
48+
marker: "1",
49+
parameterDocComment: "**Highlighted text**",
50+
tags: [{
51+
name: "param",
52+
text: "var1 **Highlighted text**"
53+
}, {
54+
name: "param",
55+
text: "var2 Another **Highlighted text**"
56+
}]
57+
});
58+
verify.signatureHelp({
59+
marker: "2",
60+
parameterDocComment: "*Regular text with an asterisk",
61+
tags: [{
62+
name: "param",
63+
text: "var1 *Regular text with an asterisk"
64+
}, {
65+
name: "param",
66+
text: "var2 Another *Regular text with an asterisk"
67+
}]
68+
});
69+
verify.signatureHelp({
70+
marker: "3",
71+
parameterDocComment: "*Regular text with an asterisk",
72+
tags: [{
73+
name: "param",
74+
text: "var1 *Regular text with an asterisk"
75+
}, {
76+
name: "param",
77+
text: "var2 Another *Regular text with an asterisk"
78+
}]
79+
});
80+
verify.signatureHelp({
81+
marker: "4",
82+
parameterDocComment: "**Highlighted text**",
83+
tags: [{
84+
name: "param",
85+
text: "var1 **Highlighted text**"
86+
}, {
87+
name: "param",
88+
text: "var2 Another **Highlighted text**"
89+
}]
90+
});
91+
verify.signatureHelp({
92+
marker: "5",
93+
parameterDocComment: "**Highlighted text**",
94+
tags: [{
95+
name: "param",
96+
text: "var1 **Highlighted text**"
97+
}, {
98+
name: "param",
99+
text: "var2 Another **Highlighted text**"
100+
}]
101+
});

0 commit comments

Comments
 (0)