Phase 5: Editor und inkrementellen Compiler implementieren und archivieren
This commit is contained in:
@@ -30,7 +30,7 @@ Besondere Risiken sind unverändert ausgeführte alte Kompilate nach einer Text
|
||||
|---|---|---|---|
|
||||
| 01 | [Projekt- und Dokumentmodell](proposal.md) | keine | Gemeinsame Lade-/Speicheraktionen, bearbeitete Quellen, MAK und Startup-Metadaten |
|
||||
| 02 | [IDE-Rahmen](../2026-09-06-phase-5-02-ide-rahmen/proposal.md) | 01 | Terminalbesitz, Menüs, Fenster, Dialoge, Optionen und Eingabetestpfad |
|
||||
| 03 | [Editor und inkrementelle Übersetzung](../../phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md) | 01, 02 | Vollständige Codebearbeitung, Diagnose und schneller aktueller Compile |
|
||||
| 03 | [Editor und inkrementelle Übersetzung](../2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md) | 01, 02 | Vollständige Codebearbeitung, Diagnose und schneller aktueller Compile |
|
||||
| 04 | [Ausführung und Output](../../phase-5-04-ausfuehrung-und-output/proposal.md) | 01, 02, 03 | Fortsetzbare VM-Sitzung, Reset, Ausgabe, Shell und Textdruck |
|
||||
| 05 | [Formular-Designer](../../phase-5-05-formular-designer/proposal.md) | 01, 02, 03 | Visuelles Gestalten und konsistenter Ereigniscode |
|
||||
| 06 | [Debugger und Direktfenster](../../phase-5-06-debugger-und-direktfenster/proposal.md) | 03, 04 | Quellgenaues Debuggen, Watches, Immediate, History und Fehlerhalte |
|
||||
|
||||
@@ -23,6 +23,6 @@ Keine bestehenden Anforderungen werden ersetzt; die neue IDE-Fähigkeit ergänzt
|
||||
|
||||
tb-ide-Editor, tb-frontend Lexer/Parser/Sema und tb-vm Projektcompiler/Linker; bestehende Compile-Budget-Tests und docs/tbvm-design.md. Kein zweiter BASIC-Parser und kein Optimizer.
|
||||
|
||||
**Abhängigkeiten:** [phase-5-01-projekt-und-dokumentmodell](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/proposal.md), [phase-5-02-ide-rahmen](../archive/2026-09-06-phase-5-02-ide-rahmen/proposal.md).
|
||||
**Abhängigkeiten:** [phase-5-01-projekt-und-dokumentmodell](../2026-09-06-phase-5-01-projekt-und-dokumentmodell/proposal.md), [phase-5-02-ide-rahmen](../2026-09-06-phase-5-02-ide-rahmen/proposal.md).
|
||||
|
||||
**Gesamtplanung:** [Phase-5-Übersicht](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/phase-5-uebersicht.md). Die Nummern geben eine gültige Umsetzungsreihenfolge an; OpenSpec erzwingt Change-Abhängigkeiten nicht automatisch.
|
||||
**Gesamtplanung:** [Phase-5-Übersicht](../2026-09-06-phase-5-01-projekt-und-dokumentmodell/phase-5-uebersicht.md). Die Nummern geben eine gültige Umsetzungsreihenfolge an; OpenSpec erzwingt Change-Abhängigkeiten nicht automatisch.
|
||||
@@ -1,26 +1,26 @@
|
||||
## 1. Editor und Navigation
|
||||
|
||||
- [ ] 1.1 Den Texteditor auf dem Dokumentmodell aus 01 integrieren; Tests mit Unicode, Tabs, Zeilenumbrüchen, Einfügen/Überschreiben, Auswahl und Undo belegen korrekten Text und Cursor.
|
||||
- [ ] 1.2 CUA-, Wort-/Seitennavigation, Ctrl+Y und die spezifizierten WordStar-Chords/Lesezeichen anbinden; eingespeiste Tastenfolgen prüfen auch abgebrochene Chords und Mehrfenster-Kopieren.
|
||||
- [ ] 1.3 Find, Selected Text, F3 und Change mit Einzel-/Gesamtersetzung implementieren; Tests prüfen Wortgrenzen, Suchrichtung, Großschreibung, Rücksprung, leere Ersetzung und gemeinsames Undo.
|
||||
- [ ] 1.4 Prozedurauswahl und Shift+F2/Ctrl+F2 sowie Include-Ansichten umsetzen; Navigationstests treffen physische Dateien und verhindern Speichern einer Expansion als Ursprungsdatei.
|
||||
- [x] 1.1 Den Texteditor auf dem Dokumentmodell aus 01 integrieren; Tests mit Unicode, Tabs, Zeilenumbrüchen, Einfügen/Überschreiben, Auswahl und Undo belegen korrekten Text und Cursor.
|
||||
- [x] 1.2 CUA-, Wort-/Seitennavigation, Ctrl+Y und die spezifizierten WordStar-Chords/Lesezeichen anbinden; eingespeiste Tastenfolgen prüfen auch abgebrochene Chords und Mehrfenster-Kopieren.
|
||||
- [x] 1.3 Find, Selected Text, F3 und Change mit Einzel-/Gesamtersetzung implementieren; Tests prüfen Wortgrenzen, Suchrichtung, Großschreibung, Rücksprung, leere Ersetzung und gemeinsames Undo.
|
||||
- [x] 1.4 Prozedurauswahl und Shift+F2/Ctrl+F2 sowie Include-Ansichten umsetzen; Navigationstests treffen physische Dateien und verhindern Speichern einer Expansion als Ursprungsdatei.
|
||||
|
||||
## 2. Prüfung und Quelltextpflege
|
||||
|
||||
- [ ] 2.1 Token-/Spanneninformationen des vorhandenen Frontends für semantikerhaltende Zeilennormalisierung verwenden; Tests belegen Idempotenz und erhalten Strings, Kommentare, DATA, Bezeichner und Typ-Suffixe.
|
||||
- [ ] 2.2 Line Leave an Syntax Checking und Diagnoseanzeige anbinden; Eingabetests unterscheiden unfertige SUB-/IF-Blöcke von echten Fehlern und belegen das deaktivierte Verhalten.
|
||||
- [ ] 2.3 New Sub/New Function mit Namenprüfung und wirksamer DEFtype-Übernahme implementieren; erzeugte Quellen müssen über den bestehenden Compiler gültig sein.
|
||||
- [ ] 2.4 DECLARE-Erzeugung/-Aktualisierung in den gemeinsamen Speicherhook aufnehmen; Tests belegen wiederholtes Speichern ohne Änderungen, Handdeklarationskonflikte, unverändertes Speichern unfertiger Entwürfe und denselben Weg für FRM-Code.
|
||||
- [x] 2.1 Token-/Spanneninformationen des vorhandenen Frontends für semantikerhaltende Zeilennormalisierung verwenden; Tests belegen Idempotenz und erhalten Strings, Kommentare, DATA, Bezeichner und Typ-Suffixe.
|
||||
- [x] 2.2 Line Leave an Syntax Checking und Diagnoseanzeige anbinden; Eingabetests unterscheiden unfertige SUB-/IF-Blöcke von echten Fehlern und belegen das deaktivierte Verhalten.
|
||||
- [x] 2.3 New Sub/New Function mit Namenprüfung und wirksamer DEFtype-Übernahme implementieren; erzeugte Quellen müssen über den bestehenden Compiler gültig sein.
|
||||
- [x] 2.4 DECLARE-Erzeugung/-Aktualisierung in den gemeinsamen Speicherhook aufnehmen; Tests belegen wiederholtes Speichern ohne Änderungen, Handdeklarationskonflikte, unverändertes Speichern unfertiger Entwürfe und denselben Weg für FRM-Code.
|
||||
|
||||
## 3. Inkrementeller Compiler
|
||||
|
||||
- [ ] 3.1 Den Projektcompiler in wiederverwendbare Parse-/Modulcompile-/Link-Schritte zerlegen und den bisherigen Vollcompile darüber erhalten; bestehende Compiler-/CLI-Regressionen bleiben grün.
|
||||
- [ ] 3.2 Modulcache mit Dokument-/Include-Revisionssatz und Import-/Exportsignaturen einführen; Zählertests belegen Wiederverwendung unveränderter Module nach privater Rumpfänderung.
|
||||
- [ ] 3.3 Transitive Invalidierung für CONST, TYPE, COMMON, DECLARE und Includes umsetzen; Differentialtests mit Änderungen und gelöschten Symbolen liefern dieselben Diagnosen wie ein frischer Compile.
|
||||
- [ ] 3.4 Forms-Struktur, Modulreihenfolge und sämtliche beim Link remappten Identitäten berücksichtigen; Tests vergleichen umgeordnete Module, Control-Arrays, DATA und Prozedurverweise mit dem Vollcompile.
|
||||
- [ ] 3.5 Fehlerzustände und Ergebnisrevisionen an den Editor anbinden; ein Test mit gültig→fehlerhaft→gültig belegt, dass niemals ein veraltetes Ergebnis als aktueller Stand startet.
|
||||
- [x] 3.1 Den Projektcompiler in wiederverwendbare Parse-/Modulcompile-/Link-Schritte zerlegen und den bisherigen Vollcompile darüber erhalten; bestehende Compiler-/CLI-Regressionen bleiben grün.
|
||||
- [x] 3.2 Modulcache mit Dokument-/Include-Revisionssatz und Import-/Exportsignaturen einführen; Zählertests belegen Wiederverwendung unveränderter Module nach privater Rumpfänderung.
|
||||
- [x] 3.3 Transitive Invalidierung für CONST, TYPE, COMMON, DECLARE und Includes umsetzen; Differentialtests mit Änderungen und gelöschten Symbolen liefern dieselben Diagnosen wie ein frischer Compile.
|
||||
- [x] 3.4 Forms-Struktur, Modulreihenfolge und sämtliche beim Link remappten Identitäten berücksichtigen; Tests vergleichen umgeordnete Module, Control-Arrays, DATA und Prozedurverweise mit dem Vollcompile.
|
||||
- [x] 3.5 Fehlerzustände und Ergebnisrevisionen an den Editor anbinden; ein Test mit gültig→fehlerhaft→gültig belegt, dass niemals ein veraltetes Ergebnis als aktueller Stand startet.
|
||||
|
||||
## 4. Leistung und Abnahme
|
||||
|
||||
- [ ] 4.1 Die vorhandenen Release-Compile-Benchmarks um Änderungen mit Cache einschließlich Invalidierung/Link ergänzen; dokumentierte Messungen prüfen Einzelmodul unter 50 ms und Referenzprojekt unter 1 s sowie tatsächlich neu übersetzte Module.
|
||||
- [ ] 4.2 Editor-/Compilerbedienung und Cachegrenzen in docs erläutern und alle Szenarien in verification.md zuordnen; relevante Frontend-, VM-, CLI- und IDE-Tests sowie Formatprüfung müssen bestehen.
|
||||
- [x] 4.1 Die vorhandenen Release-Compile-Benchmarks um Änderungen mit Cache einschließlich Invalidierung/Link ergänzen; dokumentierte Messungen prüfen Einzelmodul unter 50 ms und Referenzprojekt unter 1 s sowie tatsächlich neu übersetzte Module.
|
||||
- [x] 4.2 Editor-/Compilerbedienung und Cachegrenzen in docs erläutern und alle Szenarien in verification.md zuordnen; relevante Frontend-, VM-, CLI- und IDE-Tests sowie Formatprüfung müssen bestehen.
|
||||
@@ -0,0 +1,119 @@
|
||||
# Verifizierung: phase-5-03-editor-und-inkrementelle-uebersetzung
|
||||
|
||||
Stand: 2026-09-06. Abgleich gegen proposal.md, design.md, tasks.md und
|
||||
specs/ide-editor/spec.md; Implementierung und Korrekturen im Arbeitsverzeichnis.
|
||||
|
||||
| Dimension | Ergebnis |
|
||||
| --- | --- |
|
||||
| Vollständigkeit | 15/15 Aufgaben, 7/7 Anforderungen, 10/10 Szenarien |
|
||||
| Korrektheit | Ereignistests, Compiler-Differentialtests und Release-Messung bestanden |
|
||||
| Kohärenz | Gemeinsames Dokumentmodell, regulärer Lexer/Parser/Sema und bestehender Linker; keine neue Abhängigkeit |
|
||||
| Offene Befunde | 0 CRITICAL, 0 WARNING, 0 SUGGESTION |
|
||||
|
||||
## Anforderungs- und Szenariozuordnung
|
||||
|
||||
Alle Code- und Testpfade sind relativ zur Repositorywurzel angegeben.
|
||||
|
||||
| Anforderung / Szenario | Umsetzung | Nachweis |
|
||||
| --- | --- | --- |
|
||||
| Editorbewegung und Änderungen / Zusammengesetzte Bearbeitung | `tb-ide/src/editor.rs`: editor_key, editor_insert, editor_scroll; `documents.rs`: View, replace_ranges, undo; TerminalGuard aktiviert Bracketed Paste | `crates/tb-ide/tests/editor.rs`: cua_unicode_overwrite_wordstar_and_shared_undo; crlf_navigation_word_boundaries_readonly_and_normalization_keep_views |
|
||||
| Suchen und Ersetzen / Leere und verkürzende Ersetzung | editor.rs: Search, matches, find_next, replace_matches; gemeinsame Dialogfelder und Dispatcher | search_scope_direction_wrap_and_shortening_replace_all: Richtung, Wortgrenzen, Case, Auswahlbereich, Ctrl+Backslash, F3-Rücksprung, leere/verkürzende Ersetzung und Undo |
|
||||
| Zeilenprüfung und Normalisierung / Nutztext unverändert | `tb-frontend/src/editing.rs`: normalization_edits mit Keywordpositionen und Tokenvergleich; editor.rs: line_leave | `crates/tb-frontend/tests/editing.rs`: normalization_protects_tokens_and_is_idempotent; IDE-Zeilen-/Mehransichtstest |
|
||||
| Zeilenprüfung und Normalisierung / Unvollständiger Block | Parser markiert ausschließlich fehlende Blockabschlüsse am EOF als unvollständig; keine zweite Fragmentgrammatik | incomplete_is_parser_context_not_a_second_grammar; line_leave_incomplete_invalid_disabled_and_current_revisions |
|
||||
| Prozeduren und Deklarationen / Wiederholtes Speichern | new_procedure, Signaturen mit DEFtype-Kontext; gemeinsamer Project::save_file-Hook mit Projektauflösung; Save Project benutzt denselben Hook | declaration_maintenance_and_procedure_generation_are_transactional; deftype_context_does_not_leak_from_another_procedure; procedures_and_shared_save_hook_preserve_drafts_and_frm_code; external_include_revision_and_project_context_declarations |
|
||||
| Prozeduren und Deklarationen / Unfertigen Entwurf speichern | Bei Parser-/Compilefehlern keine teilweise DECLARE-Pflege, unveränderter Entwurf mit begründeter Meldung; Handdeklarationen bleiben erhalten | Frontend-Test prüft unvollständigen Block, Syntaxfehler und konfliktbehaftete Handdeklaration; IDE-Test speichert und liest den Entwurf sowie FRM-Code erneut |
|
||||
| Include-Ansichten und Diagnosen / Gleichnamige Quellzeilen | Included File öffnet das physische Dokument; Included Lines ist markiert und schreibgeschützt; goto_diagnostic verwendet Datei, physische Zeile und Spalte einschließlich FRM-Offset | includes_and_diagnostic_selection_use_original_physical_files: zwei Includes mit Fehlern auf Zeile 1; zusätzlicher Schreibschutz-/Scrolltest |
|
||||
| Korrekte inkrementelle Übersetzung / Private Änderung | ProjectCompiler cached Parsing und unverknüpfte Produkte; Importvertragsvergleich ignoriert verschobene fremde Prozedurzeilen | `crates/tb-vm/tests/incremental.rs`: cached_private_edits_parse_and_compile_only_changed_modules; Zähler prüfen auch private Änderungen mit zusätzlicher Zeile vor einer weiteren Prozedur |
|
||||
| Korrekte inkrementelle Übersetzung / Transitive Änderung | Bestehende Exportauflösung faltet Konstanten transitiv; Schlüssel enthalten benötigte importierte Konstanten, TYPE-/Prozedurtabellen und Forms-Katalog; COMMON wird frisch gelinkt | constants_types_common_removed_symbols_and_order_match_full_compiler; unused_constants_do_not_invalidate_independent_units_and_declare_changes_do; includes_source_ids_data_and_forms_relink_without_patching_old_products |
|
||||
| Nachweisbarer Instant Compile / Reproduzierbare Messung | `crates/tb-vm/benches/compile.rs`: bestehender Referenzgenerator, Vollcompile und Cacheänderungen einschließlich Auflösung/Link und Modulzählern | Release-Messung unten und in docs/tbvm-design.md |
|
||||
|
||||
Die Kürzel `tb-ide/src` und `tb-frontend/src` in der Tabelle stehen jeweils unter
|
||||
`crates/`. Tests ohne wiederholten Pfad stehen in den genannten editing.rs-
|
||||
beziehungsweise editor.rs-Testdateien.
|
||||
|
||||
## Ergänzende Korrektheitsprüfung
|
||||
|
||||
- Differentialtests vergleichen **vollständige TBC-Bytes** erfolgreicher Cache-
|
||||
und Vollcompiles. Damit stimmen Instruktionen, Tabellen und Quellzuordnung
|
||||
überein; Fehlerfälle vergleichen die vollständigen formatierten Diagnosen.
|
||||
- Abgedeckt sind private Änderungen, Konstante→transitiver Verbraucher,
|
||||
gelöschte Symbole, TYPE-Layout, COMMON-Typ, DECLARE-Signatur, Modulreihenfolge,
|
||||
zusätzliche Includedatei/Quell-ID, DATA, Strings, Prozedurverweise sowie der
|
||||
Wechsel eines Controls zum Array und geänderte Index-Anfangswerte.
|
||||
- Gültig→fehlerhaft→gültig liefert niemals einen alten Erfolg als aktuellen
|
||||
Stand. Kompilate **und Diagnosen** sind revisionsgebunden. Noch ungeöffnete
|
||||
Includes werden frisch gelesen; bereits geöffnete Puffer bleiben gemäß
|
||||
Dokumentmodell maßgeblich gegenüber externen Dateiänderungen.
|
||||
- Copy/Paste benutzen die interne Zwischenablage zwischen IDE-Fenstern.
|
||||
CRLF, Unicode, Tabs und breite Zeichen werden über Eingabeereignisse geprüft;
|
||||
TestBackend prüft die sichtbare Auswahl. Normalisierung und Speicherpflege
|
||||
erhalten Cursor und Auswahl anderer Ansichten.
|
||||
- Die bestehende Dokument-/IDE-Regression bleibt erhalten. Angepasste Erwartungen
|
||||
betreffen die jetzt verfügbare Copy-Funktion, den zusätzlichen Diagnostics-
|
||||
Menüpunkt und neue DECLARE-Zeilen beim Speichern. Der reine Fenstertest schaltet
|
||||
Syntax Checking für seinen absichtlich ungültigen Text `abc` aus; die neuen
|
||||
Editor-Tests prüfen aktivierte Prüfung und Fehlerdialoge ausdrücklich.
|
||||
|
||||
## Behobene Befunde aus den Prüfrunden
|
||||
|
||||
1. DECLARE-Pflege zunächst ohne Projektkontext: auf tatsächliche Include-,
|
||||
Modul- und Forms-Auflösung im gemeinsamen Speicherhook umgestellt. Generierte
|
||||
Deklarationen stehen nach TYPE-/DEFtype-Angaben vor den Prozeduren.
|
||||
2. Positionsverschiebung bei Normalisierung/Speichern: disjunkte Textänderungen
|
||||
und gemeinsames Positionsremapping erhalten Cursor, Auswahl und Lesezeichen;
|
||||
Undo bleibt eine Dokumenttransaktion.
|
||||
3. Weitere Schreibwege in Included Lines: Undo, Load Text, Prozedurerzeugung,
|
||||
Ersetzen und Editieraktionen sind dort gesperrt; Lesen/Scrollen und Rückkehr
|
||||
zum Original bleiben möglich.
|
||||
4. CRLF- und Wortbewegung: Navigation/Entfernen behandeln CRLF gemeinsam,
|
||||
Ctrl+Rechts berücksichtigt den Beginn des Wortbereichs und Auswahlkollaps
|
||||
folgt der Bewegungsrichtung.
|
||||
5. DEFtype-Kontext: keine Übernahme aus einer fremden Prozedur; Includes und der
|
||||
aktuelle Block werden berücksichtigt. Prozedurnamen werden projektweit geprüft.
|
||||
6. Cacheinvalidierung: verschobene fremde Quellzeilen sind kein Importvertrag;
|
||||
unbenutzte importierte Konstanten invalidieren unabhängige Produkte nicht.
|
||||
7. Diagnosegültigkeit: Quellenänderungen machen auch alte Diagnosen ungültig;
|
||||
die Diagnoseauswahl prüft vor der Navigation erneut den Revisionssatz.
|
||||
8. Doppeltes Menü-Mnemonic und Clippy-Hinweise beseitigt.
|
||||
|
||||
## Validierung
|
||||
|
||||
- `cargo test --workspace`: **529 bestanden, 0 fehlgeschlagen, 2 bestehende
|
||||
Tests ignoriert**. Die ignorierten Tests sind der bewusste Golden-File-Generator
|
||||
und der externe VBDOS-Korpus mit erforderlichem `TB_VBDOS_REPO`.
|
||||
- `cargo clippy -p tb-ide -p tb-vm -p tb-frontend --all-targets -- -D warnings`:
|
||||
bestanden.
|
||||
- `cargo fmt --all -- --check`, `cargo build -p tb-ide`, `git diff --check`:
|
||||
bestanden.
|
||||
- `openspec validate --all --strict --json`: alle aktiven Changes und Hauptspecs
|
||||
gültig.
|
||||
- Tatsächlicher PTY-Smoke-Test mit `target/debug/tb`, 100×30 und isoliertem
|
||||
temporären Arbeits-/Konfigurationsverzeichnis: Bracketed Paste eines
|
||||
PRINT-Statements, Enter/Line Leave und Normalisierung, Exit mit Discard;
|
||||
Exit-Code 0, identischer termios-Zustand, Cursor sichtbar, Alternate Screen und
|
||||
Bracketed Paste deaktiviert, keine Dateien erzeugt. Kein Emulator/GUI nötig.
|
||||
|
||||
Release, macOS/aarch64, Apple M5 Max, 2026-09-06:
|
||||
|
||||
| Referenz | Vollcompile | Änderung mit Cache | Neu / wiederverwendet | Bewertung |
|
||||
| --- | ---: | ---: | ---: | --- |
|
||||
| 508 Zeilen | 1,21 ms | 0,74 ms | 1 / 0 | < 50 ms erfüllt |
|
||||
| 49.760 Zeilen / 20 Module | 103 ms | 22,10 ms | 1 / 19 | < 1 s erfüllt |
|
||||
|
||||
Cachewerte sind der Median von sieben Änderungen einschließlich Invalidierung
|
||||
und Link; der bisherige Vollcompile-Harness misst das beste Einzelmodul aus zehn
|
||||
Läufen und einen Projektlauf. Die Messung umfasst 335.421 Projektinstruktionen.
|
||||
|
||||
## Bewertung
|
||||
|
||||
Keine offenen Befunde im Scope dieses Changes. Keine spezifizierte Funktion
|
||||
wurde zurückgestellt. VM-Start/Continue und die Verwendung des aktuellen
|
||||
Kompilats im Laufprozess gehören zum abhängigen Change 04; native Erzeugung
|
||||
bleibt Phase 6. Der Change ist implementiert und verifiziert.
|
||||
|
||||
## Synchronisation und Archivierung
|
||||
|
||||
Am 2026-09-06 wurden alle sieben Anforderungen und zehn Szenarien in
|
||||
`openspec/specs/ide-editor/spec.md` übernommen. Alle 18 Hauptspecs bestanden
|
||||
die strikte Validierung vor der Archivierung. Der Change wurde anschließend
|
||||
archiviert; relative Links und Abhängigkeiten der Folgechanges wurden angepasst.
|
||||
@@ -23,6 +23,6 @@ Keine bestehenden Anforderungen werden ersetzt; die neue IDE-Fähigkeit ergänzt
|
||||
|
||||
tb-ide-Sitzung, tb-vm/interp.rs, CLI-run_chain, tb-runtime/host.rs und builtins.rs sowie tb-ui/host.rs und screen.rs. Vorhandene Ereignisse, TextScreen und CLI-Ausführung bleiben die Grundlage.
|
||||
|
||||
**Abhängigkeiten:** [phase-5-01-projekt-und-dokumentmodell](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/proposal.md), [phase-5-02-ide-rahmen](../archive/2026-09-06-phase-5-02-ide-rahmen/proposal.md), [phase-5-03-editor-und-inkrementelle-uebersetzung](../phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md).
|
||||
**Abhängigkeiten:** [phase-5-01-projekt-und-dokumentmodell](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/proposal.md), [phase-5-02-ide-rahmen](../archive/2026-09-06-phase-5-02-ide-rahmen/proposal.md), [phase-5-03-editor-und-inkrementelle-uebersetzung](../archive/2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md).
|
||||
|
||||
**Gesamtplanung:** [Phase-5-Übersicht](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/phase-5-uebersicht.md). Die Nummern geben eine gültige Umsetzungsreihenfolge an; OpenSpec erzwingt Change-Abhängigkeiten nicht automatisch.
|
||||
|
||||
@@ -23,6 +23,6 @@ Keine bestehenden Anforderungen werden ersetzt; die neue IDE-Fähigkeit ergänzt
|
||||
|
||||
tb-ide-Designer, vorhandenes tb-ui::frm::FormFile, FormsModel und tb-frontend-Forms-Metadaten. Keine zweite FRM-Implementierung und keine Programmausführung als Designvorschau.
|
||||
|
||||
**Abhängigkeiten:** [phase-5-01-projekt-und-dokumentmodell](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/proposal.md), [phase-5-02-ide-rahmen](../archive/2026-09-06-phase-5-02-ide-rahmen/proposal.md), [phase-5-03-editor-und-inkrementelle-uebersetzung](../phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md).
|
||||
**Abhängigkeiten:** [phase-5-01-projekt-und-dokumentmodell](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/proposal.md), [phase-5-02-ide-rahmen](../archive/2026-09-06-phase-5-02-ide-rahmen/proposal.md), [phase-5-03-editor-und-inkrementelle-uebersetzung](../archive/2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md).
|
||||
|
||||
**Gesamtplanung:** [Phase-5-Übersicht](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/phase-5-uebersicht.md). Die Nummern geben eine gültige Umsetzungsreihenfolge an; OpenSpec erzwingt Change-Abhängigkeiten nicht automatisch.
|
||||
|
||||
@@ -23,6 +23,6 @@ Keine bestehenden Anforderungen werden ersetzt; die neue IDE-Fähigkeit ergänzt
|
||||
|
||||
tb-vm/interp.rs, Debug-Quellorte und Frontend/Codegen für Ausdrücke und Direktfenster; tb-ide-Debugfenster. Keine zweite Auswertungsmaschine, kein Zeitreise-Debugger.
|
||||
|
||||
**Abhängigkeiten:** [phase-5-03-editor-und-inkrementelle-uebersetzung](../phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md), [phase-5-04-ausfuehrung-und-output](../phase-5-04-ausfuehrung-und-output/proposal.md).
|
||||
**Abhängigkeiten:** [phase-5-03-editor-und-inkrementelle-uebersetzung](../archive/2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md), [phase-5-04-ausfuehrung-und-output](../phase-5-04-ausfuehrung-und-output/proposal.md).
|
||||
|
||||
**Gesamtplanung:** [Phase-5-Übersicht](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/phase-5-uebersicht.md). Die Nummern geben eine gültige Umsetzungsreihenfolge an; OpenSpec erzwingt Change-Abhängigkeiten nicht automatisch.
|
||||
|
||||
@@ -23,6 +23,6 @@ Keine bestehenden Anforderungen werden ersetzt; die neue IDE-Fähigkeit ergänzt
|
||||
|
||||
tb-ide-Hilfe, docs/ und Paketierung von tb; nutzt Fensterverwaltung und Editor-Kontext. Kein Webdienst und keine eigene zweite Dokumentationssammlung.
|
||||
|
||||
**Abhängigkeiten:** [phase-5-02-ide-rahmen](../archive/2026-09-06-phase-5-02-ide-rahmen/proposal.md), [phase-5-03-editor-und-inkrementelle-uebersetzung](../phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md).
|
||||
**Abhängigkeiten:** [phase-5-02-ide-rahmen](../archive/2026-09-06-phase-5-02-ide-rahmen/proposal.md), [phase-5-03-editor-und-inkrementelle-uebersetzung](../archive/2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md).
|
||||
|
||||
**Gesamtplanung:** [Phase-5-Übersicht](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/phase-5-uebersicht.md). Die Nummern geben eine gültige Umsetzungsreihenfolge an; OpenSpec erzwingt Change-Abhängigkeiten nicht automatisch.
|
||||
|
||||
@@ -24,6 +24,6 @@ Keine bestehenden Anforderungen werden ersetzt; die neue IDE-Fähigkeit ergänzt
|
||||
|
||||
tb-ide-Integrationstests, vorhandene CLI-/VM-/Forms-Tests und Benchmarks, docs/ sowie PLAN.md. Featureimplementierung bleibt jeweils beim verantwortlichen Change; dieser Change schließt Integration und Nachweise.
|
||||
|
||||
**Abhängigkeiten:** [phase-5-01-projekt-und-dokumentmodell](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/proposal.md), [phase-5-02-ide-rahmen](../archive/2026-09-06-phase-5-02-ide-rahmen/proposal.md), [phase-5-03-editor-und-inkrementelle-uebersetzung](../phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md), [phase-5-04-ausfuehrung-und-output](../phase-5-04-ausfuehrung-und-output/proposal.md), [phase-5-05-formular-designer](../phase-5-05-formular-designer/proposal.md), [phase-5-06-debugger-und-direktfenster](../phase-5-06-debugger-und-direktfenster/proposal.md), [phase-5-07-hilfesystem](../phase-5-07-hilfesystem/proposal.md).
|
||||
**Abhängigkeiten:** [phase-5-01-projekt-und-dokumentmodell](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/proposal.md), [phase-5-02-ide-rahmen](../archive/2026-09-06-phase-5-02-ide-rahmen/proposal.md), [phase-5-03-editor-und-inkrementelle-uebersetzung](../archive/2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md), [phase-5-04-ausfuehrung-und-output](../phase-5-04-ausfuehrung-und-output/proposal.md), [phase-5-05-formular-designer](../phase-5-05-formular-designer/proposal.md), [phase-5-06-debugger-und-direktfenster](../phase-5-06-debugger-und-direktfenster/proposal.md), [phase-5-07-hilfesystem](../phase-5-07-hilfesystem/proposal.md).
|
||||
|
||||
**Gesamtplanung:** [Phase-5-Übersicht](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/phase-5-uebersicht.md). Die Nummern geben eine gültige Umsetzungsreihenfolge an; OpenSpec erzwingt Change-Abhängigkeiten nicht automatisch.
|
||||
|
||||
Reference in New Issue
Block a user