@@ -16,40 +16,6 @@ local function sort_by_date_or_priority_or_category(a, b)
16
16
return a .index < b .index
17
17
end
18
18
19
- --- @param agenda_items OrgAgendaItem[]
20
- --- @return OrgAgendaItem[]
21
- local function sort_agenda_items (agenda_items )
22
- table.sort (agenda_items , function (a , b )
23
- if a .is_same_day and b .is_same_day then
24
- if a .real_date :has_time () and not b .real_date :has_time () then
25
- return true
26
- end
27
- if b .real_date :has_time () and not a .real_date :has_time () then
28
- return false
29
- end
30
- if a .real_date :has_time () and b .real_date :has_time () then
31
- return a .real_date :is_before (b .real_date )
32
- end
33
- return sort_by_date_or_priority_or_category (a , b )
34
- end
35
-
36
- if a .is_same_day and not b .is_same_day then
37
- if a .real_date :has_time () or (b .real_date :is_none () and not a .real_date :is_none ()) then
38
- return true
39
- end
40
- end
41
-
42
- if not a .is_same_day and b .is_same_day then
43
- if b .real_date :has_time () or (a .real_date :is_none () and not b .real_date :is_none ()) then
44
- return false
45
- end
46
- end
47
-
48
- return sort_by_date_or_priority_or_category (a , b )
49
- end )
50
- return agenda_items
51
- end
52
-
53
19
--- @class OrgAgendaView
54
20
--- @field span string | number
55
21
--- @field from OrgDate
@@ -157,7 +123,7 @@ function AgendaView:_build_items()
157
123
end
158
124
end
159
125
160
- date .agenda_items = sort_agenda_items (date .agenda_items )
126
+ date .agenda_items = self . _sort (date .agenda_items )
161
127
162
128
table.insert (agenda_days , date )
163
129
end
@@ -348,4 +314,39 @@ function AgendaView:_format_day(day)
348
314
return string.format (' %-10s %s' , day :format (' %A' ), day :format (' %d %B %Y' ))
349
315
end
350
316
317
+ --- @private
318
+ --- @param agenda_items OrgAgendaItem[]
319
+ --- @return OrgAgendaItem[]
320
+ function AgendaView ._sort (agenda_items )
321
+ table.sort (agenda_items , function (a , b )
322
+ if a .is_same_day and b .is_same_day then
323
+ if a .real_date :has_time () and not b .real_date :has_time () then
324
+ return true
325
+ end
326
+ if b .real_date :has_time () and not a .real_date :has_time () then
327
+ return false
328
+ end
329
+ if a .real_date :has_time () and b .real_date :has_time () then
330
+ return a .real_date :is_before (b .real_date )
331
+ end
332
+ return sort_by_date_or_priority_or_category (a , b )
333
+ end
334
+
335
+ if a .is_same_day and not b .is_same_day then
336
+ if a .real_date :has_time () or (b .real_date :is_none () and not a .real_date :is_none ()) then
337
+ return true
338
+ end
339
+ end
340
+
341
+ if not a .is_same_day and b .is_same_day then
342
+ if b .real_date :has_time () or (a .real_date :is_none () and not b .real_date :is_none ()) then
343
+ return false
344
+ end
345
+ end
346
+
347
+ return sort_by_date_or_priority_or_category (a , b )
348
+ end )
349
+ return agenda_items
350
+ end
351
+
351
352
return AgendaView
0 commit comments