feat(todo): quick add keeps a word as text where it stands, and from Backspace (ADR 0033, D29)

A word tapped was kept as text by its text, so in "Watch The Daily Show
Daily" tapping the first "Daily" also stopped the second one making the
task repeat (the developer's example). Kept words are now ranges of the
title that follow its edits (`shiftKept`: ranges after the edit move by
its length, one it touches is dropped), and the parser leaves a token
overlapping one of them as text, wherever else the same word stands.

Backspace right after a highlighted word keeps it as text instead of
deleting its last character, as Todoist's; the next Backspace deletes.
It is an input formatter, so the keyboard is given the text back. The
hint under the title says so.

Whats-New: In Add task, only the word you tap stays text; the same word elsewhere still counts.
Whats-New: In Add task, Backspace right after a highlighted word keeps it as text.
Whats-New-De: In „Aufgabe hinzufügen“ bleibt nur das angetippte Wort Text; dasselbe Wort an anderer Stelle zählt weiter.
Whats-New-De: In „Aufgabe hinzufügen“ behält die Rücktaste direkt nach einem hervorgehobenen Wort es als Text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-04 22:23:03 +01:00
commit 8b13cbcf2b
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -487,6 +487,23 @@ The developer's review of 4 Nov 2026, again beside Todoist's screens.
sub-projects moved up a level (kept, but surprising after a confirmation that named
only the parent); a depth limit as Todoist's (four levels), left until deep trees turn
out to be a problem.
- **D29 Quick add keeps a word as text where it stands, and from Backspace too**
(amends D15; the developer's, 4 Nov 2026). A word tapped had been kept as text by its
text, so in "Watch The Daily Show Daily" tapping the first *Daily* also stopped the
second one making the task repeat. A word kept is now **that occurrence**, a range of
the title (`QuickAddRange`, `parseQuickAdd(ignored:)`; a token overlapping one stays
text), which follows the edits: the edit found from the common start and end of the
text before and after, ranges after it moved, one it touches dropped as its word has
changed (`shiftKept`); typing right before or after a kept word leaves it kept.
**Backspace right after a highlighted word keeps it as text**, as Todoist's: the
character isn't deleted, the next Backspace deletes it (a quick add input formatter,
so the keyboard's own text is put back too); the hint under the title says so. And
**a word is highlighted while the keyboard still composes it**: Android's keyboards
(Gboard with suggestions, Japanese ones) compose a word until a space, and the title
had shown the plain composing text until then; the highlight is drawn with the
composing underline over it. *Alternatives:* keeping by text but only the word
tapped and those before it (still surprising, and lost on reordering); a long press
instead of Backspace (undiscoverable, and the tap already does it).
## Steps