@@ -3,8 +3,10 @@ local hl_map = Highlights.get_agenda_hl_map()
3
3
local config = require (' orgmode.config' )
4
4
local FUTURE_DEADLINE_AS_WARNING_DAYS = math.floor (config .org_deadline_warning_days / 2 )
5
5
local function add_padding (datetime )
6
- if datetime :len () >= 11 then return datetime .. ' ' end
7
- return datetime .. string.rep (' .' , 11 - datetime :len ()).. ' '
6
+ if datetime :len () >= 11 then
7
+ return datetime .. ' '
8
+ end
9
+ return datetime .. string.rep (' .' , 11 - datetime :len ()) .. ' '
8
10
end
9
11
10
12
--- @class AgendaItem
20
22
--- @field highlights table[]
21
23
local AgendaItem = {}
22
24
23
-
24
25
--- @param headline_date Date single date in a headline
25
26
--- @param headline Headline
26
27
--- @param date Date date for which item should be rendered
@@ -60,25 +61,38 @@ function AgendaItem:_process()
60
61
end
61
62
62
63
function AgendaItem :_is_valid_for_today ()
63
- if not self .headline_date .active or self .headline_date :is_closed () or self .headline_date :is_obsolete_range_end () then return false end
64
+ if not self .headline_date .active or self .headline_date :is_closed () or self .headline_date :is_obsolete_range_end () then
65
+ return false
66
+ end
64
67
if self .headline_date :is_none () then
65
68
return self .is_same_day or self .is_in_date_range
66
69
end
67
70
68
71
if self .headline_date :is_deadline () then
69
- if self .headline :is_done () and config .org_agenda_skip_deadline_if_done then return false end
70
- if self .is_same_day then return true end
72
+ if self .headline :is_done () and config .org_agenda_skip_deadline_if_done then
73
+ return false
74
+ end
75
+ if self .is_same_day then
76
+ return true
77
+ end
71
78
if self .headline_date :is_before (self .date , ' day' ) then
72
79
return not self .headline :is_done ()
73
80
end
74
- return not self .headline :is_done () and self .date :is_between (self .headline_date :get_adjusted_date (), self .headline_date , ' day' )
81
+ return not self .headline :is_done ()
82
+ and self .date :is_between (self .headline_date :get_adjusted_date (), self .headline_date , ' day' )
75
83
end
76
84
77
- if self .headline :is_done () and config .org_agenda_skip_scheduled_if_done then return false end
85
+ if self .headline :is_done () and config .org_agenda_skip_scheduled_if_done then
86
+ return false
87
+ end
78
88
79
89
if not self .headline_date :get_negative_adjustment () then
80
- if self .is_same_day then return true end
81
- if self .headline_date :is_before (self .date , ' day' ) and not self .headline :is_done () then return true end
90
+ if self .is_same_day then
91
+ return true
92
+ end
93
+ if self .headline_date :is_before (self .date , ' day' ) and not self .headline :is_done () then
94
+ return true
95
+ end
82
96
return false
83
97
end
84
98
@@ -90,7 +104,9 @@ function AgendaItem:_is_valid_for_today()
90
104
end
91
105
92
106
function AgendaItem :_is_valid_for_date ()
93
- if not self .headline_date .active or self .headline_date :is_closed () or self .headline_date :is_obsolete_range_end () then return false end
107
+ if not self .headline_date .active or self .headline_date :is_closed () or self .headline_date :is_obsolete_range_end () then
108
+ return false
109
+ end
94
110
95
111
if self .headline :is_done () then
96
112
if self .headline_date :is_deadline () and config .org_agenda_skip_deadline_if_done then
@@ -112,33 +128,35 @@ function AgendaItem:_generate_label()
112
128
local time = not self .headline_date .date_only and add_padding (self .headline_date :format_time ()) or ' '
113
129
if self .headline_date :is_deadline () then
114
130
if self .is_same_day then
115
- return time .. ' Deadline:'
131
+ return time .. ' Deadline:'
116
132
end
117
- return self .headline_date :humanize (self .date ).. ' :'
133
+ return self .headline_date :humanize (self .date ) .. ' :'
118
134
end
119
135
120
136
if self .headline_date :is_scheduled () then
121
137
if self .is_same_day then
122
- return time .. ' Scheduled:'
138
+ return time .. ' Scheduled:'
123
139
end
124
140
125
141
local diff = math.abs (self .date :diff (self .headline_date ))
126
142
127
- return ' Sched. ' .. diff .. ' x:'
143
+ return ' Sched. ' .. diff .. ' x:'
128
144
end
129
145
130
146
if self .headline_date .is_date_range_start then
131
- if not self .is_in_date_range then return time end
147
+ if not self .is_in_date_range then
148
+ return time
149
+ end
132
150
local range = string.format (' (%d/%d):' , self .date :diff (self .headline_date ) + 1 , self .date_range_days )
133
151
if not self .is_same_day then
134
152
return range
135
153
end
136
- return time .. range
154
+ return time .. range
137
155
end
138
156
139
157
if self .headline_date .is_date_range_end then
140
158
local range = string.format (' (%d/%d):' , self .date_range_days , self .date_range_days )
141
- return time .. range
159
+ return time .. range
142
160
end
143
161
144
162
return time
@@ -172,12 +190,14 @@ function AgendaItem:_generate_highlight()
172
190
end
173
191
174
192
function AgendaItem :_add_keyword_highlight ()
175
- if self .headline .todo_keyword .value == ' ' then return end
193
+ if self .headline .todo_keyword .value == ' ' then
194
+ return
195
+ end
176
196
local hlgroup = hl_map [self .headline .todo_keyword .value ]
177
197
if hlgroup then
178
198
table.insert (self .highlights , {
179
199
hlgroup = hlgroup ,
180
- todo_keyword = self .headline .todo_keyword .value
200
+ todo_keyword = self .headline .todo_keyword .value ,
181
201
})
182
202
end
183
203
end
0 commit comments