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

Method staticInitialization

src/Context.cpp:1115–1170  ·  view source on GitHub ↗

/////////////////////////////////////////////////////////////////////////// The 'Task' object, among others, is shared between projects. To make this easier, it has been decoupled from Context.

Source from the content-addressed store, hash-verified

1113// The 'Task' object, among others, is shared between projects. To make this
1114// easier, it has been decoupled from Context.
1115void Context::staticInitialization() {
1116 CLI2::minimumMatchLength = config.getInteger("abbreviation.minimum");
1117 Lexer::minimumMatchLength = config.getInteger("abbreviation.minimum");
1118
1119 Task::defaultProject = config.get("default.project");
1120 Task::defaultDue = config.get("default.due");
1121 Task::defaultScheduled = config.get("default.scheduled");
1122
1123 Task::searchCaseSensitive = Variant::searchCaseSensitive =
1124 config.getBoolean("search.case.sensitive");
1125 Task::regex = Variant::searchUsingRegex = config.getBoolean("regex");
1126 Lexer::dateFormat = Variant::dateFormat = config.get("dateformat");
1127
1128 auto weekStart = Datetime::dayOfWeek(config.get("weekstart"));
1129 if (weekStart != 0 && weekStart != 1)
1130 throw std::string(
1131 "The 'weekstart' configuration variable may only contain 'Sunday' or 'Monday'.");
1132 Datetime::weekstart = weekStart;
1133 Datetime::isoEnabled = config.getBoolean("date.iso");
1134 Datetime::standaloneDateEnabled = false;
1135 Datetime::standaloneTimeEnabled = false;
1136 Duration::standaloneSecondsEnabled = false;
1137
1138 TDB2::debug_mode = config.getBoolean("debug");
1139
1140 for (auto& rc : config) {
1141 if (rc.first.substr(0, 4) == "uda." && rc.first.substr(rc.first.length() - 7, 7) == ".values") {
1142 std::string name = rc.first.substr(4, rc.first.length() - 7 - 4);
1143 auto values = split(rc.second, ',');
1144
1145 for (auto r = values.rbegin(); r != values.rend(); ++r) Task::customOrder[name].push_back(*r);
1146 }
1147 }
1148
1149 for (auto& col : columns) {
1150 Task::attributes[col.first] = col.second->type();
1151 Lexer::attributes[col.first] = col.second->type();
1152 }
1153
1154 Task::urgencyProjectCoefficient = config.getReal("urgency.project.coefficient");
1155 Task::urgencyActiveCoefficient = config.getReal("urgency.active.coefficient");
1156 Task::urgencyScheduledCoefficient = config.getReal("urgency.scheduled.coefficient");
1157 Task::urgencyWaitingCoefficient = config.getReal("urgency.waiting.coefficient");
1158 Task::urgencyBlockedCoefficient = config.getReal("urgency.blocked.coefficient");
1159 Task::urgencyAnnotationsCoefficient = config.getReal("urgency.annotations.coefficient");
1160 Task::urgencyTagsCoefficient = config.getReal("urgency.tags.coefficient");
1161 Task::urgencyDueCoefficient = config.getReal("urgency.due.coefficient");
1162 Task::urgencyBlockingCoefficient = config.getReal("urgency.blocking.coefficient");
1163 Task::urgencyAgeCoefficient = config.getReal("urgency.age.coefficient");
1164 Task::urgencyAgeMax = config.getReal("urgency.age.max");
1165
1166 // Tag- and project-specific coefficients.
1167 for (auto& var : config.all())
1168 if (var.substr(0, 13) == "urgency.user." || var.substr(0, 12) == "urgency.uda.")
1169 Task::coefficients[var] = config.getReal(var);
1170}
1171
1172////////////////////////////////////////////////////////////////////////////////

Callers

nothing calls this directly

Calls 3

typeMethod · 0.80
getMethod · 0.45
allMethod · 0.45

Tested by

no test coverage detected