Просмотр исходного кода

feat(tui): subsitute cwd home path on status bar (#808)

Josh Medeski 7 месяцев назад
Родитель
Сommit
6d393759e1
1 измененных файлов с 10 добавлено и 1 удалено
  1. 10 1
      packages/tui/internal/components/status/status.go

+ 10 - 1
packages/tui/internal/components/status/status.go

@@ -2,6 +2,7 @@ package status
 
 import (
 	"fmt"
+	"os"
 	"strings"
 
 	tea "github.com/charmbracelet/bubbletea/v2"
@@ -20,6 +21,7 @@ type StatusComponent interface {
 type statusComponent struct {
 	app   *app.App
 	width int
+	cwd   string
 }
 
 func (m statusComponent) Init() tea.Cmd {
@@ -100,7 +102,7 @@ func (m statusComponent) View() string {
 		Foreground(t.TextMuted()).
 		Background(t.BackgroundPanel()).
 		Padding(0, 1).
-		Render(m.app.Info.Path.Cwd)
+		Render(m.cwd)
 
 	sessionInfo := ""
 	if m.app.Session.ID != "" {
@@ -156,5 +158,12 @@ func NewStatusCmp(app *app.App) StatusComponent {
 		app: app,
 	}
 
+	homePath, err := os.UserHomeDir()
+	cwdPath := app.Info.Path.Cwd
+	if err == nil && homePath != "" && strings.HasPrefix(cwdPath, homePath) {
+		cwdPath = "~" + cwdPath[len(homePath):]
+	}
+	statusComponent.cwd = cwdPath
+
 	return statusComponent
 }