diff --git a/src/services/codefixes/importFixes.ts b/src/services/codefixes/importFixes.ts
index 0dd7cf2ca25..04c1cd4b6d9 100644
--- a/src/services/codefixes/importFixes.ts
+++ b/src/services/codefixes/importFixes.ts
@@ -279,7 +279,7 @@ namespace ts.codefix {
changeTracker.insertNodeAfter(sourceFile, lastImportDeclaration, importDecl);
}
else {
- changeTracker.insertNodeAtTopOfFile(sourceFile, importDecl);
+ changeTracker.insertNodeAtTopOfFile(sourceFile, importDecl, /*blankLineBetween*/ true);
}
});
diff --git a/src/services/refactors/extractSymbol.ts b/src/services/refactors/extractSymbol.ts
index dadd4865ee6..b7aa5ac33d1 100644
--- a/src/services/refactors/extractSymbol.ts
+++ b/src/services/refactors/extractSymbol.ts
@@ -1077,7 +1077,7 @@ namespace ts.refactor.extractSymbol {
// Declare
const nodeToInsertBefore = getNodeToInsertConstantBefore(node, scope);
if (nodeToInsertBefore.pos === 0) {
- changeTracker.insertNodeAtTopOfFile(context.file, newVariableStatement);
+ changeTracker.insertNodeAtTopOfFile(context.file, newVariableStatement, /*blankLineBetween*/ false);
}
else {
changeTracker.insertNodeBefore(context.file, nodeToInsertBefore, newVariableStatement, /*blankLineBetween*/ false);
diff --git a/src/services/textChanges.ts b/src/services/textChanges.ts
index d9c592488e2..82fe3d20f6b 100644
--- a/src/services/textChanges.ts
+++ b/src/services/textChanges.ts
@@ -332,11 +332,11 @@ namespace ts.textChanges {
return this;
}
- public insertNodeAtTopOfFile(sourceFile: SourceFile, newNode: Statement): void {
+ public insertNodeAtTopOfFile(sourceFile: SourceFile, newNode: Statement, blankLineBetween: boolean): void {
const pos = getInsertionPositionAtSourceFileTop(sourceFile);
this.insertNodeAt(sourceFile, pos, newNode, {
prefix: pos === 0 ? undefined : this.newLineCharacter,
- suffix: isLineBreak(sourceFile.text.charCodeAt(pos)) ? this.newLineCharacter : this.newLineCharacter + this.newLineCharacter,
+ suffix: (isLineBreak(sourceFile.text.charCodeAt(pos)) ? "" : this.newLineCharacter) + (blankLineBetween ? this.newLineCharacter : ""),
});
}
diff --git a/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Block.js b/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Block.js
index f4d49c11a0c..61ef97898a9 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Block.js
+++ b/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Block.js
@@ -11,7 +11,6 @@ const f = () => {
};
// ==SCOPE::Extract to constant in global scope==
const newLocal = 2 + 1;
-
const f = () => {
return /*RENAME*/newLocal;
};
\ No newline at end of file
diff --git a/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Block.ts b/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Block.ts
index f4d49c11a0c..61ef97898a9 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Block.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Block.ts
@@ -11,7 +11,6 @@ const f = () => {
};
// ==SCOPE::Extract to constant in global scope==
const newLocal = 2 + 1;
-
const f = () => {
return /*RENAME*/newLocal;
};
\ No newline at end of file
diff --git a/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Expression.js b/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Expression.js
index 76902f4db93..ac6de28d3c4 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Expression.js
+++ b/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Expression.js
@@ -2,5 +2,4 @@
const f = () => /*[#|*/2 + 1/*|]*/;
// ==SCOPE::Extract to constant in global scope==
const newLocal = 2 + 1;
-
const f = () => /*RENAME*/newLocal;
\ No newline at end of file
diff --git a/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Expression.ts b/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Expression.ts
index 76902f4db93..ac6de28d3c4 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Expression.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Expression.ts
@@ -2,5 +2,4 @@
const f = () => /*[#|*/2 + 1/*|]*/;
// ==SCOPE::Extract to constant in global scope==
const newLocal = 2 + 1;
-
const f = () => /*RENAME*/newLocal;
\ No newline at end of file
diff --git a/tests/baselines/reference/extractConstant/extractConstant_Class.js b/tests/baselines/reference/extractConstant/extractConstant_Class.js
index 1e98f8c54d0..a4c98240d97 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_Class.js
+++ b/tests/baselines/reference/extractConstant/extractConstant_Class.js
@@ -4,7 +4,6 @@ class C {
}
// ==SCOPE::Extract to constant in global scope==
const newLocal = 1;
-
class C {
x = /*RENAME*/newLocal;
}
\ No newline at end of file
diff --git a/tests/baselines/reference/extractConstant/extractConstant_Class.ts b/tests/baselines/reference/extractConstant/extractConstant_Class.ts
index 2c307fc64af..9dda80d7e9d 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_Class.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_Class.ts
@@ -10,7 +10,6 @@ class C {
}
// ==SCOPE::Extract to constant in global scope==
const newLocal = 1;
-
class C {
x = /*RENAME*/newLocal;
}
\ No newline at end of file
diff --git a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition1.js b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition1.js
index bc4f1ff1f52..169be622d02 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition1.js
+++ b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition1.js
@@ -21,7 +21,6 @@ class C {
}
// ==SCOPE::Extract to constant in global scope==
const newLocal = 1;
-
class C {
a = 1;
b = 2;
diff --git a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition1.ts b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition1.ts
index cb1e743f446..f9927581881 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition1.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition1.ts
@@ -33,7 +33,6 @@ class C {
}
// ==SCOPE::Extract to constant in global scope==
const newLocal = 1;
-
class C {
a = 1;
b = 2;
diff --git a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition2.js b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition2.js
index 8fe8ad28302..f1a5e1883a1 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition2.js
+++ b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition2.js
@@ -21,7 +21,6 @@ class C {
}
// ==SCOPE::Extract to constant in global scope==
const newLocal = 1;
-
class C {
a = 1;
M1() { }
diff --git a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition2.ts b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition2.ts
index 16431905a2c..66e01362c08 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition2.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition2.ts
@@ -33,7 +33,6 @@ class C {
}
// ==SCOPE::Extract to constant in global scope==
const newLocal = 1;
-
class C {
a = 1;
M1() { }
diff --git a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition3.js b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition3.js
index 90025ae6267..142cc6257ba 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition3.js
+++ b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition3.js
@@ -21,7 +21,6 @@ class C {
}
// ==SCOPE::Extract to constant in global scope==
const newLocal = 1;
-
class C {
M1() { }
a = 1;
diff --git a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition3.ts b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition3.ts
index 7f53a1672d0..fc0abadb5d8 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition3.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition3.ts
@@ -33,7 +33,6 @@ class C {
}
// ==SCOPE::Extract to constant in global scope==
const newLocal = 1;
-
class C {
M1() { }
a = 1;
diff --git a/tests/baselines/reference/extractConstant/extractConstant_Function.js b/tests/baselines/reference/extractConstant/extractConstant_Function.js
index 85241fd982f..03537ae93bd 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_Function.js
+++ b/tests/baselines/reference/extractConstant/extractConstant_Function.js
@@ -9,7 +9,6 @@ function F() {
}
// ==SCOPE::Extract to constant in global scope==
const newLocal = 1;
-
function F() {
let x = /*RENAME*/newLocal;
}
\ No newline at end of file
diff --git a/tests/baselines/reference/extractConstant/extractConstant_Function.ts b/tests/baselines/reference/extractConstant/extractConstant_Function.ts
index 85241fd982f..03537ae93bd 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_Function.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_Function.ts
@@ -9,7 +9,6 @@ function F() {
}
// ==SCOPE::Extract to constant in global scope==
const newLocal = 1;
-
function F() {
let x = /*RENAME*/newLocal;
}
\ No newline at end of file
diff --git a/tests/baselines/reference/extractConstant/extractConstant_Method.js b/tests/baselines/reference/extractConstant/extractConstant_Method.js
index a2ba5430ea0..c3abef1e843 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_Method.js
+++ b/tests/baselines/reference/extractConstant/extractConstant_Method.js
@@ -13,7 +13,6 @@ class C {
}
// ==SCOPE::Extract to constant in global scope==
const newLocal = 1;
-
class C {
M() {
let x = /*RENAME*/newLocal;
diff --git a/tests/baselines/reference/extractConstant/extractConstant_Method.ts b/tests/baselines/reference/extractConstant/extractConstant_Method.ts
index fd568341541..e80071b6249 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_Method.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_Method.ts
@@ -21,7 +21,6 @@ class C {
}
// ==SCOPE::Extract to constant in global scope==
const newLocal = 1;
-
class C {
M() {
let x = /*RENAME*/newLocal;
diff --git a/tests/baselines/reference/extractConstant/extractConstant_Namespace.ts b/tests/baselines/reference/extractConstant/extractConstant_Namespace.ts
index 275b967c7fd..28c0dc9d661 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_Namespace.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_Namespace.ts
@@ -9,7 +9,6 @@ namespace N {
}
// ==SCOPE::Extract to constant in global scope==
const newLocal = 1;
-
namespace N {
let x = /*RENAME*/newLocal;
}
\ No newline at end of file
diff --git a/tests/baselines/reference/extractConstant/extractConstant_PinnedComment.js b/tests/baselines/reference/extractConstant/extractConstant_PinnedComment.js
index 64620d817c6..44e5626c80a 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_PinnedComment.js
+++ b/tests/baselines/reference/extractConstant/extractConstant_PinnedComment.js
@@ -9,6 +9,5 @@ const x = /*[#|*/2 + 1/*|]*/;
/*! Copyright */
const newLocal = 2 + 1;
-
const x = /*RENAME*/newLocal;
\ No newline at end of file
diff --git a/tests/baselines/reference/extractConstant/extractConstant_PinnedComment.ts b/tests/baselines/reference/extractConstant/extractConstant_PinnedComment.ts
index 64620d817c6..44e5626c80a 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_PinnedComment.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_PinnedComment.ts
@@ -9,6 +9,5 @@ const x = /*[#|*/2 + 1/*|]*/;
/*! Copyright */
const newLocal = 2 + 1;
-
const x = /*RENAME*/newLocal;
\ No newline at end of file
diff --git a/tests/baselines/reference/extractConstant/extractConstant_PinnedCommentAndDocComment.js b/tests/baselines/reference/extractConstant/extractConstant_PinnedCommentAndDocComment.js
index 9a3e7322355..5cd9d41ec4c 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_PinnedCommentAndDocComment.js
+++ b/tests/baselines/reference/extractConstant/extractConstant_PinnedCommentAndDocComment.js
@@ -10,7 +10,6 @@ const x = /*[#|*/2 + 1/*|]*/;
/*! Copyright */
const newLocal = 2 + 1;
-
/* About x */
const x = /*RENAME*/newLocal;
\ No newline at end of file
diff --git a/tests/baselines/reference/extractConstant/extractConstant_PinnedCommentAndDocComment.ts b/tests/baselines/reference/extractConstant/extractConstant_PinnedCommentAndDocComment.ts
index 9a3e7322355..5cd9d41ec4c 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_PinnedCommentAndDocComment.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_PinnedCommentAndDocComment.ts
@@ -10,7 +10,6 @@ const x = /*[#|*/2 + 1/*|]*/;
/*! Copyright */
const newLocal = 2 + 1;
-
/* About x */
const x = /*RENAME*/newLocal;
\ No newline at end of file
diff --git a/tests/baselines/reference/extractConstant/extractConstant_PreserveTrivia.js b/tests/baselines/reference/extractConstant/extractConstant_PreserveTrivia.js
index 22abb77901d..9336cec58ec 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_PreserveTrivia.js
+++ b/tests/baselines/reference/extractConstant/extractConstant_PreserveTrivia.js
@@ -10,7 +10,6 @@ var q = /*b*/ //c
const newLocal = 1 /*e*/ //f
/*g*/ + /*h*/ //i
/*j*/ 2;
-
// a
var q = /*b*/ //c
/*d*/ /*RENAME*/newLocal /*k*/ //l
diff --git a/tests/baselines/reference/extractConstant/extractConstant_PreserveTrivia.ts b/tests/baselines/reference/extractConstant/extractConstant_PreserveTrivia.ts
index 22abb77901d..9336cec58ec 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_PreserveTrivia.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_PreserveTrivia.ts
@@ -10,7 +10,6 @@ var q = /*b*/ //c
const newLocal = 1 /*e*/ //f
/*g*/ + /*h*/ //i
/*j*/ 2;
-
// a
var q = /*b*/ //c
/*d*/ /*RENAME*/newLocal /*k*/ //l
diff --git a/tests/baselines/reference/extractConstant/extractConstant_RepeatedSubstitution.ts b/tests/baselines/reference/extractConstant/extractConstant_RepeatedSubstitution.ts
index f021928c022..8328a2fdce6 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_RepeatedSubstitution.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_RepeatedSubstitution.ts
@@ -11,7 +11,6 @@ namespace X {
}
// ==SCOPE::Extract to constant in global scope==
const newLocal = X.j * X.j;
-
namespace X {
export const j = 10;
export const y = /*RENAME*/newLocal;
diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition4.js b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition4.js
index 534ee8607ea..fdf32195aae 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition4.js
+++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition4.js
@@ -17,7 +17,6 @@ function F() {
// ==SCOPE::Extract to constant in global scope==
const newLocal = 2 + 1;
-
function F() {
for (let j = 0; j < 10; j++) {
const x = /*RENAME*/newLocal;
diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition4.ts b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition4.ts
index 534ee8607ea..fdf32195aae 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition4.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition4.ts
@@ -17,7 +17,6 @@ function F() {
// ==SCOPE::Extract to constant in global scope==
const newLocal = 2 + 1;
-
function F() {
for (let j = 0; j < 10; j++) {
const x = /*RENAME*/newLocal;
diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition5.js b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition5.js
index 2274908d080..55617b56a3c 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition5.js
+++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition5.js
@@ -29,7 +29,6 @@ function F0() {
// ==SCOPE::Extract to constant in global scope==
const newLocal = 2 + 1;
-
function F0() {
function F1() {
function F2(x = /*RENAME*/newLocal) {
diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition5.ts b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition5.ts
index 2274908d080..55617b56a3c 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition5.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition5.ts
@@ -29,7 +29,6 @@ function F0() {
// ==SCOPE::Extract to constant in global scope==
const newLocal = 2 + 1;
-
function F0() {
function F1() {
function F2(x = /*RENAME*/newLocal) {
diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition6.js b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition6.js
index b39af4525a1..3438d8bd832 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition6.js
+++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition6.js
@@ -6,7 +6,6 @@ class C {
// ==SCOPE::Extract to constant in global scope==
const newLocal = 2 + 1;
-
class C {
x = /*RENAME*/newLocal;
}
diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition6.ts b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition6.ts
index 82d48157720..7c560ece5b0 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition6.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition6.ts
@@ -14,7 +14,6 @@ class C {
// ==SCOPE::Extract to constant in global scope==
const newLocal = 2 + 1;
-
class C {
x = /*RENAME*/newLocal;
}
diff --git a/tests/baselines/reference/extractConstant/extractConstant_TopLevel.js b/tests/baselines/reference/extractConstant/extractConstant_TopLevel.js
index a6eeb89b7e9..1e5ecf90ad6 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_TopLevel.js
+++ b/tests/baselines/reference/extractConstant/extractConstant_TopLevel.js
@@ -2,5 +2,4 @@
let x = /*[#|*/1/*|]*/;
// ==SCOPE::Extract to constant in enclosing scope==
const newLocal = 1;
-
let x = /*RENAME*/newLocal;
\ No newline at end of file
diff --git a/tests/baselines/reference/extractConstant/extractConstant_TopLevel.ts b/tests/baselines/reference/extractConstant/extractConstant_TopLevel.ts
index a6eeb89b7e9..1e5ecf90ad6 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_TopLevel.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_TopLevel.ts
@@ -2,5 +2,4 @@
let x = /*[#|*/1/*|]*/;
// ==SCOPE::Extract to constant in enclosing scope==
const newLocal = 1;
-
let x = /*RENAME*/newLocal;
\ No newline at end of file
diff --git a/tests/baselines/reference/extractConstant/extractConstant_TripleSlash.js b/tests/baselines/reference/extractConstant/extractConstant_TripleSlash.js
index 5479d022a01..9e7821f6cdb 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_TripleSlash.js
+++ b/tests/baselines/reference/extractConstant/extractConstant_TripleSlash.js
@@ -9,6 +9,5 @@ const x = /*[#|*/2 + 1/*|]*/;
///
const newLocal = 2 + 1;
-
const x = /*RENAME*/newLocal;
\ No newline at end of file
diff --git a/tests/baselines/reference/extractConstant/extractConstant_TripleSlash.ts b/tests/baselines/reference/extractConstant/extractConstant_TripleSlash.ts
index 5479d022a01..9e7821f6cdb 100644
--- a/tests/baselines/reference/extractConstant/extractConstant_TripleSlash.ts
+++ b/tests/baselines/reference/extractConstant/extractConstant_TripleSlash.ts
@@ -9,6 +9,5 @@ const x = /*[#|*/2 + 1/*|]*/;
///
const newLocal = 2 + 1;
-
const x = /*RENAME*/newLocal;
\ No newline at end of file