@@ -49,6 +49,20 @@ export const CollatorCompare = new Intl.Collator(undefined, {
4949 numeric : true ,
5050} ) . compare ;
5151
52+ export const CollatorCompareUpperFirst = new Intl . Collator ( undefined , {
53+ usage : "sort" ,
54+ sensitivity : "base" ,
55+ numeric : true ,
56+ caseFirst : "upper"
57+ } ) . compare ;
58+
59+ export const CollatorCompareLowerFirst = new Intl . Collator ( undefined , {
60+ usage : "sort" ,
61+ sensitivity : "base" ,
62+ numeric : true ,
63+ caseFirst : "lower"
64+ } ) . compare ;
65+
5266export const CollatorTrueAlphabeticalCompare = new Intl . Collator ( undefined , {
5367 usage : "sort" ,
5468 sensitivity : "base" ,
@@ -178,32 +192,38 @@ const folderGoesFirstWhenSameBasenameAsFolder = (stringCompareResult: number, a:
178192 ( ! ! stringCompareResult ) ? stringCompareResult : ( a . isFolder === b . isFolder ? EQUAL_OR_UNCOMPARABLE : ( a . isFolder ? - 1 : 1 ) ) ;
179193
180194const Sorters : { [ key in CustomSortOrder ] : SorterFn } = {
181- [ CustomSortOrder . alphabetical ] : ( a : FolderItemForSorting , b : FolderItemForSorting ) => CollatorCompare ( a . sortString , b . sortString ) ,
195+ [ CustomSortOrder . alphabetical ] : ( a : FIFS , b : FIFS ) => CollatorCompare ( a . sortString , b . sortString ) ,
196+ [ CustomSortOrder . alphabeticalLowerFirst ] : ( a : FIFS , b : FIFS ) => CollatorCompareLowerFirst ( a . sortString , b . sortString ) ,
197+ [ CustomSortOrder . alphabeticalUpperFirst ] : ( a : FIFS , b : FIFS ) => CollatorCompareUpperFirst ( a . sortString , b . sortString ) ,
182198 [ CustomSortOrder . alphabeticalWithFilesPreferred ] : ( a : FIFS , b : FIFS ) => fileGoesFirstWhenSameBasenameAsFolder ( CollatorCompare ( a . sortString , b . sortString ) , a , b ) ,
183199 [ CustomSortOrder . alphabeticalWithFoldersPreferred ] : ( a : FIFS , b : FIFS ) => fileGoesFirstWhenSameBasenameAsFolder ( CollatorCompare ( a . sortString , b . sortString ) , a , b ) ,
184- [ CustomSortOrder . alphabeticalWithFileExt ] : ( a : FolderItemForSorting , b : FolderItemForSorting ) => CollatorCompare ( a . sortStringWithExt , b . sortStringWithExt ) ,
185- [ CustomSortOrder . trueAlphabetical ] : ( a : FolderItemForSorting , b : FolderItemForSorting ) => CollatorTrueAlphabeticalCompare ( a . sortString , b . sortString ) ,
186- [ CustomSortOrder . trueAlphabeticalWithFileExt ] : ( a : FolderItemForSorting , b : FolderItemForSorting ) => CollatorTrueAlphabeticalCompare ( a . sortStringWithExt , b . sortStringWithExt ) ,
187- [ CustomSortOrder . alphabeticalReverse ] : ( a : FolderItemForSorting , b : FolderItemForSorting ) => CollatorCompare ( b . sortString , a . sortString ) ,
188- [ CustomSortOrder . alphabeticalReverseWithFileExt ] : ( a : FolderItemForSorting , b : FolderItemForSorting ) => CollatorCompare ( b . sortStringWithExt , a . sortStringWithExt ) ,
189- [ CustomSortOrder . trueAlphabeticalReverse ] : ( a : FolderItemForSorting , b : FolderItemForSorting ) => CollatorTrueAlphabeticalCompare ( b . sortString , a . sortString ) ,
190- [ CustomSortOrder . trueAlphabeticalReverseWithFileExt ] : ( a : FolderItemForSorting , b : FolderItemForSorting ) => CollatorTrueAlphabeticalCompare ( b . sortStringWithExt , a . sortStringWithExt ) ,
191- [ CustomSortOrder . byModifiedTime ] : ( a : FolderItemForSorting , b : FolderItemForSorting ) => ( a . isFolder && b . isFolder ) ? CollatorCompare ( a . sortString , b . sortString ) : ( a . mtime - b . mtime ) ,
200+ [ CustomSortOrder . alphabeticalWithFileExt ] : ( a : FIFS , b : FIFS ) => CollatorCompare ( a . sortStringWithExt , b . sortStringWithExt ) ,
201+ [ CustomSortOrder . trueAlphabetical ] : ( a : FIFS , b : FIFS ) => CollatorTrueAlphabeticalCompare ( a . sortString , b . sortString ) ,
202+ [ CustomSortOrder . trueAlphabeticalWithFileExt ] : ( a : FIFS , b : FIFS ) => CollatorTrueAlphabeticalCompare ( a . sortStringWithExt , b . sortStringWithExt ) ,
203+ [ CustomSortOrder . alphabeticalReverse ] : ( a : FIFS , b : FIFS ) => CollatorCompare ( b . sortString , a . sortString ) ,
204+ [ CustomSortOrder . alphabeticalLowerFirstReverse ] : ( a : FIFS , b : FIFS ) => CollatorCompareLowerFirst ( b . sortString , a . sortString ) ,
205+ [ CustomSortOrder . alphabeticalUpperFirstReverse ] : ( a : FIFS , b : FIFS ) => CollatorCompareUpperFirst ( b . sortString , a . sortString ) ,
206+ [ CustomSortOrder . alphabeticalReverseWithFileExt ] : ( a : FIFS , b : FIFS ) => CollatorCompare ( b . sortStringWithExt , a . sortStringWithExt ) ,
207+ [ CustomSortOrder . trueAlphabeticalReverse ] : ( a : FIFS , b : FIFS ) => CollatorTrueAlphabeticalCompare ( b . sortString , a . sortString ) ,
208+ [ CustomSortOrder . trueAlphabeticalReverseWithFileExt ] : ( a : FIFS , b : FIFS ) => CollatorTrueAlphabeticalCompare ( b . sortStringWithExt , a . sortStringWithExt ) ,
209+ [ CustomSortOrder . byModifiedTime ] : ( a : FIFS , b : FIFS ) => ( a . isFolder && b . isFolder ) ? CollatorCompare ( a . sortString , b . sortString ) : ( a . mtime - b . mtime ) ,
192210 [ CustomSortOrder . byModifiedTimeAdvanced ] : sorterByFolderMDate ( ) ,
193- [ CustomSortOrder . byModifiedTimeReverse ] : ( a : FolderItemForSorting , b : FolderItemForSorting ) => ( a . isFolder && b . isFolder ) ? CollatorCompare ( a . sortString , b . sortString ) : ( b . mtime - a . mtime ) ,
211+ [ CustomSortOrder . byModifiedTimeReverse ] : ( a : FIFS , b : FIFS ) => ( a . isFolder && b . isFolder ) ? CollatorCompare ( a . sortString , b . sortString ) : ( b . mtime - a . mtime ) ,
194212 [ CustomSortOrder . byModifiedTimeReverseAdvanced ] : sorterByFolderMDate ( true ) ,
195- [ CustomSortOrder . byCreatedTime ] : ( a : FolderItemForSorting , b : FolderItemForSorting ) => ( a . isFolder && b . isFolder ) ? CollatorCompare ( a . sortString , b . sortString ) : ( a . ctime - b . ctime ) ,
213+ [ CustomSortOrder . byCreatedTime ] : ( a : FIFS , b : FIFS ) => ( a . isFolder && b . isFolder ) ? CollatorCompare ( a . sortString , b . sortString ) : ( a . ctime - b . ctime ) ,
196214 [ CustomSortOrder . byCreatedTimeAdvanced ] : sorterByFolderCDate ( ) ,
197- [ CustomSortOrder . byCreatedTimeReverse ] : ( a : FolderItemForSorting , b : FolderItemForSorting ) => ( a . isFolder && b . isFolder ) ? CollatorCompare ( a . sortString , b . sortString ) : ( b . ctime - a . ctime ) ,
215+ [ CustomSortOrder . byCreatedTimeReverse ] : ( a : FIFS , b : FIFS ) => ( a . isFolder && b . isFolder ) ? CollatorCompare ( a . sortString , b . sortString ) : ( b . ctime - a . ctime ) ,
198216 [ CustomSortOrder . byCreatedTimeReverseAdvanced ] : sorterByFolderCDate ( true ) ,
199217 [ CustomSortOrder . byMetadataFieldAlphabetical ] : sorterByMetadataField ( StraightOrder , ! TrueAlphabetical , SortingLevelId . forPrimary ) ,
200218 [ CustomSortOrder . byMetadataFieldTrueAlphabetical ] : sorterByMetadataField ( StraightOrder , TrueAlphabetical , SortingLevelId . forPrimary ) ,
201219 [ CustomSortOrder . byMetadataFieldAlphabeticalReverse ] : sorterByMetadataField ( ReverseOrder , ! TrueAlphabetical , SortingLevelId . forPrimary ) ,
202220 [ CustomSortOrder . byMetadataFieldTrueAlphabeticalReverse ] : sorterByMetadataField ( ReverseOrder , TrueAlphabetical , SortingLevelId . forPrimary ) ,
203221 [ CustomSortOrder . byBookmarkOrder ] : sorterByBookmarkOrder ( StraightOrder ) ,
204222 [ CustomSortOrder . byBookmarkOrderReverse ] : sorterByBookmarkOrder ( ReverseOrder ) ,
205- [ CustomSortOrder . fileFirst ] : ( a : FolderItemForSorting , b : FolderItemForSorting ) => ( a . isFolder === b . isFolder ) ? EQUAL_OR_UNCOMPARABLE : ( a . isFolder ? 1 : - 1 ) ,
206- [ CustomSortOrder . folderFirst ] : ( a : FolderItemForSorting , b : FolderItemForSorting ) => ( a . isFolder === b . isFolder ) ? EQUAL_OR_UNCOMPARABLE : ( a . isFolder ? - 1 : 1 ) ,
223+ [ CustomSortOrder . fileFirst ] : ( a : FIFS , b : FIFS ) => ( a . isFolder === b . isFolder ) ? EQUAL_OR_UNCOMPARABLE : ( a . isFolder ? 1 : - 1 ) ,
224+ [ CustomSortOrder . folderFirst ] : ( a : FIFS , b : FIFS ) => ( a . isFolder === b . isFolder ) ? EQUAL_OR_UNCOMPARABLE : ( a . isFolder ? - 1 : 1 ) ,
225+ [ CustomSortOrder . vscUnicode ] : ( a : FIFS , b : FIFS ) => ( a . sortString === b . sortString ) ? EQUAL_OR_UNCOMPARABLE : ( a . sortString < b . sortString ? - 1 : 1 ) ,
226+ [ CustomSortOrder . vscUnicodeReverse ] : ( a : FIFS , b : FIFS ) => ( a . sortString === b . sortString ) ? EQUAL_OR_UNCOMPARABLE : ( b . sortString < a . sortString ? - 1 : 1 ) ,
207227
208228 // A fallback entry which should not be used - the getSorterFor() function below should protect against it
209229 [ CustomSortOrder . standardObsidian ] : ( a : FIFS , b : FIFS ) => CollatorCompare ( a . sortString , b . sortString ) ,
0 commit comments