TypeScript/tests/cases/fourslash/moveToNewFile_declarationKinds.ts
Andrew Branch 237ea526f9
Preserve newlines from original source when printing nodes from TextChanges (#36688)
* Allow emitter to write multiple newlines in node lists

* Progress

* Progress

* Fix recomputeIndentation

* Add tests, fix leading line terminator count

* Do a bit less work when `preserveNewlines` is off

* Fix accidental find/replace rename

* Restore some monomorphism

* Fix single line writer

* Fix other writers

* Revert "Fix other writers"

This reverts commit 21b0cb8f3b.

* Revert "Fix single line writer"

This reverts commit e535e279f9.

* Revert "Restore some monomorphism"

This reverts commit e3ef42743a.

* Add equal position optimization to getLinesBetweenRangeEndAndRangeStart

* Add one more test

* Actually save the test file

* Rename preserveNewlines to preserveSourceNewlines

* Make ignoreSourceNewlines internal

* Optimize lines-between functions

* Add comment;

* Fix trailing line terminator count bug for function parameters

* Preserve newlines around parenthesized expressions

* Back to speculative microoptimizations, yay

* Don’t call getEffectiveLines during tsc emit at all
2020-03-19 09:46:00 -07:00

35 lines
680 B
TypeScript

/// <reference path='fourslash.ts' />
// @Filename: /a.ts
////export {}; // make this a module
////[|const x = 0;
////function f() {}
////class C {}
////enum E {}
////namespace N { export const x = 0; }
////type T = number;
////interface I {}|]
////x; f; C; E; N;
////type U = T; type V = I;
verify.moveToNewFile({
newFileContents: {
"/a.ts":
`import { x, f, C, E, N, T, I } from "./x";
export {}; // make this a module
x; f; C; E; N;
type U = T; type V = I;`,
"/x.ts":
`export const x = 0;
export function f() { }
export class C { }
export enum E { }
export namespace N { export const x = 0; }
export type T = number;
export interface I { }
`,
},
});