From 99a896d10897177e7c67e7861ceb8dd47248a769 Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Mon, 26 Jan 2026 14:54:41 -0300 Subject: [PATCH] refactor: use `ContainsAnyOf` from `x` --- internal/cmd/root.go | 4 ++-- internal/cmd/root_test.go | 4 ++-- internal/stringext/string.go | 11 ----------- internal/tui/tui.go | 4 ++-- 4 files changed, 6 insertions(+), 17 deletions(-) diff --git a/internal/cmd/root.go b/internal/cmd/root.go index e7489777b5938b0edecba2b333643839974fede5..351c9d414dd28b596374cf3a99459a1098d3c41b 100644 --- a/internal/cmd/root.go +++ b/internal/cmd/root.go @@ -20,7 +20,6 @@ import ( "github.com/charmbracelet/crush/internal/db" "github.com/charmbracelet/crush/internal/event" "github.com/charmbracelet/crush/internal/projects" - "github.com/charmbracelet/crush/internal/stringext" "github.com/charmbracelet/crush/internal/tui" "github.com/charmbracelet/crush/internal/ui/common" ui "github.com/charmbracelet/crush/internal/ui/model" @@ -29,6 +28,7 @@ import ( uv "github.com/charmbracelet/ultraviolet" "github.com/charmbracelet/x/ansi" "github.com/charmbracelet/x/exp/charmtone" + xstrings "github.com/charmbracelet/x/exp/strings" "github.com/charmbracelet/x/term" "github.com/spf13/cobra" ) @@ -314,5 +314,5 @@ func shouldQueryCapabilities(env uv.Environ) bool { return (!okTermProg && !okSSHTTY) || (!strings.Contains(termProg, osVendorTypeApple) && !okSSHTTY) || // Terminals that do support XTVERSION. - stringext.ContainsAny(termType, kittyTerminals...) + xstrings.ContainsAnyOf(termType, kittyTerminals...) } diff --git a/internal/cmd/root_test.go b/internal/cmd/root_test.go index 2b6ca86c50dfeba036574242726c269e14617442..8b92f04c4ab7b120985505716e6200cd1845d295 100644 --- a/internal/cmd/root_test.go +++ b/internal/cmd/root_test.go @@ -4,8 +4,8 @@ import ( "strings" "testing" - "github.com/charmbracelet/crush/internal/stringext" uv "github.com/charmbracelet/ultraviolet" + xstrings "github.com/charmbracelet/x/exp/strings" "github.com/stretchr/testify/require" ) @@ -153,7 +153,7 @@ func TestStringextContainsAny(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { t.Parallel() - got := stringext.ContainsAny(tt.s, tt.substr...) + got := xstrings.ContainsAnyOf(tt.s, tt.substr...) require.Equal(t, tt.want, got) }) } diff --git a/internal/stringext/string.go b/internal/stringext/string.go index 9383ce1d78b8f0a776fc533526ee961d0123d734..03456db93bc148f7c77e52da3c493c94fa79624f 100644 --- a/internal/stringext/string.go +++ b/internal/stringext/string.go @@ -1,8 +1,6 @@ package stringext import ( - "strings" - "golang.org/x/text/cases" "golang.org/x/text/language" ) @@ -10,12 +8,3 @@ import ( func Capitalize(text string) string { return cases.Title(language.English, cases.Compact).String(text) } - -func ContainsAny(str string, args ...string) bool { - for _, arg := range args { - if strings.Contains(str, arg) { - return true - } - } - return false -} diff --git a/internal/tui/tui.go b/internal/tui/tui.go index 7586cd8a494541e52a3e403fe0374b772bd7d332..9a51a2497f09875d743e1051465dec7c1ac46e67 100644 --- a/internal/tui/tui.go +++ b/internal/tui/tui.go @@ -19,7 +19,6 @@ import ( "github.com/charmbracelet/crush/internal/home" "github.com/charmbracelet/crush/internal/permission" "github.com/charmbracelet/crush/internal/pubsub" - "github.com/charmbracelet/crush/internal/stringext" cmpChat "github.com/charmbracelet/crush/internal/tui/components/chat" "github.com/charmbracelet/crush/internal/tui/components/chat/splash" "github.com/charmbracelet/crush/internal/tui/components/completions" @@ -37,6 +36,7 @@ import ( "github.com/charmbracelet/crush/internal/tui/page/chat" "github.com/charmbracelet/crush/internal/tui/styles" "github.com/charmbracelet/crush/internal/tui/util" + xstrings "github.com/charmbracelet/x/exp/strings" "golang.org/x/mod/semver" "golang.org/x/text/cases" "golang.org/x/text/language" @@ -129,7 +129,7 @@ func (a *appModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) { } termVersion := strings.ToLower(msg.Name) switch { - case stringext.ContainsAny(termVersion, "ghostty", "rio"): + case xstrings.ContainsAnyOf(termVersion, "ghostty", "rio"): a.sendProgressBar = true case strings.Contains(termVersion, "iterm2"): // iTerm2 supports progress bars from version v3.6.6