feat(editor): ID-Kurzschreibweise #.kc als Eingabehilfe
Gefragt war, ob `#.kc` unter `#prod-stage` als Notation `#prod-stage.kc` bedeuten könnte. Als Notation wäre es falsch, und das zeigt der eigene Plan: 181 IDs im Baumteil, davon 50 (28 %), deren gepunktetes Präfix gar nicht die Eltern-ID ist (`#ed.parser` hängt unter `#ed.live`) — die Punkte benennen den BEREICH, nicht den Pfad, genau wie D48 es vorsieht. Dazu: der Beschreibungsteil hinter `---` hat keinen Baum (zwei Schreibweisen für eine ID), Einrücken änderte die Identität und bräche `:#…`-Verweise, und aus einer Konvention würde Grammatik. Gewinn wären 802 Zeichen in 40 kB. Also als Eingabehilfe: getippt wird `#.kc`, beim Verlassen der Zeile steht `#prod-stage.kc` im Text — derselbe Griff, mit dem das Umklappen im Diagramm seine Faltmarke zurückschreibt (D38-Nachtrag 2). Die Datei bleibt eindeutig, durchsuchbar und umsortierbar; llms.md ist unberührt, weil sich an der Notation nichts ändert. - parser.js: `expandShortIds(text)` neben `setFoldMark`, 17 Tests. - app.js: löst beim Zeilenwechsel auf, aber nur in der Zeile, in der auch getippt wurde — ein bloß durchgeklicktes fremdes Dokument bleibt zeichengenau stehen (sonst fiele es aus dem Nachziehen, D27). Falle, zum zweiten Mal dieselbe: `execCommand` verweigert re-entrant im `input`-Ereignis den Dienst, `replaceTextUndoable` fällt dann auf `src.value =` zurück und löscht die Undo-Historie. Gemessen: erstes Rückgängig ohne Wirkung, jedes weitere `false`. Jetzt einen Zug später (`setTimeout 0`) und nur mit Fokus im Textfeld; danach nimmt ein Rückgängig genau die Auflösung zurück. SPEC §9 + D55; Plan: #ed.shortid [x] (159 Knoten, 0 Warnungen). 288 Tests grün (271+17). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
e937e1bbbb
commit
285d86a2e1
@@ -703,6 +703,21 @@ verknüpft (siehe D25):
|
||||
- Die Hervorhebung ist eine reine Editierhilfe: nicht im Grafikexport, nicht im
|
||||
Druck.
|
||||
|
||||
### Kurzschreibweise der Knoten-ID beim Tippen (`#.name`)
|
||||
Eine **Eingabehilfe**, keine Notation: Wer `#.kc` unter einem Knoten mit der ID
|
||||
`#prod-stage` schreibt, findet beim **Verlassen der Zeile** `#prod-stage.kc` im
|
||||
Text. Aufgelöst wird gegen den nächsten Vorfahren **mit** ID; gibt es keinen
|
||||
oder trägt er selbst noch eine Kurzform, bleibt die Zeile stehen (`#.kc` ist
|
||||
ohnehin eine gültige ID — der Punkt gehört zur Zeichenmenge, §1). `#..x` wird
|
||||
nicht angefasst.
|
||||
|
||||
Die Datei enthält danach immer die volle ID: Sie bleibt durchsuchbar und
|
||||
überlebt das Umsortieren, worauf die Abhängigkeiten `:#…` bauen. **An der
|
||||
Notation ändert sich dadurch nichts** — der Parser sieht nie eine Kurzform,
|
||||
und `llms.md` (§13) bleibt unberührt. Angefasst wird nur die Zeile, in der auch
|
||||
getippt wurde; Abhängigkeiten (`:#…`) und der Beschreibungsteil hinter `---`
|
||||
bleiben außen vor. Siehe D55.
|
||||
|
||||
### 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
|
||||
|
||||
Reference in New Issue
Block a user