Skip to content

Commit 10ca4a5

Browse files
michaelblaessclaude
andcommitted
feat: aktives Theme im Log anzeigen
Michael beim Testen: "wenn ich eine TUI starte sehe ich nicht welches Theme aktiv ist". Stimmt - Textual zeigt das nirgends an, und nach einem Neustart weiss man nicht, was man vor sich hat. Jetzt steht es beim Start im Log und bei jedem Wechsel erneut, auch bei einem Wechsel ueber die Befehlspalette (der Aufruf haengt in watch_theme, nicht in der eigenen Theme-Taste - sonst waeren genau die Wechsel ueber Strg+P nicht erfasst). Der technische Name steht in Klammern dahinter, weil genau der in den Einstellungen und in der Befehlspalette auftaucht: 18:47:22 Theme: textual-dark 18:47:23 Theme: Crimson - Deep Red on Dark Charcoal (crimson) Geprueft am laufenden Programm, nicht am Quelltext: headless gestartet, Zeile beim Start gelesen, Theme gewechselt, zweite Zeile gelesen. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 2d09581 commit 10ca4a5

3 files changed

Lines changed: 20 additions & 0 deletions

File tree

src/console_error_scanner/app.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,7 @@ def on_mount(self) -> None:
290290

291291
# Versionsinfo + Konfiguration ins Log
292292
self._write_log(f"[bold]{t('log.version', version=__version__)}[/bold]")
293+
self._log_theme()
293294
consent_info = t("log.consent_on") if self.accept_consent else t("log.consent_off")
294295
scroll_info = t("log.scroll_on") if self.trigger_lazy_load else t("log.scroll_off")
295296
if not self.respect_robots:
@@ -1636,6 +1637,23 @@ def watch_theme(self, theme_name: str) -> None:
16361637
return
16371638
self._settings.theme = theme_name
16381639
self._settings.save()
1640+
self._log_theme()
1641+
1642+
def _log_theme(self) -> None:
1643+
"""Schreibt das aktive Theme ins Log.
1644+
1645+
Textual zeigt nirgends an, welches Theme gerade laeuft - nach einem
1646+
Neustart weiss man also nicht, was man vor sich hat. Der technische
1647+
Name steht mit dabei, weil genau der in den Einstellungen und in der
1648+
Befehlspalette auftaucht.
1649+
"""
1650+
with contextlib.suppress(Exception):
1651+
from textual_themes import THEME_DISPLAY_NAMES
1652+
1653+
name = self.theme or ""
1654+
anzeige = THEME_DISPLAY_NAMES.get(name, name)
1655+
beschriftung = f"{anzeige} ({name})" if anzeige != name else name
1656+
self._write_log(t("log.theme_active", name=beschriftung))
16391657

16401658
# --- check_action -------------------------------------------------------
16411659

src/console_error_scanner/locale/de.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
"notify.no_results_for_top": "Noch keine Ergebnisse für die Top-10-Auswertung.",
5656

5757
"log.version": "Console Error Scanner v{version}",
58+
"log.theme_active": "Theme: {name}",
5859
"log.config": "Concurrency: {concurrency} | Timeout: {timeout}s | Console-Level: {level} | {consent} | {scroll}",
5960
"log.consent_on": "Consent: AN",
6061
"log.consent_off": "Consent: AUS",

src/console_error_scanner/locale/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
"notify.no_results_for_top": "No results yet for the Top 10 view.",
5656

5757
"log.version": "Console Error Scanner v{version}",
58+
"log.theme_active": "Theme: {name}",
5859
"log.config": "Concurrency: {concurrency} | Timeout: {timeout}s | Console-Level: {level} | {consent} | {scroll}",
5960
"log.consent_on": "Consent: ON",
6061
"log.consent_off": "Consent: OFF",

0 commit comments

Comments
 (0)