BUG: Pattern "(X)" anywhere highlighted as prioritized.
According to the "Todo.txt Format" specs, "Rule 1: If a priority exists, it ALWAYS appears first." Adapt AWK filtering to match priorities only directly after the task number added by the _list processing, and also matching the required trailing space.
This commit is contained in:
@@ -166,4 +166,20 @@ test_todo_session 'highlighting with hidden contexts/projects' <<EOF
|
|||||||
TODO: 4 of 4 tasks shown
|
TODO: 4 of 4 tasks shown
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
# check that priorities are only matched at the start of the task
|
||||||
|
#
|
||||||
|
cat > todo.txt <<EOF
|
||||||
|
(D) some prioritized task
|
||||||
|
not prioritized
|
||||||
|
should not be seen as PRIORITIZE(D) task
|
||||||
|
EOF
|
||||||
|
test_todo_session 'highlighting priority position' <<EOF
|
||||||
|
>>> todo.sh ls
|
||||||
|
[1;37m1 (D) some prioritized task[0m
|
||||||
|
2 not prioritized
|
||||||
|
3 should not be seen as PRIORITIZE(D) task
|
||||||
|
--
|
||||||
|
TODO: 3 of 3 tasks shown
|
||||||
|
EOF
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|||||||
5
todo.sh
5
todo.sh
@@ -720,11 +720,10 @@ _list() {
|
|||||||
return color
|
return color
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
pos = match($0, /\([A-Z]\)/)
|
|
||||||
if (match($0, /^[0-9]+ x /)) {
|
if (match($0, /^[0-9]+ x /)) {
|
||||||
print highlight("COLOR_DONE") $0 highlight("DEFAULT")
|
print highlight("COLOR_DONE") $0 highlight("DEFAULT")
|
||||||
} else if (pos > 0) {
|
} else if (match($0, /^[0-9]+ \([A-Z]\)[[:space:]]/)) {
|
||||||
clr = highlight("PRI_" substr($0, pos+1, 1))
|
clr = highlight("PRI_" substr($0, RSTART + RLENGTH - 3, 1))
|
||||||
print ( clr ? clr : highlight("PRI_X") ) $0 highlight("DEFAULT")
|
print ( clr ? clr : highlight("PRI_X") ) $0 highlight("DEFAULT")
|
||||||
} else { print }
|
} else { print }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user