Phase 5: IDE-Rahmen implementieren, synchronisieren und archivieren
This commit is contained in:
@@ -29,7 +29,7 @@ Besondere Risiken sind unverändert ausgeführte alte Kompilate nach einer Text
|
||||
| Nr. | Change | Direkt benötigte Vorgänger | Ergebnis |
|
||||
|---|---|---|---|
|
||||
| 01 | [Projekt- und Dokumentmodell](proposal.md) | keine | Gemeinsame Lade-/Speicheraktionen, bearbeitete Quellen, MAK und Startup-Metadaten |
|
||||
| 02 | [IDE-Rahmen](../../phase-5-02-ide-rahmen/proposal.md) | 01 | Terminalbesitz, Menüs, Fenster, Dialoge, Optionen und Eingabetestpfad |
|
||||
| 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 |
|
||||
| 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 |
|
||||
|
||||
@@ -24,6 +24,6 @@ Keine bestehenden Anforderungen werden ersetzt; die neue IDE-Fähigkeit ergänzt
|
||||
|
||||
crates/tb-ide/src/main.rs sowie IDE-interne App-, Fenster- und Dialogmodule; vorhandenes ratatui/crossterm und tb-ui-Rendering. Der BASIC-Tastenpfad bleibt von IDE-Kürzeln getrennt.
|
||||
|
||||
**Abhängigkeiten:** [phase-5-01-projekt-und-dokumentmodell](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/proposal.md).
|
||||
**Abhängigkeiten:** [phase-5-01-projekt-und-dokumentmodell](../2026-09-06-phase-5-01-projekt-und-dokumentmodell/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,28 +1,28 @@
|
||||
## 1. Terminalrahmen und Befehle
|
||||
|
||||
- [ ] 1.1 Den tb-Platzhalter durch App-Zustand, Renderloop und einen Terminal-Guard ersetzen; headless Starttest zeigt Untitled-Code, Project Window und nicht blockierende Begrüßung, Guard-Test belegt Cleanup auch im Fehlerpfad.
|
||||
- [ ] 1.2 Die zwei Menüsätze und Befehls-/Verfügbarkeitstabelle aus der Referenz erfassen; ein Tabellenabgleich bestätigt Reihenfolge, Mnemonics und vollständige Einträge.
|
||||
- [ ] 1.3 Den Dispatcher für Alt/F11, Menüs, Dialoge, Fenster/Modi und spätere BASIC-Zustellung implementieren; Eventtests belegen Esc-Abbruch und eindeutige Verarbeitung von F2/F10/F11/F12/Ctrl+C.
|
||||
- [ ] 1.4 Dialoggrundfunktionen für Auswahl, Texteingabe, Dateiwahl und Bestätigungen mit den Aktionen aus 01 verbinden; Eventtests belegen Fokusbindung, Abbrechen und Erhalt geänderter Dokumente.
|
||||
- [x] 1.1 Den tb-Platzhalter durch App-Zustand, Renderloop und einen Terminal-Guard ersetzen; headless Starttest zeigt Untitled-Code, Project Window und nicht blockierende Begrüßung, Guard-Test belegt Cleanup auch im Fehlerpfad.
|
||||
- [x] 1.2 Die zwei Menüsätze und Befehls-/Verfügbarkeitstabelle aus der Referenz erfassen; ein Tabellenabgleich bestätigt Reihenfolge, Mnemonics und vollständige Einträge.
|
||||
- [x] 1.3 Den Dispatcher für Alt/F11, Menüs, Dialoge, Fenster/Modi und spätere BASIC-Zustellung implementieren; Eventtests belegen Esc-Abbruch und eindeutige Verarbeitung von F2/F10/F11/F12/Ctrl+C.
|
||||
- [x] 1.4 Dialoggrundfunktionen für Auswahl, Texteingabe, Dateiwahl und Bestätigungen mit den Aktionen aus 01 verbinden; Eventtests belegen Fokusbindung, Abbrechen und Erhalt geänderter Dokumente.
|
||||
|
||||
## 2. Fensterverwaltung und Darstellung
|
||||
|
||||
- [ ] 2.1 Code-/Projekt- und Werkzeugfenster mit Control-Menü, Rahmen, Scrollbalken und eigener Geometrie implementieren; TestBackend-Snapshots prüfen Titelnummern, aktive Markierung und Projektschaltflächen.
|
||||
- [ ] 2.2 New Window, Arrange All und sämtliche F6-/Ctrl-Fensterbefehle aus der Spec anbinden; eine Eingabefolge belegt Wechseln, Schließen, Bewegen, Größe, Minimieren, Maximieren und Wiederherstellen ohne Dokumentverlust.
|
||||
- [ ] 2.3 Das referenzierte DOS-Farbschema und klickbare Statuskürzel mit Zeile/Spalte darstellen; Snapshots und Klicktests belegen Farben, Position und dieselbe Befehlswirkung wie die Tastatur.
|
||||
- [ ] 2.4 Terminal-Resize und Mindestgröße 80×25 behandeln; Tests schrumpfen unter die Grenze und zurück und prüfen erreichbare Fenster, erhaltenen Fokus und Dokumente.
|
||||
- [ ] 2.5 Den Designer-Modus mit Properties-Bar-Platz und ohne Statuszeile anbinden; ein Moduswechseltest erhält das Dokument und zeigt den richtigen Menüsatz.
|
||||
- [x] 2.1 Code-/Projekt- und Werkzeugfenster mit Control-Menü, Rahmen, Scrollbalken und eigener Geometrie implementieren; TestBackend-Snapshots prüfen Titelnummern, aktive Markierung und Projektschaltflächen.
|
||||
- [x] 2.2 New Window, Arrange All und sämtliche F6-/Ctrl-Fensterbefehle aus der Spec anbinden; eine Eingabefolge belegt Wechseln, Schließen, Bewegen, Größe, Minimieren, Maximieren und Wiederherstellen ohne Dokumentverlust.
|
||||
- [x] 2.3 Das referenzierte DOS-Farbschema und klickbare Statuskürzel mit Zeile/Spalte darstellen; Snapshots und Klicktests belegen Farben, Position und dieselbe Befehlswirkung wie die Tastatur.
|
||||
- [x] 2.4 Terminal-Resize und Mindestgröße 80×25 behandeln; Tests schrumpfen unter die Grenze und zurück und prüfen erreichbare Fenster, erhaltenen Fokus und Dokumente.
|
||||
- [x] 2.5 Den Designer-Modus mit Properties-Bar-Platz und ohne Statuszeile anbinden; ein Moduswechseltest erhält das Dokument und zeigt den richtigen Menüsatz.
|
||||
|
||||
## 3. Native Exporte vorbereiten
|
||||
|
||||
- [ ] 3.1 Make EXE File und Make Library als vollständige Dialoge mit Zielsystem/-architektur und Ausgabepfad implementieren; Menü-/Tastaturtests öffnen beide Dialoge und bearbeiten alle Angaben.
|
||||
- [ ] 3.2 Eingabeprüfung und Überschreibentscheidung an die geschützten Dateiaktionen aus 01 anbinden; Tests prüfen leere/ungültige Pfade, bestehende Ziele, Abbrechen und erhaltene übrige Angaben.
|
||||
- [ ] 3.3 Konkrete Exportaufträge und Ergebnis-/Statusdarstellung vorbereiten, im Produktionspfad bis Phase 6 nur Erzeugen sperren; kontrollierte Rückmeldungen prüfen Laufend/Erfolg/Fehler/Abbruch und ein realer Phase-5-Aufruf erzeugt keine Datei oder falsche Erfolgsmeldung.
|
||||
- [ ] 3.4 Export-UI, native Zielartefakte und die Phase-6-Backend-Grenze in der Bedienungsdokumentation festhalten; Abgleich mit den expliziten PLAN-Punkten bestätigt, dass TBC nicht als natives Executable oder Library angeboten wird.
|
||||
- [x] 3.1 Make EXE File und Make Library als vollständige Dialoge mit Zielsystem/-architektur und Ausgabepfad implementieren; Menü-/Tastaturtests öffnen beide Dialoge und bearbeiten alle Angaben.
|
||||
- [x] 3.2 Eingabeprüfung und Überschreibentscheidung an die geschützten Dateiaktionen aus 01 anbinden; Tests prüfen leere/ungültige Pfade, bestehende Ziele, Abbrechen und erhaltene übrige Angaben.
|
||||
- [x] 3.3 Konkrete Exportaufträge und Ergebnis-/Statusdarstellung vorbereiten, im Produktionspfad bis Phase 6 nur Erzeugen sperren; kontrollierte Rückmeldungen prüfen Laufend/Erfolg/Fehler/Abbruch und ein realer Phase-5-Aufruf erzeugt keine Datei oder falsche Erfolgsmeldung.
|
||||
- [x] 3.4 Export-UI, native Zielartefakte und die Phase-6-Backend-Grenze in der Bedienungsdokumentation festhalten; Abgleich mit den expliziten PLAN-Punkten bestätigt, dass TBC nicht als natives Executable oder Library angeboten wird.
|
||||
|
||||
## 4. Optionen und Integrationsübergabe
|
||||
|
||||
- [ ] 4.1 Display-, Pfad-, Rechtsklick- und Syntax-Checking-Dialoge implementieren und benutzerbezogen speichern; Tests prüfen geänderte Farben/Tabweite, Include-Fallback, Defaults und Neustart aus anderem Arbeitsverzeichnis.
|
||||
- [ ] 4.2 Ungültige Konfiguration und nicht schreibbare Optionsdatei diagnostizieren; Tests erhalten bedienbare Defaults beziehungsweise ungespeicherte Einstellungen ohne falsche Erfolgsmeldung.
|
||||
- [ ] 4.3 Den headless App-Testpfad für nachfolgende Changes verfügbar machen und Fachbefehle bis zu ihrer Umsetzung mit erklärter Verfügbarkeit versehen; die Abdeckungstabelle unterscheidet Rahmenaktion und noch ausstehende Featureaktion.
|
||||
- [ ] 4.4 Bedienung und Referenzdefaults dokumentieren und alle Oberflächen-Spec-Szenarien in verification.md zuordnen; cargo test -p tb-ide und Formatprüfung müssen bestehen.
|
||||
- [x] 4.1 Display-, Pfad-, Rechtsklick- und Syntax-Checking-Dialoge implementieren und benutzerbezogen speichern; Tests prüfen geänderte Farben/Tabweite, Include-Fallback, Defaults und Neustart aus anderem Arbeitsverzeichnis.
|
||||
- [x] 4.2 Ungültige Konfiguration und nicht schreibbare Optionsdatei diagnostizieren; Tests erhalten bedienbare Defaults beziehungsweise ungespeicherte Einstellungen ohne falsche Erfolgsmeldung.
|
||||
- [x] 4.3 Den headless App-Testpfad für nachfolgende Changes verfügbar machen und Fachbefehle bis zu ihrer Umsetzung mit erklärter Verfügbarkeit versehen; die Abdeckungstabelle unterscheidet Rahmenaktion und noch ausstehende Featureaktion.
|
||||
- [x] 4.4 Bedienung und Referenzdefaults dokumentieren und alle Oberflächen-Spec-Szenarien in verification.md zuordnen; cargo test -p tb-ide und Formatprüfung müssen bestehen.
|
||||
@@ -0,0 +1,142 @@
|
||||
# Verifizierung: Phase 5 – IDE-Rahmen
|
||||
|
||||
Stand: 2026-09-06. Basis: `687fc230ecf84963e517fa78033f0fdc86554744` plus
|
||||
Implementierung dieses Changes. Geprüft wurden Proposal, Design, alle
|
||||
Tasks, die Delta-Spec `ide-oberflaeche` und `docs/ide-referenz.md` gegen
|
||||
Code, Ereignisfolgen, gerenderte TestBackend-Puffer und den Terminalprozess.
|
||||
|
||||
## Ergebnis
|
||||
|
||||
| Dimension | Ergebnis |
|
||||
| --- | --- |
|
||||
| Vollständigkeit | 17/17 Tasks, 7/7 Anforderungen und 11/11 Szenarien abgedeckt |
|
||||
| Korrektheit | Bedienung über echte crossterm-Ereignisse, Zustandsprüfungen und Ratatui-Puffer bestätigt |
|
||||
| Kohärenz | Ein Terminalbesitzer, gemeinsamer Dispatcher, Dokumentmodell aus 01 und konkrete Auftrags-/Ergebnisübergabe |
|
||||
| Offene Befunde | 0 CRITICAL, 0 WARNING, 0 SUGGESTION |
|
||||
|
||||
Die Verifizierung wurde nach den unten genannten Korrekturen wiederholt.
|
||||
Keine Prüfdimension wurde ausgelassen.
|
||||
|
||||
## Anforderungen und Implementierung
|
||||
|
||||
Alle Pfade beziehen sich auf die Repository-Wurzel.
|
||||
|
||||
| Anforderung | Implementierung |
|
||||
| --- | --- |
|
||||
| Start und zwei Arbeitsmodi | `crates/tb-ide/src/main.rs`: tatsächlicher Terminal-/Renderloop; `app.rs::App::new`, `show_document` und `render.rs::App::render`: Untitled, rechtes Project Window, Begrüßung, Environment/Designer und Properties Bar ohne Designer-Statuszeile. |
|
||||
| Einheitliche Menü- und Befehlsbedienung | `commands.rs::menus` und `Command::feature_phase`: beide vollständigen Menüsätze und Verfügbarkeit; `app.rs::{handle,key,click,shortcut,execute,availability}`: Modal → Menü → Fenster/Modus → globale Aktionen → Programmeingabe. `render.rs` verwendet dieselben Command-Werte für Statusklicks und Menüs, zeigt Mnemonics und deaktivierte Befehle mit Grund. |
|
||||
| MDI-Fenster und Fokus | `app.rs`: `Window`, `WindowKind`, `WindowState`, `cycle`, `arrange`, `rect`, `window_commands` und Fensteraktionen; Dokumentansichten aus 01 bleiben gemeinsam. `render.rs`: Titel, Control-Menü-Box, Rahmen, Scrollbalken, Min-/Max-Buttons und Projektbuttons. |
|
||||
| Farben und Statusanzeige | `options.rs::Options` und `render.rs::{dos,expanded}`: sieben UI-Elemente, DOS-Palette, Desktopzeichen und Tabweite; aktive Titel Weiß/Magenta, Code Blau, Status Schwarz/Cyan und Zeile/Spalte. Farben liegen ausschließlich im IDE-Zustand. |
|
||||
| Beständige und validierte Optionen | `options.rs::{config_path,Options::load,Options::validate,Options::save}`; Dialoge in `app.rs::submit`. Versionierte benutzerbezogene Datei, Defaults/Diagnosen, unbekannte Schlüssel, explizites Save, absolute Pfade und Include-Suchpfade an das Dokumentmodell. Speicherung verwendet den geschützten Einzeldatei-Schreiber aus 01. |
|
||||
| Terminalgröße und Wiederherstellung | `app.rs::handle` und `render.rs::render` behandeln Resize und die physische 80×25-Grenze; `terminal.rs::TerminalGuard` besitzt Raw Mode, Alternate Screen, Mausmodus und Cursor einschließlich teilweise fehlgeschlagener Initialisierung. |
|
||||
| Vollständige Exportdialoge mit getrennter Erzeugung | `export.rs`: `Artifact`, `ProjectStamp`, `ExportRequest`, `ExportStatus`; `app.rs::{submit,export_result}` und `render.rs` bilden beide Dialoge samt Prüfung und Ergebnissen ab. `documents.rs::Project::validate_export_target` verwendet die vorhandenen Ziel-/Binärschutzprüfungen. Erzeugen bleibt im Produktionspfad mit Phase-6-Hinweis gesperrt. |
|
||||
|
||||
## Nachweise je Spec-Szenario
|
||||
|
||||
Die genannten Oberflächentests stehen in `crates/tb-ide/tests/app.rs`.
|
||||
Sie bedienen `App::handle` mit Tastatur-/Mausereignissen und rendern über
|
||||
TestBackend; die Prüfung beschränkt sich nicht auf direkte Command-Aufrufe.
|
||||
|
||||
| Szenario | Nachweis |
|
||||
| --- | --- |
|
||||
| Erster Start | `start_snapshot_and_reference_menus_have_all_commands`: Untitled, Project-Titel, Begrüßung und Status im Puffer; unmittelbare Texteingabe. Menüfolge, Referenznamen und eindeutige Mnemonics geprüft. Zusätzlich tatsächlicher Start im Pseudoterminal. |
|
||||
| Modusabhängige Funktionstaste | `dispatcher_keeps_function_keys_and_copy_out_of_basic_input`: F10 wechselt im Designer Menü/Properties; im pausierten Environment wird ProcedureStep ausgewählt. Die eigentliche Debuggeraktion ist gemäß Design bis Change 06 sichtbar deaktiviert. |
|
||||
| Vollständige Eingabeverteilung | Derselbe Test prüft Ctrl+C/Copy, F11 und F12/Event Procedures ohne BASIC-Zustellung; `mouse_focus_is_modal_and_program_abort_is_not_editor_copy` prüft Ctrl+C und Maus bei laufendem Programm mit Output-Fokus sowie die Right-Mouse-Option. |
|
||||
| Fenster wiederherstellen | `windows_restore_geometry_and_resize_without_document_loss`: zusätzliche Ansicht, Verschieben/Skalieren, Min-/Max-/Restore, Control-Menü, Fensterwechsel und Schließen ohne Dokumentverlust. Normalgeometrie bleibt erhalten; Fensteraktionen verändern keine Dokumentcursor. |
|
||||
| Dialogfokus | `modal_focus_and_dirty_project_cancel_preserve_document` und `mouse_focus_is_modal_and_program_abort_is_not_editor_copy`: Tasten/Maus bleiben modal, Abbruch erhält aktives Fenster und Text; Save/Discard/Cancel folgen dem Dokumentvertrag. |
|
||||
| Farben ändern | `options_apply_persist_across_bases_and_preserve_unsaved_values_on_error`: Titelhintergrund, Desktopzeichen und Tabweite werden im Display-Dialog geändert; Titelzelle im gerenderten Puffer geprüft. Runtime-Farben werden von dieser ausschließlich app-lokalen Palette nicht verändert. |
|
||||
| Neustart mit Optionen | Derselbe Test speichert Optionen, startet App mit anderer Projektbasis und derselben Benutzerdatei und prüft identische Werte; Include-Fallback, Syntax-Default/Toggle, ungültige Konfiguration und schreibgeschützte Optionsdatei sind enthalten. `config_path` verwendet ausschließlich absolute Benutzerverzeichnisse und keine CWD-Konfigurationsdatei. |
|
||||
| Verkleinern und zurück | `windows_restore_geometry_and_resize_without_document_loss`: 40×12 zeigt nur den Hinweis, danach 80×25 mit gleichem Fokus, unveränderten Dokumenten und begrenzten Fensterrechtecken. |
|
||||
| Dialoge vor dem Erzeugungsbackend | `export_dialogs_validate_and_render_all_results_without_creating_files`: beide Make-Menüs, bearbeitete System-/Architektur-/Pfadfelder, sichtbare Erzeugen-Sperre. Zusätzlich wurden beide Dialoge im echten `tb` über Alt+R/E bzw. Alt+R/L geöffnet und mit Enter geprüft; keine Dateiausgabe. |
|
||||
| Fehlerhafte Ausgabeangaben | Derselbe Exporttest prüft leeren Pfad, fehlendes Verzeichnis, `.tbc`, vorhandenes Ziel ohne Zustimmung und ausdrückliche Zustimmung; andere Felder bleiben erhalten. Das bestehende Ziel bleibt im Phase-5-Produktionspfad unverändert. |
|
||||
| Ergebnisdarstellung über die vorbereitete Übergabe | Derselbe Exporttest übergibt Running, Success, Failed und Cancelled für denselben geprüften Auftrag; sichtbare Statusausgabe und unveränderte Projektidentität/-revision geprüft. Diese kontrollierten UI-Ergebnisse sind kein Nachweis nativer Erzeugung. |
|
||||
|
||||
Zusätzliche Integrationsnachweise:
|
||||
|
||||
- `file_picker_save_conflict_and_project_replacement_use_real_events`:
|
||||
Dateiauswahl, externe Änderung, explizites Überschreiben, Abbruch der
|
||||
Dateiauswahl und Wechsel in ein Projekt in anderem Verzeichnis.
|
||||
- `exit_with_partial_save_retains_dialog_and_unsaved_documents`:
|
||||
Fehler beim zweiten Mitglied hält den Dialog offen und verhindert Exit;
|
||||
erstes Mitglied ist gespeichert, zweites dirty, MAK unverändert;
|
||||
Wiederholung nach Beheben des Schreibschutzes beendet erfolgreich.
|
||||
- `status_and_project_buttons_use_the_keyboard_command_path` und
|
||||
`clicking_project_members_and_dialog_choices_transfers_focus_and_applies_values`:
|
||||
Statusklick, Form/Code-Buttons, Fokusübergabe bei Listenklick, Enter und
|
||||
anklickbare Dialogauswahl/-kästchen.
|
||||
- `designer_form_list_and_context_availability_match_the_active_window`:
|
||||
Formularliste statt BAS-Liste im Designer, eindeutige freie Formnamen,
|
||||
Alt-Menüwechsel und deaktivierter Textimport ohne Codefenster.
|
||||
- `terminal::tests::terminal_cleanup_on_normal_error_and_partial_initialization`:
|
||||
Guard-Cleanup bei Normalende, propagiertem Fehler und fehlgeschlagener
|
||||
Initialisierung; alle 14 Dokumentmodelltests aus 01 bleiben grün.
|
||||
|
||||
## Behobene Befunde im Implementierungs- und Prüflauf
|
||||
|
||||
- Der Projekttitel wurde durch die Fensterbuttons überdeckt; das rechte
|
||||
Anfangsfenster bietet jetzt genügend Platz für Titel und Bedienelemente.
|
||||
- Doppelte Menü-Mnemonics wurden eindeutig vergeben und im Test abgesichert;
|
||||
Mnemonics werden auch im aufgeklappten Menü unterstrichen dargestellt.
|
||||
- Ctrl+F10 wird im Designer als Fensteraktion behandelt; F10 allein
|
||||
wechselt auch aus einem aktiven Menü zurück zur Properties Bar.
|
||||
- Ctrl+C und Mausereignisse bei Programmfokus gelangen an die vorbereitete
|
||||
Programmeingabe; Editor-Copy und reservierte IDE-Tasten bleiben getrennt.
|
||||
- Projektbuttons verwenden das gewählte Projektmitglied. Listenklicks
|
||||
aktivieren das Project Window, sodass Enter dort die gewählte Ansicht
|
||||
öffnet. Auswahlfelder und Kästchen reagieren auf Mausklicks.
|
||||
- Die Designer-Fensterliste enthält ausschließlich Formulare; Textimport
|
||||
ist ohne Codefenster mit erkennbarem Grund deaktiviert. Neue Dokumente
|
||||
und Formulare vermeiden Namenskollisionen mit vorhandenen Dateien.
|
||||
- Dialogtexte zeigen einen Cursor und scrollen bei langen Eingaben; die
|
||||
Dateiauswahl kehrt bei Abbruch zu den erhaltenen Eingaben zurück.
|
||||
|
||||
Der Test für einen leeren Exportpfad wurde zudem so korrigiert, dass er
|
||||
nach Ctrl+A tatsächlich Delete sendet; Auswahl allein löscht keinen Text.
|
||||
Keine Anforderung wurde dafür abgeschwächt und kein Test deaktiviert.
|
||||
|
||||
## Ausgeführte Abschlussprüfungen
|
||||
|
||||
| Prüfung | Ergebnis |
|
||||
| --- | --- |
|
||||
| `cargo test --workspace` nach den letzten Codekorrekturen | 514 bestanden, 0 fehlgeschlagen, 2 bereits ignorierte optionale Tests |
|
||||
| IDE innerhalb dieses Laufs | 12 App-Tests, 1 Guard-Test und 14 Dokumenttests bestanden |
|
||||
| `cargo fmt --all -- --check` | bestanden |
|
||||
| `cargo clippy -p tb-ide --all-targets -- -D warnings` | bestanden |
|
||||
| `cargo build -p tb-ide` | bestanden |
|
||||
| Echter `target/debug/tb` in einem isolierten Pseudoterminal | Start, beide Make-Dialoge/Prüfen, Exit/Verwerfen, Exitcode 0; termios-Ausgangszustand wiederhergestellt; Cursor/Maus/Alternate-Screen zurückgesetzt, keine Dateien im temporären Arbeitsverzeichnis |
|
||||
| `openspec validate --all --strict --json` | 23/23 gültig: 16 Hauptspecs und 7 Changes |
|
||||
| `git diff --check`, Whitespace neuer Dateien und Dokumentverweise | bestanden |
|
||||
|
||||
Die zwei unverändert ignorierten Tests erzeugen manuell Golden Files bzw.
|
||||
benötigen den zusätzlichen externen VBDOS-Referenzcheckout. Neue Tests
|
||||
verwenden absolute temporäre Pfade; der Pseudoterminalprozess hat ein
|
||||
eigenes temporäres Arbeitsverzeichnis. Kein globaler Rust-CWD-Wechsel und
|
||||
keine Benutzerkonfiguration wurden für die Prüfung verändert.
|
||||
|
||||
## Übergabe und Phasengrenzen
|
||||
|
||||
`docs/ide-bedienung.md` enthält Bedienung, Defaults, Optionspfade,
|
||||
Exportgrenze und eine vollständige Befehlsabdeckung mit Zuständigkeiten.
|
||||
Editor 03, Ausführung 04, Designer-Fachwerkzeuge 05, Debugger 06 und Hilfe
|
||||
07 bleiben entsprechend dem ausdrücklichen Design über benannte
|
||||
Verfügbarkeitsgründe deaktiviert. Der Dispatcher wählt bereits ihre
|
||||
Befehle, behauptet aber keine ausgeführte Fachfunktion.
|
||||
|
||||
Die UI nutzt vorhandenes ratatui/crossterm und das vorhandene
|
||||
`unicode-width`-Workspace-Paket für Terminalzellen; keine neue Crate und
|
||||
kein Plugin-/Widgetframework wurden eingeführt. FormFile, Quellenlader,
|
||||
SavePlan und geschützte Datei-Ersetzung stammen aus 01. Native Formate,
|
||||
Library-ABI und reale Erzeugungsanbindung bleiben bei den dafür vorgesehenen
|
||||
Phase-6-Punkten in PLAN.md. Dies sind geplante Change-Grenzen und keine
|
||||
offenen Befunde dieses Changes. Synchronisation, Archivierung und
|
||||
Commit/Push sind nicht Teil dieser Implementierungsverifizierung.
|
||||
|
||||
## Synchronisation und Archivierung
|
||||
|
||||
Am 2026-09-06 wurde die Hauptspec `ide-oberflaeche` mit allen sieben
|
||||
Anforderungen und elf Szenarien synchronisiert. Der Vergleich mit der
|
||||
Delta-Spec bestätigt vollständige Inhaltsgleichheit bei kanonischer
|
||||
Hauptspec-Struktur. Vor der Archivierung bestanden 17/17 Hauptspecs die
|
||||
strikte Validierung, danach 23/23 aktive Einträge (17 Hauptspecs und sechs
|
||||
Changes). Die durch die Archivierung betroffenen Links in Folgechanges
|
||||
und Phase-5-Übersicht wurden angepasst und auf vorhandene Ziele geprüft.
|
||||
@@ -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](../phase-5-02-ide-rahmen/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).
|
||||
|
||||
**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-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](../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](../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](../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](../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-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](../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](../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](../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](../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