Skip to content

Commit 543c5da

Browse files
committed
Ignore case when sorting imports
1 parent 2be6aaf commit 543c5da

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/harness/unittests/organizeImports.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,15 @@ namespace ts {
2323
`import x from "./lib";`);
2424
});
2525

26+
it("Sort - case-insensitive", () => {
27+
assertSortsBefore(
28+
`import y from "a";`,
29+
`import x from "Z";`);
30+
assertSortsBefore(
31+
`import y from "A";`,
32+
`import x from "z";`);
33+
});
34+
2635
function assertSortsBefore(importString1: string, importString2: string) {
2736
const [{moduleSpecifier: moduleSpecifier1}, {moduleSpecifier: moduleSpecifier2}] = parseImports(importString1, importString2);
2837
assert.equal(OrganizeImports.compareModuleSpecifiers(moduleSpecifier1, moduleSpecifier2), Comparison.LessThan);
@@ -42,6 +51,13 @@ namespace ts {
4251
assertListEqual(actualCoalescedImports, expectedCoalescedImports);
4352
});
4453

54+
it("Sort specifiers - case-insensitive", () => {
55+
const sortedImports = parseImports(`import { default as M, a as n, B, y, Z as O } from "lib";`);
56+
const actualCoalescedImports = OrganizeImports.coalesceImports(sortedImports);
57+
const expectedCoalescedImports = parseImports(`import { a as n, B, default as M, y, Z as O } from "lib";`);
58+
assertListEqual(actualCoalescedImports, expectedCoalescedImports);
59+
});
60+
4561
it("Combine side-effect-only imports", () => {
4662
const sortedImports = parseImports(
4763
`import "lib";`,

src/services/organizeImports.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ namespace ts.OrganizeImports {
254254
}
255255

256256
function compareIdentifiers(s1: Identifier, s2: Identifier) {
257-
return compareStringsCaseSensitive(s1.text, s2.text);
257+
return compareStringsCaseInsensitive(s1.text, s2.text);
258258
}
259259
}
260260

@@ -277,6 +277,6 @@ namespace ts.OrganizeImports {
277277
const name2 = getExternalModuleName(m2);
278278
return compareBooleans(name1 === undefined, name2 === undefined) ||
279279
compareBooleans(isExternalModuleNameRelative(name1), isExternalModuleNameRelative(name2)) ||
280-
compareStringsCaseSensitive(name1, name2);
280+
compareStringsCaseInsensitive(name1, name2);
281281
}
282282
}

0 commit comments

Comments
 (0)