@@ -75,7 +75,7 @@ function M.merge_sort(t, comparator)
75
75
split_merge (t , 1 , # t , comparator )
76
76
end
77
77
78
- function M . node_comparator_name (a , b )
78
+ local function node_comparator_name_ignorecase_or_not (a , b , ignorecase )
79
79
if not (a and b ) then
80
80
return true
81
81
end
@@ -85,7 +85,19 @@ function M.node_comparator_name(a, b)
85
85
return false
86
86
end
87
87
88
- return a .name :lower () <= b .name :lower ()
88
+ if ignorecase then
89
+ return a .name :lower () <= b .name :lower ()
90
+ else
91
+ return a .name <= b .name
92
+ end
93
+ end
94
+
95
+ function M .node_comparator_name_case_sensisive (a , b )
96
+ return node_comparator_name_ignorecase_or_not (a , b , false )
97
+ end
98
+
99
+ function M .node_comparator_name_ignorecase (a , b )
100
+ return node_comparator_name_ignorecase_or_not (a , b , true )
89
101
end
90
102
91
103
function M .node_comparator_modification_time (a , b )
@@ -116,8 +128,10 @@ function M.setup(opts)
116
128
M .sort_by = opts .sort_by
117
129
if M .sort_by == " modification_time" then
118
130
M .node_comparator = M .node_comparator_modification_time
131
+ elseif M .sort_by == " case_sensitive" then
132
+ M .node_comparator = M .node_comparator_name_case_sensisive
119
133
else
120
- M .node_comparator = M .node_comparator_name
134
+ M .node_comparator = M .node_comparator_name_ignorecase
121
135
end
122
136
end
123
137
0 commit comments