feat: ID-Vorschläge beim Tippen von Abhängigkeiten (:#) — D63

Wer :# tippt, bekommt die vergebenen IDs als Liste an der Schreibmarke:
Präfix- vor Teilstring-Treffern, Knotentitel als Kontext, schon gelistete
und die eigene ID ausgenommen. ↑/↓ wählt, Enter/Tab übernimmt (undo-fähig),
Esc schließt; Live-Region für Screenreader. Eingabehilfe wie die Kurzform
(D55) — der Parser sieht nie etwas davon. Regeln headless in autocomplete.js
(20 Tests), app.js verdrahtet Popup, Tasten und Einfügen.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
mhoennig
2026-08-24 17:13:18 +02:00
co-authored by Claude Fable 5
parent 9cb6ec1197
commit 1debb7d9da
9 changed files with 507 additions and 4 deletions
+24
View File
@@ -869,6 +869,30 @@ und `llms.md` (§13) bleibt unberührt. Angefasst wird nur die Zeile, in der auc
bloßes Durchklicken ein fremdes Dokument um; Abhängigkeiten (`:#…`) und der
Beschreibungsteil hinter `---` bleiben außen vor. Siehe D55.
### ID-Vorschläge beim Tippen von Abhängigkeiten (`:#`)
Ebenfalls eine **Eingabehilfe**, keine Notation: Wer im Baumteil ein
Abhängigkeits-Token beginnt (`:#`, auch in der Fortsetzung `,#` und in der
Kopf-Form `#auth:#…`), bekommt an der Schreibmarke eine **Liste der vergebenen
IDs** — gefiltert nach dem schon getippten Fragment (Präfix-Treffer zuerst,
dann Teilstring-Treffer, je in Dokumentreihenfolge), mit dem Knotentitel als
Kontext daneben. Angeboten werden **alle** IDs des Dokuments, auch die
verworfener oder eingeklappter Knoten — eine Abhängigkeit darf überallhin
zeigen (§1); nicht angeboten werden die im Token schon gelisteten IDs und die
eigene ID der Zeile.
- **Bedienung:** ↑/↓ wählt, Enter oder Tab übernimmt (undo-fähig, ein
Schritt), Esc schließt — Weitertippen öffnet wieder. Klick bzw. Tipp auf
einen Eintrag übernimmt ebenso. Wer die Liste ignoriert, tippt einfach
weiter: Sie fängt keine Taste ab, solange sie nichts anzeigt, und Tab rückt
bei geschlossener Liste unverändert ein.
- **Kein Vorschlag** bei bloßem `#` (das *definiert* eine ID), im Kommentar
(`%%`), im Beschreibungsteil hinter `---` und in schreibgeschützten
Pad-Dokumenten (§9).
- Der Parser sieht nie etwas davon; `llms.md` (§13) bleibt unberührt. Für
Screenreader meldet eine höfliche Live-Region die Trefferzahl und den
gewählten Eintrag; das Popup selbst ist `aria-hidden`, normales Tippen
bleibt unberührt. Siehe D63.
### Zeilennummern im Texteditor
Links neben dem Textfeld steht ein schmaler Streifen mit den **Zeilennummern**
dieselben, die die Warnungen nennen („Zeile 12: …", §4). Ohne ihn muss man sie