Skip to content

Commit d940cda

Browse files
authored
Merge pull request #19141 from amcasey/MissingNewlineAtEOF
Insert a line break before a function at EOF if needed
2 parents de0e475 + 2ea4cfe commit d940cda

File tree

71 files changed

+74
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+74
-2
lines changed

src/harness/unittests/tsserverProjectSystem.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4526,7 +4526,7 @@ namespace ts.projectSystem {
45264526
{
45274527
start: { line: 3, offset: 2 },
45284528
end: { line: 3, offset: 2 },
4529-
newText: "\nfunction newFunction() {\n 1;\n}\n",
4529+
newText: "\n\nfunction newFunction() {\n 1;\n}\n",
45304530
},
45314531
]
45324532
}

src/services/refactors/extractSymbol.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -785,7 +785,10 @@ namespace ts.refactor.extractSymbol {
785785
changeTracker.insertNodeBefore(context.file, nodeToInsertBefore, newFunction, { suffix: context.newLineCharacter + context.newLineCharacter });
786786
}
787787
else {
788-
changeTracker.insertNodeBefore(context.file, scope.getLastToken(), newFunction, { prefix: context.newLineCharacter, suffix: context.newLineCharacter });
788+
changeTracker.insertNodeBefore(context.file, scope.getLastToken(), newFunction, {
789+
prefix: isLineBreak(file.text.charCodeAt(scope.getLastToken().pos)) ? context.newLineCharacter : context.newLineCharacter + context.newLineCharacter,
790+
suffix: context.newLineCharacter
791+
});
789792
}
790793

791794
const newNodes: Node[] = [];

tests/baselines/reference/extractFunction/extractFunction1.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ namespace A {
8989
}
9090
}
9191
}
92+
9293
function newFunction(x: number, a: number, foo: () => void) {
9394
let y = 5;
9495
let z = x;

tests/baselines/reference/extractFunction/extractFunction10.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ namespace A {
4949
}
5050
}
5151
}
52+
5253
function newFunction() {
5354
let a1: A.I = { x: 1 };
5455
return a1.x + 10;

tests/baselines/reference/extractFunction/extractFunction11.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ namespace A {
6161
}
6262
}
6363
}
64+
6465
function newFunction(y: number, z: number) {
6566
let a1 = { x: 1 };
6667
y = 10;

tests/baselines/reference/extractFunction/extractFunction13.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
}
6767
}
6868
}
69+
6970
function newFunction<U1a, T1a, U2a, T2a, U3a>(t1a: T1a, t2a: T2a, u1a: U1a, u2a: U2a, u3a: U3a) {
7071
t1a.toString();
7172
t2a.toString();

tests/baselines/reference/extractFunction/extractFunction14.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ function F<T>(t1: T) {
3333
/*RENAME*/newFunction<T, T>(t1, t2);
3434
}
3535
}
36+
3637
function newFunction<T, T>(t1: T, t2: T) {
3738
t1.toString();
3839
t2.toString();

tests/baselines/reference/extractFunction/extractFunction15.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ function F<T>(t1: T) {
3030
/*RENAME*/newFunction<T, U>(t2);
3131
}
3232
}
33+
3334
function newFunction<T, U extends T[]>(t2: U) {
3435
t2.toString();
3536
}

tests/baselines/reference/extractFunction/extractFunction16.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ function F<T>() {
1414
function F<T>() {
1515
const array: T[] = /*RENAME*/newFunction<T>();
1616
}
17+
1718
function newFunction<T>(): T[] {
1819
return [];
1920
}

tests/baselines/reference/extractFunction/extractFunction17.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ class C<T1, T2> {
2020
/*RENAME*/newFunction<T1>(t1);
2121
}
2222
}
23+
2324
function newFunction<T1>(t1: T1) {
2425
t1.toString();
2526
}

tests/baselines/reference/extractFunction/extractFunction18.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ class C {
2020
/*RENAME*/newFunction<T1>(t1);
2121
}
2222
}
23+
2324
function newFunction<T1>(t1: T1) {
2425
t1.toString();
2526
}

