on main help sign in
refactor: use `ContainsAnyOf` from `x`
commit99a896d10897177e7c67e7861ceb8dd47248a769 authorAndrey Nering <andreynering@users.noreply.github.com> dateMon 26 Jan 2026, 14:54 (9 months ago) parentb490a3b
4 files changed+6−17
internal/cmd/root.go+2−2 internal/cmd/root_test.go+2−2 internal/stringext/string.go−11 internal/tui/tui.go+2−2
internal/cmd/root.go+2−2
@@ -20,7 +20,6 @@ import (
2020 "github.com/charmbracelet/crush/internal/db"
2121 "github.com/charmbracelet/crush/internal/event"
2222 "github.com/charmbracelet/crush/internal/projects"
23− "github.com/charmbracelet/crush/internal/stringext"
2423 "github.com/charmbracelet/crush/internal/tui"
2524 "github.com/charmbracelet/crush/internal/ui/common"
2625 ui "github.com/charmbracelet/crush/internal/ui/model"
@@ -29,6 +28,7 @@ import (
2928 uv "github.com/charmbracelet/ultraviolet"
3029 "github.com/charmbracelet/x/ansi"
3130 "github.com/charmbracelet/x/exp/charmtone"
31+ xstrings "github.com/charmbracelet/x/exp/strings"
3232 "github.com/charmbracelet/x/term"
3333 "github.com/spf13/cobra"
3434)
@@ -314,5 +314,5 @@ func shouldQueryCapabilities(env uv.Environ) bool {
314314 return (!okTermProg && !okSSHTTY) ||
315315 (!strings.Contains(termProg, osVendorTypeApple) && !okSSHTTY) ||
316316 // Terminals that do support XTVERSION.
317− stringext.ContainsAny(termType, kittyTerminals...)
317+ xstrings.ContainsAnyOf(termType, kittyTerminals...)
318318}
internal/cmd/root_test.go+2−2
@@ -4,8 +4,8 @@ import (
44 "strings"
55 "testing"
66
7− "github.com/charmbracelet/crush/internal/stringext"
87 uv "github.com/charmbracelet/ultraviolet"
8+ xstrings "github.com/charmbracelet/x/exp/strings"
99 "github.com/stretchr/testify/require"
1010)
1111
@@ -153,7 +153,7 @@ func TestStringextContainsAny(t *testing.T) {
153153 for _, tt := range tests {
154154 t.Run(tt.name, func(t *testing.T) {
155155 t.Parallel()
156− got := stringext.ContainsAny(tt.s, tt.substr...)
156+ got := xstrings.ContainsAnyOf(tt.s, tt.substr...)
157157 require.Equal(t, tt.want, got)
158158 })
159159 }
internal/stringext/string.go−11
@@ -1,8 +1,6 @@
11package stringext
22
33import (
4− "strings"
5−
64 "golang.org/x/text/cases"
75 "golang.org/x/text/language"
86)
@@ -10,12 +8,3 @@ import (
108func Capitalize(text string) string {
119 return cases.Title(language.English, cases.Compact).String(text)
1210}
13−
14−func ContainsAny(str string, args ...string) bool {
15− for _, arg := range args {
16− if strings.Contains(str, arg) {
17− return true
18− }
19− }
20− return false
21−}
internal/tui/tui.go+2−2
@@ -19,7 +19,6 @@ import (
1919 "github.com/charmbracelet/crush/internal/home"
2020 "github.com/charmbracelet/crush/internal/permission"
2121 "github.com/charmbracelet/crush/internal/pubsub"
22− "github.com/charmbracelet/crush/internal/stringext"
2322 cmpChat "github.com/charmbracelet/crush/internal/tui/components/chat"
2423 "github.com/charmbracelet/crush/internal/tui/components/chat/splash"
2524 "github.com/charmbracelet/crush/internal/tui/components/completions"
@@ -37,6 +36,7 @@ import (
3736 "github.com/charmbracelet/crush/internal/tui/page/chat"
3837 "github.com/charmbracelet/crush/internal/tui/styles"
3938 "github.com/charmbracelet/crush/internal/tui/util"
39+ xstrings "github.com/charmbracelet/x/exp/strings"
4040 "golang.org/x/mod/semver"
4141 "golang.org/x/text/cases"
4242 "golang.org/x/text/language"
@@ -129,7 +129,7 @@ func (a *appModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
129129 }
130130 termVersion := strings.ToLower(msg.Name)
131131 switch {
132− case stringext.ContainsAny(termVersion, "ghostty", "rio"):
132+ case xstrings.ContainsAnyOf(termVersion, "ghostty", "rio"):
133133 a.sendProgressBar = true
134134 case strings.Contains(termVersion, "iterm2"):
135135 // iTerm2 supports progress bars from version v3.6.6