MCPcopy Create free account
hub / github.com/GothenburgBitFactory/taskwarrior / autoColorize

Function autoColorize

src/rules.cpp:219–275  ·  view source on GitHub ↗

///////////////////////////////////////////////////////////////////////////

Source from the content-addressed store, hash-verified

217
218////////////////////////////////////////////////////////////////////////////////
219void autoColorize(Task& task, Color& c) {
220 // The special tag 'nocolor' overrides all auto and specific colorization.
221 if (!Context::getContext().color() || task.hasTag("nocolor")) {
222 c = Color();
223 return;
224 }
225
226 auto merge = Context::getContext().config.getBoolean("rule.color.merge");
227
228 // Note: c already contains colors specifically assigned via command.
229 // Note: These rules form a hierarchy - the last rule is King, hence the
230 // reverse iterator.
231
232 for (auto r = gsPrecedence.rbegin(); r != gsPrecedence.rend(); ++r) {
233 Color base = gsColor[*r];
234 if (base.nontrivial()) {
235 if (*r == "color.blocked")
236 colorizeBlocked(task, base, c, merge);
237 else if (*r == "color.blocking")
238 colorizeBlocking(task, base, c, merge);
239 else if (*r == "color.tagged")
240 colorizeTagged(task, base, c, merge);
241 else if (*r == "color.active")
242 colorizeActive(task, base, c, merge);
243 else if (*r == "color.scheduled")
244 colorizeScheduled(task, base, c, merge);
245 else if (*r == "color.until")
246 colorizeUntil(task, base, c, merge);
247 else if (*r == "color.project.none")
248 colorizeProjectNone(task, base, c, merge);
249 else if (*r == "color.tag.none")
250 colorizeTagNone(task, base, c, merge);
251 else if (*r == "color.due")
252 colorizeDue(task, base, c, merge);
253 else if (*r == "color.due.today")
254 colorizeDueToday(task, base, c, merge);
255 else if (*r == "color.overdue")
256 colorizeOverdue(task, base, c, merge);
257 else if (*r == "color.recurring")
258 colorizeRecurring(task, base, c, merge);
259 else if (*r == "color.completed")
260 colorizeCompleted(task, base, c, merge);
261 else if (*r == "color.deleted")
262 colorizeDeleted(task, base, c, merge);
263
264 // Wildcards
265 else if (!r->compare(0, 10, "color.tag.", 10))
266 colorizeTag(task, *r, base, c, merge);
267 else if (!r->compare(0, 14, "color.project.", 14))
268 colorizeProject(task, *r, base, c, merge);
269 else if (!r->compare(0, 14, "color.keyword.", 14))
270 colorizeKeyword(task, *r, base, c, merge);
271 else if (!r->compare(0, 10, "color.uda.", 10))
272 colorizeUDA(task, *r, base, c, merge);
273 }
274 }
275}
276

Callers 3

renderMethod · 0.85
executeMethod · 0.85
executeMethod · 0.85

Calls 15

colorizeBlockedFunction · 0.85
colorizeBlockingFunction · 0.85
colorizeTaggedFunction · 0.85
colorizeActiveFunction · 0.85
colorizeScheduledFunction · 0.85
colorizeUntilFunction · 0.85
colorizeProjectNoneFunction · 0.85
colorizeTagNoneFunction · 0.85
colorizeDueFunction · 0.85
colorizeDueTodayFunction · 0.85
colorizeOverdueFunction · 0.85
colorizeRecurringFunction · 0.85

Tested by

no test coverage detected