tests/baselines/reference/extractFunction/extractFunction19.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ function F<T, U extends T[], V extends U[]>(v: V) {
1414
function F<T, U extends T[], V extends U[]>(v: V) {
1515
/*RENAME*/newFunction<T, U, V>(v);
1616
}
17+
1718
function newFunction<T, U extends T[], V extends U[]>(v: V) {
1819
v.toString();
1920
}

tests/baselines/reference/extractFunction/extractFunction2.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ namespace A {
7878
}
7979
}
8080
}
81+
8182
function newFunction(x: number, foo: () => void) {
8283
let y = 5;
8384
let z = x;

tests/baselines/reference/extractFunction/extractFunction20.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ const _ = class {
2222
return /*RENAME*/newFunction();
2323
}
2424
}
25+
2526
function newFunction() {
2627
let a1 = { x: 1 };
2728
return a1.x + 10;

tests/baselines/reference/extractFunction/extractFunction20.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ const _ = class {
2222
return /*RENAME*/newFunction();
2323
}
2424
}
25+
2526
function newFunction() {
2627
let a1 = { x: 1 };
2728
return a1.x + 10;

tests/baselines/reference/extractFunction/extractFunction21.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ function foo() {
2020
x = /*RENAME*/newFunction(x);
2121
return;
2222
}
23+
2324
function newFunction(x) {
2425
x++;
2526
return x;

tests/baselines/reference/extractFunction/extractFunction21.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ function foo() {
2020
x = /*RENAME*/newFunction(x);
2121
return;
2222
}
23+
2324
function newFunction(x: number) {
2425
x++;
2526
return x;

tests/baselines/reference/extractFunction/extractFunction22.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ function test() {
2626
return /*RENAME*/newFunction();
2727
}
2828
}
29+
2930
function newFunction() {
3031
return 1;
3132
}

tests/baselines/reference/extractFunction/extractFunction22.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ function test() {
2626
return /*RENAME*/newFunction();
2727
}
2828
}
29+
2930
function newFunction() {
3031
return 1;
3132
}

tests/baselines/reference/extractFunction/extractFunction23.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ namespace NS {
3838
}
3939
function M3() { }
4040
}
41+
4142
function newFunction() {
4243
return 1;
4344
}

tests/baselines/reference/extractFunction/extractFunction24.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ function Outer() {
3838
}
3939
function M3() { }
4040
}
41+
4142
function newFunction() {
4243
return 1;
4344
}

tests/baselines/reference/extractFunction/extractFunction24.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ function Outer() {
3838
}
3939
function M3() { }
4040
}
41+
4142
function newFunction() {
4243
return 1;
4344
}

tests/baselines/reference/extractFunction/extractFunction26.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class C {
2626
}
2727
M3() { }
2828
}
29+
2930
function newFunction() {
3031
return 1;
3132
}

tests/baselines/reference/extractFunction/extractFunction26.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class C {
2626
}
2727
M3() { }
2828
}
29+
2930
function newFunction() {
3031
return 1;
3132
}

tests/baselines/reference/extractFunction/extractFunction27.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class C {
2929
constructor() { }
3030
M3() { }
3131
}
32+
3233
function newFunction() {
3334
return 1;
3435
}

tests/baselines/reference/extractFunction/extractFunction27.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class C {
2929
constructor() { }
3030
M3() { }
3131
}
32+
3233
function newFunction() {
3334
return 1;
3435
}

tests/baselines/reference/extractFunction/extractFunction28.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class C {
2929
M3() { }
3030
constructor() { }
3131
}
32+
3233
function newFunction() {
3334
return 1;
3435
}

tests/baselines/reference/extractFunction/extractFunction28.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class C {
2929
M3() { }
3030
constructor() { }
3131
}
32+
3233
function newFunction() {
3334
return 1;
3435
}

