matches method
Implementation
@override
bool matches(OrgSection section) {
final value = this.value;
switch (property.toUpperCase()) {
case 'TODO':
return value is String &&
evaluateString(section.headline.keyword?.value, operator, value);
case 'LEVEL':
return value is num && evaluateNumber(section.level, operator, value);
case 'PRIORITY':
return value is String &&
evaluateString(
// The default priority is "B"
// TODO(aaron): This knowledge shouldn't live here
// TODO(aaron): Support custom priorities, numeric priorities
section.headline.priority?.value ?? 'B',
operator,
value,
);
default:
final actual = section.getProperties(':$property:').firstOrNull;
if (value is String) {
return evaluateString(actual, operator, value);
} else if (actual != null && value is num) {
return evaluateNumber(num.parse(actual), operator, value);
}
}
return false;
}