Skip to content

Commit f645418

Browse files
authored
Merge pull request #40783 from armanio123/FixCommentOnStartLine
Fixed bug with toggleLineComment ends in a start line
2 parents 1e9f42f + 8cf980a commit f645418

File tree

4 files changed

+67
-2
lines changed

4 files changed

+67
-2
lines changed

src/services/services.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2077,6 +2077,11 @@ namespace ts {
20772077

20782078
// Push all text changes.
20792079
for (let i = firstLine; i <= lastLine; i++) {
2080+
// If the range is multiline and ends on a beginning of a line, don't comment/uncomment.
2081+
if (firstLine !== lastLine && lineStarts[i] === textRange.end) {
2082+
continue;
2083+
}
2084+
20802085
const lineTextStart = lineTextStarts.get(i.toString());
20812086

20822087
// If the line is not an empty line; otherwise no-op.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// When textRange contain multiple lines and ends on a beginning of a line, don't comment/uncomment the last line.
2+
3+
//@Filename: file.tsx
4+
//// [|const a = 0;
5+
//// const b = 1;
6+
//// |]const c = 2;
7+
////
8+
//// const d = <div>
9+
//// [|<div>
10+
//// SomeText
11+
//// |] </div>
12+
//// </div>;
13+
////
14+
//// [|//const e = 0;
15+
//// //const f = 1;
16+
//// |]//const g = 2;
17+
////
18+
//// const h = <div>
19+
//// [|{/*<div>*/}
20+
//// {/* SomeText*/}
21+
//// |]{/*</div>*/}
22+
//// </div>;
23+
24+
25+
verify.toggleLineComment(
26+
`//const a = 0;
27+
//const b = 1;
28+
const c = 2;
29+
30+
const d = <div>
31+
{/*<div>*/}
32+
{/* SomeText*/}
33+
</div>
34+
</div>;
35+
36+
const e = 0;
37+
const f = 1;
38+
//const g = 2;
39+
40+
const h = <div>
41+
<div>
42+
SomeText
43+
{/*</div>*/}
44+
</div>;`);

tests/cases/fourslash/toggleMultilineComment1.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
//// let var9 = 3;*/|]
1414
////
1515
//// let var10[||] = 10;
16+
////
17+
//// [|let var11 = 11;
18+
//// let var12 = 12;
19+
//// |]let var13 = 13;
1620

1721
verify.toggleMultilineComment(
1822
`let var1/* = 1;
@@ -27,4 +31,8 @@ let var7 = 1;
2731
let var8 = 2;
2832
let var9 = 3;
2933
30-
let var10/**/ = 10;`);
34+
let var10/**/ = 10;
35+
36+
/*let var11 = 11;
37+
let var12 = 12;
38+
*/let var13 = 13;`);

tests/cases/fourslash/uncommentSelection1.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919
//// let var13 */= 3;
2020
////
2121
//// ////let var14 [||]= 14;
22+
////
23+
//// [|//let var15 = 15;
24+
//// //let var16 = 16;
25+
//// |]//let var17 = 17;
2226

2327
verify.uncommentSelection(
2428
`let var1 = 1;
@@ -39,4 +43,8 @@ let var11 = 1;
3943
let var12 = 2;
4044
let var13 = 3;
4145
42-
//let var14 = 14;`);
46+
//let var14 = 14;
47+
48+
let var15 = 15;
49+
let var16 = 16;
50+
//let var17 = 17;`);

0 commit comments

Comments
 (0)