@@ -23,10 +23,6 @@ namespace ts {
2323 // More efficient to create a collator once and use its `compare` than to call `a.localeCompare(b)` many times.
2424 export const collator : { compare ( a : string , b : string ) : number } = typeof Intl === "object" && typeof Intl . Collator === "function" ? new Intl . Collator ( ) : undefined ;
2525
26- // This means "compare in a case insensitive manner but consider accentsor other diacritic marks"
27- // (e.g. a ≠ b, a ≠ á, a = A)
28- const accentSensitivity : Intl . CollatorOptions = { usage : "sort" , sensitivity : "accent" } ;
29-
3026 /**
3127 * Use this function instead of calling "String.prototype.localeCompre". This function will preform appropriate check to make sure that
3228 * "typeof Intl" is correct as there are reported issues #11110 nad #11339.
@@ -1033,13 +1029,14 @@ namespace ts {
10331029 return a < b ? Comparison . LessThan : Comparison . GreaterThan ;
10341030 }
10351031
1036- export function compareStrings ( a : string , b : string , locales ?: string | string [ ] , options ?: Intl . CollatorOptions ) : Comparison {
1032+ export function compareStrings ( a : string , b : string , ignoreCase ?: boolean ) : Comparison {
10371033 if ( a === b ) return Comparison . EqualTo ;
10381034 if ( a === undefined ) return Comparison . LessThan ;
10391035 if ( b === undefined ) return Comparison . GreaterThan ;
1040- if ( options ) {
1036+ if ( ignoreCase ) {
10411037 if ( collator && String . prototype . localeCompare ) {
1042- const result = a . localeCompare ( b , locales , options ) ;
1038+ // accent means a ≠ b, a ≠ á, a = A
1039+ const result = a . localeCompare ( b , /*locales*/ undefined , { usage : "sort" , sensitivity : "accent" } ) ;
10431040 return result < 0 ? Comparison . LessThan : result > 0 ? Comparison . GreaterThan : Comparison . EqualTo ;
10441041 }
10451042
@@ -1052,7 +1049,7 @@ namespace ts {
10521049 }
10531050
10541051 export function compareStringsCaseInsensitive ( a : string , b : string ) {
1055- return compareStrings ( a , b , /*locales */ undefined , accentSensitivity ) ;
1052+ return compareStrings ( a , b , /*ignoreCase */ true ) ;
10561053 }
10571054
10581055 function getDiagnosticFileName ( diagnostic : Diagnostic ) : string {
@@ -1422,8 +1419,7 @@ namespace ts {
14221419 const bComponents = getNormalizedPathComponents ( b , currentDirectory ) ;
14231420 const sharedLength = Math . min ( aComponents . length , bComponents . length ) ;
14241421 for ( let i = 0 ; i < sharedLength ; i ++ ) {
1425- const result = compareStrings ( aComponents [ i ] , bComponents [ i ] ,
1426- /*locales*/ undefined , /*options*/ ignoreCase ? accentSensitivity : undefined ) ;
1422+ const result = compareStrings ( aComponents [ i ] , bComponents [ i ] , ignoreCase ) ;
14271423 if ( result !== Comparison . EqualTo ) {
14281424 return result ;
14291425 }
@@ -1445,8 +1441,7 @@ namespace ts {
14451441 }
14461442
14471443 for ( let i = 0 ; i < parentComponents . length ; i ++ ) {
1448- const result = compareStrings ( parentComponents [ i ] , childComponents [ i ] ,
1449- /*locales*/ undefined , /*options*/ ignoreCase ? accentSensitivity : undefined ) ;
1444+ const result = compareStrings ( parentComponents [ i ] , childComponents [ i ] , ignoreCase ) ;
14501445 if ( result !== Comparison . EqualTo ) {
14511446 return false ;
14521447 }
0 commit comments