diff --git a/src/services/completions.ts b/src/services/completions.ts
index 8236ea772ff..2d3d6906de9 100644
--- a/src/services/completions.ts
+++ b/src/services/completions.ts
@@ -829,6 +829,7 @@ namespace ts.Completions {
target: options.target,
omitTrailingSemicolon: true,
hasSnippet: true,
+ newLine: getNewLineKind(getNewLineCharacter(options, host.getNewLine)),
});
const importAdder = codefix.createImportAdder(sourceFile, program, preferences, host);
diff --git a/src/services/textChanges.ts b/src/services/textChanges.ts
index 7b0365b343e..d204bb0bc07 100644
--- a/src/services/textChanges.ts
+++ b/src/services/textChanges.ts
@@ -1037,7 +1037,7 @@ namespace ts.textChanges {
/** Note: output node may be mutated input node. */
export function getNonformattedText(node: Node, sourceFile: SourceFile | undefined, newLineCharacter: string): { text: string, node: Node } {
const writer = createWriter(newLineCharacter);
- const newLine = newLineCharacter === "\n" ? NewLineKind.LineFeed : NewLineKind.CarriageReturnLineFeed;
+ const newLine = getNewLineKind(newLineCharacter);
createPrinter({
newLine,
neverAsciiEscape: true,
diff --git a/src/services/utilities.ts b/src/services/utilities.ts
index 965ae736d05..15dbd27fc16 100644
--- a/src/services/utilities.ts
+++ b/src/services/utilities.ts
@@ -3262,5 +3262,9 @@ namespace ts {
return decisionFromFile ?? program.usesUriStyleNodeCoreModules;
}
+ export function getNewLineKind(newLineCharacter: string): NewLineKind {
+ return newLineCharacter === "\n" ? NewLineKind.LineFeed : NewLineKind.CarriageReturnLineFeed;
+ }
+
// #endregion
}
diff --git a/tests/cases/fourslash/completionsOverridingMethod.ts b/tests/cases/fourslash/completionsOverridingMethod.ts
index 62f9ed1d768..6d64efb4939 100644
--- a/tests/cases/fourslash/completionsOverridingMethod.ts
+++ b/tests/cases/fourslash/completionsOverridingMethod.ts
@@ -1,5 +1,6 @@
///
+// @newline: LF
// @Filename: a.ts
// Case: Concrete class implements abstract method
////abstract class ABase {
@@ -111,12 +112,6 @@
////}
-
-// format.setFormatOptions({
-// newLineCharacter: "\n",
-// });
-// format.setOption("newline", "\n");
-
verify.completions({
marker: "a",
isNewIdentifierLocation: true,
@@ -134,7 +129,7 @@ verify.completions({
end: 0,
},
insertText:
-"foo(param1: string, param2: boolean): Promise {\r\n}\r\n",
+"foo(param1: string, param2: boolean): Promise {\n}\n",
}
],
});
@@ -156,7 +151,7 @@ verify.completions({
end: 0,
},
insertText:
-"foo(a: string, b: string): string {\r\n}\r\n",
+"foo(a: string, b: string): string {\n}\n",
}
],
});
@@ -178,7 +173,7 @@ verify.completions({
end: 0,
},
insertText:
-"foo(a: string): string {\r\n}\r\n",
+"foo(a: string): string {\n}\n",
}
],
});
@@ -200,7 +195,7 @@ verify.completions({
end: 0,
},
insertText:
-"foo(a: string): string {\r\n}\r\n",
+"foo(a: string): string {\n}\n",
}
],
});
@@ -222,7 +217,7 @@ verify.completions({
end: 0,
},
insertText:
-"foo(a: string): string {\r\n}\r\n",
+"foo(a: string): string {\n}\n",
}
],
});
@@ -244,7 +239,7 @@ verify.completions({
end: 0,
},
insertText:
-"foo(a: string): string {\r\n}\r\n",
+"foo(a: string): string {\n}\n",
}
],
});
@@ -266,9 +261,9 @@ verify.completions({
end: 0,
},
insertText:
-"foo(a: string): string;\r\n\
-foo(a: undefined, b: number): string;\r\n\
-foo(a: any, b?: any): string {\r\n}\r\n",
+"foo(a: string): string;\n\
+foo(a: undefined, b: number): string;\n\
+foo(a: any, b?: any): string {\n}\n",
}
],
});
@@ -299,7 +294,7 @@ verify.completions({
end: 0,
},
insertText:
-"met(n: number): number {\r\n}\r\n",
+"met(n: number): number {\n}\n",
}
],
});
@@ -321,7 +316,7 @@ verify.completions({
end: 0,
},
insertText:
-"met(t: T): T {\r\n}\r\n",
+"met(t: T): T {\n}\n",
},
{
name: "metcons",
@@ -332,7 +327,7 @@ verify.completions({
end: 0,
},
insertText:
-"metcons(t: T): T {\r\n}\r\n",
+"metcons(t: T): T {\n}\n",
}
],
});
\ No newline at end of file
diff --git a/tests/cases/fourslash/completionsOverridingMethod1.ts b/tests/cases/fourslash/completionsOverridingMethod1.ts
index 9ff6bff1fcb..e560d3eca35 100644
--- a/tests/cases/fourslash/completionsOverridingMethod1.ts
+++ b/tests/cases/fourslash/completionsOverridingMethod1.ts
@@ -1,5 +1,6 @@
///
+// @newline: LF
// @Filename: h.ts
// @noImplicitOverride: true
// Case: Suggested method needs `override` modifier
@@ -11,10 +12,6 @@
//// f/*h*/
////}
-// format.setFormatOptions({
-// newLineCharacter: "\n",
-// });
-// format.setOption("newline", "\n");
verify.completions({
marker: "h",
@@ -33,7 +30,7 @@ verify.completions({
end: 0,
},
insertText:
-"override foo(a: string): void {\r\n}\r\n",
+"override foo(a: string): void {\n}\n",
}
],
});
\ No newline at end of file
diff --git a/tests/cases/fourslash/completionsOverridingMethod2.ts b/tests/cases/fourslash/completionsOverridingMethod2.ts
index 7e1ab801c06..aa68e551d76 100644
--- a/tests/cases/fourslash/completionsOverridingMethod2.ts
+++ b/tests/cases/fourslash/completionsOverridingMethod2.ts
@@ -1,5 +1,6 @@
///
+// @newline: LF
// @Filename: a.ts
// Case: Snippet text needs escaping
////interface DollarSign {
@@ -9,10 +10,6 @@
//// /*a*/
////}
-// format.setFormatOptions({
-// newLineCharacter: "\n",
-// });
-// format.setOption("newline", "\n");
verify.completions({
marker: "a",
@@ -32,7 +29,7 @@ verify.completions({
},
isSnippet: true,
insertText:
-"\"\\$usd\"(${1:a}: ${2:number}): ${3:number} {\r\n $0\r\n}\r\n",
+"\"\\$usd\"(${1:a}: ${2:number}): ${3:number} {\n $0\n}\n",
}
],
});
\ No newline at end of file
diff --git a/tests/cases/fourslash/completionsOverridingMethod3.ts b/tests/cases/fourslash/completionsOverridingMethod3.ts
index 6ff8a51808c..fb0d0dee1ac 100644
--- a/tests/cases/fourslash/completionsOverridingMethod3.ts
+++ b/tests/cases/fourslash/completionsOverridingMethod3.ts
@@ -1,5 +1,6 @@
///
+// @newline: LF
// @Filename: boo.d.ts
// Case: Declaration files
////interface Ghost {
@@ -10,10 +11,6 @@
//// /*b*/
////}
-// format.setFormatOptions({
-// newLineCharacter: "\n",
-// });
-// format.setOption("newline", "\n");
verify.completions({
marker: "b",
@@ -32,7 +29,7 @@ verify.completions({
end: 0,
},
insertText:
-"boo(): string;\r\n",
+"boo(): string;\n",
}
],
});
\ No newline at end of file
diff --git a/tests/cases/fourslash/completionsOverridingMethod4.ts b/tests/cases/fourslash/completionsOverridingMethod4.ts
index 8fb1acfcfcf..707d35c8e3c 100644
--- a/tests/cases/fourslash/completionsOverridingMethod4.ts
+++ b/tests/cases/fourslash/completionsOverridingMethod4.ts
@@ -1,5 +1,6 @@
///
+// @newline: LF
// @Filename: secret.ts
// Case: accessibility modifier inheritance
////class Secret {
@@ -26,11 +27,6 @@
////}
-// format.setFormatOptions({
-// newLineCharacter: "\n",
-// });
-// format.setOption("newline", "\n");
-
verify.completions({
marker: "a",
isNewIdentifierLocation: true,
@@ -51,7 +47,7 @@ verify.completions({
pos: 0,
end: 0,
},
- insertText: "protected hint(): string {\r\n}\r\n",
+ insertText: "protected hint(): string {\n}\n",
},
{
name: "refuse",
@@ -61,7 +57,7 @@ verify.completions({
pos: 0,
end: 0,
},
- insertText: "public refuse(): string {\r\n}\r\n",
+ insertText: "public refuse(): string {\n}\n",
}
],
});
\ No newline at end of file
diff --git a/tests/cases/fourslash/completionsOverridingMethod5.ts b/tests/cases/fourslash/completionsOverridingMethod5.ts
index 81cbe6863d9..2fbbebca032 100644
--- a/tests/cases/fourslash/completionsOverridingMethod5.ts
+++ b/tests/cases/fourslash/completionsOverridingMethod5.ts
@@ -1,5 +1,6 @@
///
+// @newline: LF
// @Filename: a.ts
// Case: abstract methods
////abstract class Ab {
@@ -15,10 +16,6 @@
//// abstract m/*c*/
////}
-// format.setFormatOptions({
-// newLineCharacter: "\n",
-// });
-// format.setOption("newline", "\n");
verify.completions({
marker: "a",
@@ -36,7 +33,7 @@ verify.completions({
pos: 0,
end: 0,
},
- insertText: "met(n: string): void {\r\n}\r\n",
+ insertText: "met(n: string): void {\n}\n",
},
{
name: "met2",
@@ -46,7 +43,7 @@ verify.completions({
pos: 0,
end: 0,
},
- insertText: "met2(n: number): void {\r\n}\r\n",
+ insertText: "met2(n: number): void {\n}\n",
}
],
});
@@ -67,7 +64,7 @@ verify.completions({
pos: 0,
end: 0,
},
- insertText: "met(n: string): void;\r\n",
+ insertText: "met(n: string): void;\n",
},
{
name: "met2",
@@ -77,7 +74,7 @@ verify.completions({
pos: 0,
end: 0,
},
- insertText: "met2(n: number): void;\r\n",
+ insertText: "met2(n: number): void;\n",
}
],
});
@@ -98,7 +95,7 @@ verify.completions({
pos: 0,
end: 0,
},
- insertText: "met(n: string): void;\r\n",
+ insertText: "met(n: string): void;\n",
},
{
name: "met2",
@@ -108,7 +105,7 @@ verify.completions({
pos: 0,
end: 0,
},
- insertText: "met2(n: number): void;\r\n",
+ insertText: "met2(n: number): void;\n",
}
],
});
diff --git a/tests/cases/fourslash/completionsOverridingMethod6.ts b/tests/cases/fourslash/completionsOverridingMethod6.ts
index df25d62b41c..c737836e92e 100644
--- a/tests/cases/fourslash/completionsOverridingMethod6.ts
+++ b/tests/cases/fourslash/completionsOverridingMethod6.ts
@@ -1,6 +1,7 @@
///
// @Filename: a.ts
+// @newline: LF
// Case: modifier inheritance/deduplication
////class A {
//// public method(): number {
@@ -25,12 +26,6 @@
//// public f/*c*/
////}
-
-// format.setFormatOptions({
-// newLineCharacter: "\n",
-// });
-// format.setOption("newline", "\n");
-
verify.completions({
marker: "a",
isNewIdentifierLocation: true,
@@ -47,7 +42,7 @@ verify.completions({
pos: 0,
end: 0,
},
- insertText: "method(): number {\r\n}\r\n",
+ insertText: "method(): number {\n}\n",
},
],
});
@@ -68,7 +63,7 @@ verify.completions({
pos: 0,
end: 0,
},
- insertText: "method(): number;\r\n",
+ insertText: "method(): number;\n",
},
],
});
@@ -90,9 +85,9 @@ verify.completions({
end: 0,
},
insertText:
- "fun(a: number): number;\r\n\
-public fun(a: undefined, b: string): number;\r\n\
-public fun(a: any, b?: any): number {\r\n}\r\n",
+ "fun(a: number): number;\n\
+public fun(a: undefined, b: string): number;\n\
+public fun(a: any, b?: any): number {\n}\n",
},
],
});
\ No newline at end of file