diff --git a/go.mod b/go.mod index 6f47904..c7603a8 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/acidghost/a555watch go 1.24.2 require ( - github.com/charmbracelet/bubbles v0.21.1 + github.com/charmbracelet/bubbles v1.0.0 github.com/charmbracelet/bubbletea v1.3.10 github.com/charmbracelet/lipgloss v1.1.0 github.com/sergi/go-diff v1.3.2 @@ -19,7 +19,7 @@ require ( github.com/atotto/clipboard v0.1.4 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/charmbracelet/colorprofile v0.4.1 // indirect - github.com/charmbracelet/x/ansi v0.11.5 // indirect + github.com/charmbracelet/x/ansi v0.11.6 // indirect github.com/charmbracelet/x/cellbuf v0.0.15 // indirect github.com/charmbracelet/x/term v0.2.2 // indirect github.com/clipperhouse/displaywidth v0.9.0 // indirect diff --git a/go.sum b/go.sum index f6c9cb8..6e3efda 100644 --- a/go.sum +++ b/go.sum @@ -4,16 +4,16 @@ github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiE github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= github.com/aymanbagabas/go-udiff v0.3.1 h1:LV+qyBQ2pqe0u42ZsUEtPiCaUoqgA9gYRDs3vj1nolY= github.com/aymanbagabas/go-udiff v0.3.1/go.mod h1:G0fsKmG+P6ylD0r6N/KgQD/nWzgfnl8ZBcNLgcbrw8E= -github.com/charmbracelet/bubbles v0.21.1 h1:nj0decPiixaZeL9diI4uzzQTkkz1kYY8+jgzCZXSmW0= -github.com/charmbracelet/bubbles v0.21.1/go.mod h1:HHvIYRCpbkCJw2yo0vNX1O5loCwSr9/mWS8GYSg50Sk= +github.com/charmbracelet/bubbles v1.0.0 h1:12J8/ak/uCZEMQ6KU7pcfwceyjLlWsDLAxB5fXonfvc= +github.com/charmbracelet/bubbles v1.0.0/go.mod h1:9d/Zd5GdnauMI5ivUIVisuEm3ave1XwXtD1ckyV6r3E= github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw= github.com/charmbracelet/bubbletea v1.3.10/go.mod h1:ORQfo0fk8U+po9VaNvnV95UPWA1BitP1E0N6xJPlHr4= github.com/charmbracelet/colorprofile v0.4.1 h1:a1lO03qTrSIRaK8c3JRxJDZOvhvIeSco3ej+ngLk1kk= github.com/charmbracelet/colorprofile v0.4.1/go.mod h1:U1d9Dljmdf9DLegaJ0nGZNJvoXAhayhmidOdcBwAvKk= github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY= github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30= -github.com/charmbracelet/x/ansi v0.11.5 h1:NBWeBpj/lJPE3Q5l+Lusa4+mH6v7487OP8K0r1IhRg4= -github.com/charmbracelet/x/ansi v0.11.5/go.mod h1:2JNYLgQUsyqaiLovhU2Rv/pb8r6ydXKS3NIttu3VGZQ= +github.com/charmbracelet/x/ansi v0.11.6 h1:GhV21SiDz/45W9AnV2R61xZMRri5NlLnl6CVF7ihZW8= +github.com/charmbracelet/x/ansi v0.11.6/go.mod h1:2JNYLgQUsyqaiLovhU2Rv/pb8r6ydXKS3NIttu3VGZQ= github.com/charmbracelet/x/cellbuf v0.0.15 h1:ur3pZy0o6z/R7EylET877CBxaiE1Sp1GMxoFPAIztPI= github.com/charmbracelet/x/cellbuf v0.0.15/go.mod h1:J1YVbR7MUuEGIFPCaaZ96KDl5NoS0DAWkskup+mOY+Q= github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91 h1:payRxjMjKgx2PaCWLZ4p3ro9y97+TVLZNaRZgJwSVDQ= diff --git a/vendor/github.com/charmbracelet/x/ansi/method.go b/vendor/github.com/charmbracelet/x/ansi/method.go index 0218809..5d2d409 100644 --- a/vendor/github.com/charmbracelet/x/ansi/method.go +++ b/vendor/github.com/charmbracelet/x/ansi/method.go @@ -1,5 +1,29 @@ package ansi +import ( + "os" + "strconv" + + "github.com/clipperhouse/displaywidth" + "github.com/mattn/go-runewidth" +) + +var wcOptions = &runewidth.Condition{ + EastAsianWidth: false, + StrictEmojiNeutral: true, +} + +var dwOptions = &displaywidth.Options{ + EastAsianWidth: false, +} + +func init() { + if ea, err := strconv.ParseBool(os.Getenv("RUNEWIDTH_EASTASIAN")); err == nil && ea { + wcOptions.EastAsianWidth = true + dwOptions.EastAsianWidth = true + } +} + // Method is a type that represents the how the renderer should calculate the // display width of cells. type Method uint8 diff --git a/vendor/github.com/charmbracelet/x/ansi/parser_decode.go b/vendor/github.com/charmbracelet/x/ansi/parser_decode.go index 096c863..24a8f8c 100644 --- a/vendor/github.com/charmbracelet/x/ansi/parser_decode.go +++ b/vendor/github.com/charmbracelet/x/ansi/parser_decode.go @@ -4,9 +4,7 @@ import ( "unicode/utf8" "github.com/charmbracelet/x/ansi/parser" - "github.com/clipperhouse/displaywidth" "github.com/clipperhouse/uax29/v2/graphemes" - "github.com/mattn/go-runewidth" ) // State represents the state of the ANSI escape sequence parser used by @@ -439,15 +437,15 @@ func FirstGraphemeCluster[T string | []byte](b T, m Method) (T, int) { case string: cluster := graphemes.FromString(b).First() if m == WcWidth { - return T(cluster), runewidth.StringWidth(cluster) + return T(cluster), wcOptions.StringWidth(cluster) } - return T(cluster), displaywidth.String(cluster) + return T(cluster), dwOptions.String(cluster) case []byte: cluster := graphemes.FromBytes(b).First() if m == WcWidth { - return T(cluster), runewidth.StringWidth(string(cluster)) + return T(cluster), wcOptions.StringWidth(string(cluster)) } - return T(cluster), displaywidth.Bytes(cluster) + return T(cluster), dwOptions.Bytes(cluster) } panic("unreachable") } diff --git a/vendor/modules.txt b/vendor/modules.txt index 81a8794..34a6956 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -4,7 +4,7 @@ github.com/atotto/clipboard # github.com/aymanbagabas/go-osc52/v2 v2.0.1 ## explicit; go 1.16 github.com/aymanbagabas/go-osc52/v2 -# github.com/charmbracelet/bubbles v0.21.1 +# github.com/charmbracelet/bubbles v1.0.0 ## explicit; go 1.24.2 github.com/charmbracelet/bubbles/cursor github.com/charmbracelet/bubbles/help @@ -25,7 +25,7 @@ github.com/charmbracelet/colorprofile # github.com/charmbracelet/lipgloss v1.1.0 ## explicit; go 1.18 github.com/charmbracelet/lipgloss -# github.com/charmbracelet/x/ansi v0.11.5 +# github.com/charmbracelet/x/ansi v0.11.6 ## explicit; go 1.24.2 github.com/charmbracelet/x/ansi github.com/charmbracelet/x/ansi/parser