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
@@ -67,6 +67,7 @@
|
||||
- [^] #ed.docs.restore: Restore a shipped document from the menu (XS)
|
||||
- [^] #ed.jump: Jump between diagram and text (S)
|
||||
- [^] #ed.lineno: Line numbers in the text editor (XS) %% the warnings name them
|
||||
- [x] #ed.shortid: Type #.kc under #prod-stage, get #prod-stage.kc (XS) %% an input aid, not notation
|
||||
- [^] #ed.lineno.tip: The warning is the tooltip of its number (XS) %% no hunting in the list
|
||||
- [^] #ed.fold: Collapsible subtrees (M)
|
||||
- [^] #ed.fold.marks: Initial state from the text: > collapses, < re-opens (S)
|
||||
@@ -492,6 +493,11 @@
|
||||
word for word as it stands below the diagram. Otherwise you read the number,
|
||||
then hunt for it in the list.
|
||||
|
||||
#ed.shortid
|
||||
The dotted prefix repeats what the indentation already says. Resolved while
|
||||
typing, not while parsing: the file keeps the full id, so it stays greppable
|
||||
and survives re-ordering, which is what the :#... references rely on.
|
||||
|
||||
#ed.fold
|
||||
A large plan is unreadable unless parts of it can be put away. Folding is
|
||||
view only — warnings from folded subtrees are still reported, because they
|
||||
|
||||
Reference in New Issue
Block a user