tests/baselines/reference/extractFunction/extractFunction3.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ namespace A {
7373
}
7474
}
7575
}
76+
7677
function* newFunction(z: number, foo: () => void) {
7778
let y = 5;
7879
yield z;

tests/baselines/reference/extractFunction/extractFunction30.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ function F<T>() {
1414
function F<T>() {
1515
/*RENAME*/newFunction<T>();
1616
}
17+
1718
function newFunction<T>() {
1819
let t: T;
1920
}

tests/baselines/reference/extractFunction/extractFunction31.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ namespace N {
3737
f = /*RENAME*/newFunction(f);
3838
}
3939
}
40+
4041
function newFunction(f: () => number) {
4142
f = function(): number {
4243
return N.value;

tests/baselines/reference/extractFunction/extractFunction32.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ namespace N {
3737
/*RENAME*/newFunction();
3838
}
3939
}
40+
4041
function newFunction() {
4142
var c = class {
4243
M() {

tests/baselines/reference/extractFunction/extractFunction33.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ function F() {
1414
function F() {
1515
/*RENAME*/newFunction();
1616
}
17+
1718
function newFunction() {
1819
function G() { }
1920
}

tests/baselines/reference/extractFunction/extractFunction33.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ function F() {
1414
function F() {
1515
/*RENAME*/newFunction();
1616
}
17+
1718
function newFunction() {
1819
function G() { }
1920
}

tests/baselines/reference/extractFunction/extractFunction4.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ namespace A {
8181
}
8282
}
8383
}
84+
8485
async function newFunction(z: number, z1: any, foo: () => void) {
8586
let y = 5;
8687
if (z) {

tests/baselines/reference/extractFunction/extractFunction5.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ namespace A {
8989
}
9090
}
9191
}
92+
9293
function newFunction(x: number, a: number) {
9394
let y = 5;
9495
let z = x;

tests/baselines/reference/extractFunction/extractFunction6.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ namespace A {
9393
}
9494
}
9595
}
96+
9697
function newFunction(x: number, a: number) {
9798
let y = 5;
9899
let z = x;

tests/baselines/reference/extractFunction/extractFunction7.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ namespace A {
103103
}
104104
}
105105
}
106+
106107
function newFunction(x: number, a: number) {
107108
let y = 5;
108109
let z = x;

tests/baselines/reference/extractFunction/extractFunction9.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ namespace A {
5959
}
6060
}
6161
}
62+
6263
function newFunction() {
6364
let a1: A.I = { x: 1 };
6465
return a1.x + 10;

tests/baselines/reference/extractFunction/extractFunction_PreserveTrivia.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ var q = /*b*/ //c
1212
var q = /*b*/ //c
1313
/*d*/ /*RENAME*/newFunction() /*k*/ //l
1414
/*m*/; /*n*/ //o
15+
1516
function newFunction() {
1617
return 1 /*e*/ //f
1718
/*g*/ + /*h*/ //i

tests/baselines/reference/extractFunction/extractFunction_PreserveTrivia.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ var q = /*b*/ //c
1212
var q = /*b*/ //c
1313
/*d*/ /*RENAME*/newFunction() /*k*/ //l
1414
/*m*/; /*n*/ //o
15+
1516
function newFunction() {
1617
return 1 /*e*/ //f
1718
/*g*/ + /*h*/ //i

tests/baselines/reference/extractFunction/extractFunction_RepeatedSubstitution.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ namespace X {
1717
export const j = 10;
1818
export const y = /*RENAME*/newFunction();
1919
}
20+
2021
function newFunction() {
2122
return X.j * X.j;
2223
}

tests/baselines/reference/extractFunction/extractFunction_VariableDeclaration_ShorthandProperty.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ function f() {
2121
let x = /*RENAME*/newFunction();
2222
return { x };
2323
}
24+
2425
function newFunction() {
2526
let x;
2627
return x;

tests/baselines/reference/extractFunction/extractFunction_VariableDeclaration_ShorthandProperty.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ function f() {
2121
let x = /*RENAME*/newFunction();
2222
return { x };
2323
}
24+
2425
function newFunction() {
2526
let x;
2627
return x;

tests/baselines/reference/extractFunction/extractFunction_VariableDeclaration_Writes_Const_NoType.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ function f() {
2727
({ x, a } = /*RENAME*/newFunction(a));
2828
a; x;
2929
}
30+
3031
function newFunction(a) {
3132
const x = 1;
3233
a++;

tests/baselines/reference/extractFunction/extractFunction_VariableDeclaration_Writes_Const_NoType.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ function f() {
2727
({ x, a } = /*RENAME*/newFunction(a));
2828
a; x;
2929
}
30+
3031
function newFunction(a: number) {
3132
const x = 1;
3233
a++;

tests/baselines/reference/extractFunction/extractFunction_VariableDeclaration_Writes_Const_Type.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ function f() {
2727
({ x, a } = /*RENAME*/newFunction(a));
2828
a; x;
2929
}
30+
3031
function newFunction(a: number) {
3132
const x: number = 1;
3233
a++;

tests/baselines/reference/extractFunction/extractFunction_VariableDeclaration_Writes_Let_LiteralType1.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ function f() {
2727
({ x, a } = /*RENAME*/newFunction(a));
2828
a; x;
2929
}
30+
3031
function newFunction(a: number) {
3132
let x: 0o10 | 10 | 0b10 = 10;
3233
a++;

tests/baselines/reference/extractFunction/extractFunction_VariableDeclaration_Writes_Let_LiteralType2.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ function f() {
2727
({ x, a } = /*RENAME*/newFunction(a));
2828
a; x;
2929
}
30+
3031
function newFunction(a: number) {
3132
let x: "a" | 'b' = 'a';
3233
a++;

0 commit comments

Comments
 (0)