|
10 | 10 |
|
11 | 11 | Alle wesentlichen Änderungen an CodeBox werden hier dokumentiert. |
12 | 12 |
|
| 13 | +## [0.2.0] - 2026-09-12 |
| 14 | + |
| 15 | +### Multi-Root-Workspace Support |
| 16 | + |
| 17 | +- `core/workspace.py`: Neues Kernmodul für Multi-Root-Arbeitsbereiche: |
| 18 | + - Datenklasse `WorkspaceFolder` (`path`, `name`, `to_dict`, `from_dict`) mit portabler relativer Pfadberechnung. |
| 19 | + - `WorkspaceManager` (`QObject`) mit Signalen `foldersChanged`, `activeFolderChanged(object)`, `workspaceLoaded(str)`. |
| 20 | + - Methoden `add_folder`, `remove_folder`, `set_active_folder`, `set_single_folder`, `clear`, `find_folder_for_file`. |
| 21 | + - Datei-Format `.codebox-workspace` (JSON) mit Metadaten, Schema-Version und relativer Pfadauflösung für geräteübergreifende Portabilität (OneDrive/Multi-Device). |
| 22 | + - Methode `collect_all_files` zum schnellen Ordner-übergreifenden Durchsuchen mit Filterregeln. |
| 23 | +- `features/project_view.py`: |
| 24 | + - Dynamischer Arbeitsbereich-Umschalter (`workspace_widget` mit `workspace_combo`, `btn_add_root`, `btn_remove_root`), der sich bei mehreren geöffneten Ordnern automatisch einblendet und bei Einzelordnern für ein aufgeräumtes Design unsichtbar bleibt. |
| 25 | + - Nahtloser Wechsel des aktiven Ordners und Aktualisierung von Git-Branch und Dateibaum. |
| 26 | + - Kontextmenü-Aktionen im Dateibaum für Verzeichnisse: "Ordner zum Arbeitsbereich hinzufügen" und "Ordner aus Arbeitsbereich entfernen". |
| 27 | +- `ui/main_window.py`: |
| 28 | + - Menü *Datei* erweitert um: |
| 29 | + - *Ordner öffnen...* (`Ctrl+Shift+O`): Öffnet einen Ordner als einzelnen Arbeitsbereich. |
| 30 | + - *Ordner zum Arbeitsbereich hinzufügen...*: Fügt einen weiteren Ordner hinzu. |
| 31 | + - *Arbeitsbereich öffnen...*: Lädt eine `.codebox-workspace` Konfiguration. |
| 32 | + - *Arbeitsbereich speichern unter...*: Speichert den aktuellen Arbeitsbereich inklusive aller Ordner. |
| 33 | + - *Arbeitsbereich schließen*: Schließt alle Ordner des aktuellen Arbeitsbereichs. |
| 34 | + - Intelligente Dateizuordnung (`_on_file_changed`): Erkennt automatisch, welchem Arbeitsbereichs-Ordner eine geöffnete Datei angehört, und wechselt den aktiven Ordner, ohne andere Arbeitsbereichs-Ordner zu verwerfen. |
| 35 | + - Automatische Synchronisation des integrierten Terminals auf den jeweils aktiven Arbeitsbereichs-Ordner. |
| 36 | +- `ui/command_palette.py`: |
| 37 | + - Quick-Open (`Ctrl+P`) durchsucht im Multi-Root-Modus alle Projektordner des Arbeitsbereichs gleichzeitig mit prägnanten Ordner-Badges (z. B. `[backend] api/routes.py`). |
| 38 | + - Neue Arbeitsbereichs-Aktionen stehen direkt über die Befehlspalette (`Ctrl+Shift+P`) zur Verfügung. |
| 39 | +- `config/__init__.py`: |
| 40 | + - Standardeinstellung `"recent_workspaces": []` hinzugefügt. |
| 41 | +- `ui/shortcuts_dialog.py`: |
| 42 | + - Shortcuts-Übersicht um die neuen Arbeitsbereichs-Aktionen und `Ctrl+Shift+O` ergänzt. |
| 43 | +- Testsuite: |
| 44 | + - `tests/test_workspace.py`: 5 Unit-Tests für `WorkspaceManager` und `WorkspaceFolder`. |
| 45 | + - `tests/test_multi_root_workspace.py`: 4 Integrations-Tests für UI, Lifecycle, Dateizuordnung und Quick-Open Suche. |
| 46 | + - 248 Tests bestanden, 1 übersprungen, 100% grün. |
| 47 | + |
13 | 48 | ## [0.1.9] - 2026-09-11 |
14 | 49 |
|
15 | 50 | ### Zuschaltbarer Vim-Keybindings Modus |
|
0 commit comments