feat: themes (#113)
* feat: themes * feat: flexoki theme * feat: onedark theme * feat: monokai pro theme * feat: opencode theme (default) * feat: dracula theme * feat: tokyonight theme * feat: tron theme * some small fixes --------- Co-authored-by: Kujtim Hoxha <kujtimii.h@gmail.com>
This commit is contained in:
parent
61d9dc9511
commit
82de14371d
42 changed files with 4595 additions and 1923 deletions
|
|
@ -16,6 +16,7 @@ import (
|
|||
"github.com/opencode-ai/opencode/internal/message"
|
||||
"github.com/opencode-ai/opencode/internal/permission"
|
||||
"github.com/opencode-ai/opencode/internal/session"
|
||||
"github.com/opencode-ai/opencode/internal/tui/theme"
|
||||
)
|
||||
|
||||
type App struct {
|
||||
|
|
@ -49,6 +50,9 @@ func New(ctx context.Context, conn *sql.DB) (*App, error) {
|
|||
LSPClients: make(map[string]*lsp.Client),
|
||||
}
|
||||
|
||||
// Initialize theme based on configuration
|
||||
app.initTheme()
|
||||
|
||||
// Initialize LSP clients in the background
|
||||
go app.initLSPClients(ctx)
|
||||
|
||||
|
|
@ -73,6 +77,21 @@ func New(ctx context.Context, conn *sql.DB) (*App, error) {
|
|||
return app, nil
|
||||
}
|
||||
|
||||
// initTheme sets the application theme based on the configuration
|
||||
func (app *App) initTheme() {
|
||||
cfg := config.Get()
|
||||
if cfg == nil || cfg.TUI.Theme == "" {
|
||||
return // Use default theme
|
||||
}
|
||||
|
||||
// Try to set the theme from config
|
||||
err := theme.SetTheme(cfg.TUI.Theme)
|
||||
if err != nil {
|
||||
logging.Warn("Failed to set theme from config, using default theme", "theme", cfg.TUI.Theme, "error", err)
|
||||
} else {
|
||||
logging.Debug("Set theme from config", "theme", cfg.TUI.Theme)
|
||||
}
|
||||
}
|
||||
|
||||
// Shutdown performs a clean shutdown of the application
|
||||
func (app *App) Shutdown() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue