Skip to content

Commit

Permalink
place first import after header
Browse files Browse the repository at this point in the history
  • Loading branch information
jessetrinity committed Aug 5, 2020
1 parent 6247364 commit 45d9eb5
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 3 deletions.
4 changes: 2 additions & 2 deletions src/services/textChanges.ts
Expand Up @@ -384,8 +384,8 @@ namespace ts.textChanges {
}
}

public insertNodeBefore(sourceFile: SourceFile, before: Node, newNode: Node, blankLineBetween = false): void {
this.insertNodeAt(sourceFile, getAdjustedStartPosition(sourceFile, before, {}), newNode, this.getOptionsForInsertNodeBefore(before, newNode, blankLineBetween));
public insertNodeBefore(sourceFile: SourceFile, before: Node, newNode: Node, blankLineBetween = false, options = {}): void {
this.insertNodeAt(sourceFile, getAdjustedStartPosition(sourceFile, before, options), newNode, this.getOptionsForInsertNodeBefore(before, newNode, blankLineBetween));
}

public insertModifierBefore(sourceFile: SourceFile, modifier: SyntaxKind, before: Node): void {
Expand Down
4 changes: 3 additions & 1 deletion src/services/utilities.ts
Expand Up @@ -1913,7 +1913,9 @@ namespace ts {
for (const newImport of sortedNewImports) {
const insertionIndex = OrganizeImports.getImportDeclarationInsertionIndex(existingImportStatements, newImport);
if (insertionIndex === 0) {
changes.insertNodeBefore(sourceFile, existingImportStatements[0], newImport, /*blankLineBetween*/ false);
changes.insertNodeBefore(sourceFile, existingImportStatements[0], newImport, /*blankLineBetween*/ false, {
leadingTriviaOption: textChanges.LeadingTriviaOption.Exclude,
});
}
else {
const prevImport = existingImportStatements[insertionIndex - 1];
Expand Down
26 changes: 26 additions & 0 deletions tests/cases/fourslash/importNameCodeFix_HeaderComment.ts
@@ -0,0 +1,26 @@
/// <reference path="fourslash.ts" />

// @Filename: /a.ts
////export const foo = 0;

// @Filename: /b.ts
////export const bar = 0;

// @Filename: /c.ts
/////*--------------------
//// * Copyright Header
//// *--------------------*/
////
////import { bar } from "./b";
////foo;

goTo.file("/c.ts");
verify.importFixAtPosition([
`/*--------------------
* Copyright Header
*--------------------*/
import { foo } from "./a";
import { bar } from "./b";
foo;`,
]);

0 comments on commit 45d9eb5

Please sign in to comment.