perf(textarea): implement wrapping memoization

* Improve textarea performance by caching the wrap results

* Add memoization utility

* Fix failing github jobs due to requirement for 1.18

* Address linting issues

* Fix redundant docstrings

* fix: minor changes to memoization

* fix: soft-wrapped hidden line numbers

* perf: switch to `uniseg.StringWidth`

---------

Co-authored-by: Maas Lalani <maas@lalani.dev>
This commit is contained in:
Manuel Odendahl
2024-01-22 13:30:34 -05:00
committed by GitHub
co-authored by Maas Lalani
parent ec883029c8
commit 6fe92f94b5
9 changed files with 426 additions and 52 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
module github.com/charmbracelet/bubbles
go 1.17
go 1.18
require (
github.com/atotto/clipboard v0.1.4
@@ -12,6 +12,7 @@ require (
github.com/mattn/go-runewidth v0.0.15
github.com/muesli/reflow v0.3.0
github.com/muesli/termenv v0.15.2
github.com/rivo/uniseg v0.4.4
github.com/sahilm/fuzzy v0.1.1-0.20230530133925-c48e322e2a8f
)
@@ -23,7 +24,6 @@ require (
github.com/mattn/go-localereader v0.0.1 // indirect
github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b // indirect
github.com/muesli/cancelreader v0.2.2 // indirect
github.com/rivo/uniseg v0.2.0 // indirect
golang.org/x/sync v0.1.0 // indirect
golang.org/x/sys v0.12.0 // indirect
golang.org/x/term v0.6.0 // indirect