Commit Graph
622 Commits
Author SHA1 Message Date
Carlos Alexandro Becker f3bfbb2d68 wip(textarea): using viewport's left gutter func 2025-02-04 15:30:39 -03:00
Carlos Alexandro Becker eec8e1c445 Merge branch 'v2-exp' into v2-area 2025-02-04 13:16:54 -03:00
edbb81c136 feat(viewport)!: gutter column, soft wrap, search highlight (#697)
* horizontal scroll

* rebase branch

* add tests

* add tests with 2 cells symbols

* trimLeft, move to charmbracelete/x/ansi lib

* up ansi package

* Update viewport/viewport.go

Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: do not navigate out to the right

* fix: cache line width on setcontent

* fix tests

* fix viewport tests

* add test for preventing right overscroll

* chore(viewport): increase horizontal step to 6

* chore(viewport): make horizontal scroll API better match vertical scroll API

* fix: nolint

* fix: use ansi.Cut

* perf: do not cut anything if not needed

* feat: expose HorizontalScrollPercent

* fix: do not scroll if width is 0

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: visible lines take frame into account

* feat(viewport): column sign

* feat: gutter, soft wrap

* wip: search

* wip: search

* wip: search

* fix: perf

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: rename

* wip

* wip

* refactor: viewport highlight ranges

* fix: ligloss update

* doc: godoc

* feat: fill height optional

* fix: handle no content

* fix: empty lines

* wip

* wip

* Revert "wip"

This reverts commit 933f181e88405c21d65a08b816a88030806ca03e.

* Reapply "wip"

This reverts commit 0e3e31b70f53d93250a1474547cc5157d50e9237.

* fix: wide

* fix: wide, find

* still not quite there

* fix: grapheme width

* fix: cleanups

* fix: refactors, improves highlight visibility

* docs: godoc

* chore: lipgloss update

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* chore: x/ansi update

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: typos, godocs

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: rename

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: typo

* fix: scroll when soft-wrapping

* fix: soft wrap adjustments

* fix: update

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: deps

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Co-authored-by: Roman Suvorov <suvorov83@gmail.com>
Co-authored-by: Roman Suvorov <tty2.rs@gmail.com>
Co-authored-by: Christian Rocha <christian@rocha.is>
2025-02-04 13:15:40 -03:00
Christian Rocha 644c7b3398 chore(textarea): move completion check 2025-02-01 07:19:54 -05:00
Christian Rocha 88778ca59d chore(merge): branch 'v2-exp' into v2-area-textarea-api-updates 2025-01-31 16:50:34 -05:00
Christian Rocha b2e3cc5371 chore(textarea): account for margins and padding in cursor offsets 2025-01-31 16:21:17 -05:00
Christian Rocha 841c9ce98c chore(textarea): comments and cleanup 2025-01-31 16:21:17 -05:00
Christian Rocha 2824966855 feat(textarea): auto-calculate inner X/Y cursor offset 2025-01-31 16:21:17 -05:00
Christian Rocha 78262b85c3 chore(textarea): make placeholder rendering more readable 2025-01-31 16:21:17 -05:00
Christian Rocha a6b8a4559c chore(textarea): consolidate prompt rendering in a method 2025-01-31 16:21:17 -05:00
Christian Rocha 63fb8c67e7 fix(textarea): don't hardcode line number gutter width 2025-01-31 16:21:17 -05:00
Christian Rocha de97754f09 fix(textarea): infer if we should use focused or blurred styles 2025-01-31 16:21:17 -05:00
Christian Rocha 24016e6ce4 chore(textarea): consolidate line number rendering into a method 2025-01-31 16:21:17 -05:00
Christian Rocha ad8e4bf480 chore(textarea): improve comments, note ares that need attention 2025-01-31 16:21:17 -05:00
Christian Rocha 1fd9c2666a chore(textarea,cursor): simplify cursor API 2025-01-31 16:21:17 -05:00
Christian Rocha eb985a2f81 chore(textarea): improve cursor styling API 2025-01-31 16:21:17 -05:00
Christian Rocha 0e5ff3c5c3 chore(textarea): rename Model.SetCursor to Model.SetCursorColumn
Set.CursorColumn sets the cursor column position. This change was made
for clarity.
2025-01-31 16:21:17 -05:00
Christian RochaandAyman Bagabas 58b94b31e8 fix(textarea): doc comment typo
Co-authored-by: Ayman Bagabas <ayman.bagabas@gmail.com>
2025-01-31 16:21:17 -05:00
Christian RochaandAyman Bagabas 0b3c0a2653 fix(textarea): doc comment
Co-authored-by: Ayman Bagabas <ayman.bagabas@gmail.com>
2025-01-31 16:21:17 -05:00
Christian Rocha 7cdd5f37fe chore(textarea,cursor): use textarea to manage virtual cursor styling 2025-01-31 16:21:17 -05:00
Christian Rocha 9d5d140b3c chore(textarea,cursor): flesh out real cursor API 2025-01-31 16:21:17 -05:00
Ayman BagabasandGitHub a0d9fe396d refactor: progress: return Model instead of tea.Model (#719)
This conforms to the new generic bubbletea API.
See https://github.com/charmbracelet/bubbletea/pull/1298
2025-01-29 15:59:11 -05:00
Christian Rocha 421843b83b chore(merge): branch 'master' into v2-exp 2025-01-28 09:31:01 -05:00
518ff7d0d0 feat(textarea): add Cursor method (#712)
* feat(textarea): add CursorPosition method

This returns the current cursor position accounting any soft-wrapped
lines and multi-rune characters.

* chore(textarea): redefine how real cursor properties are accessed (#714)

---------

Co-authored-by: Christian Rocha <christian@rocha.is>
2025-01-23 16:37:07 -05:00
Ayman BagabasandGitHub 3ba296c534 (v2) Revert cursor position from v2-area (#709)
* chore: revert "wip"

This reverts commit d020289a27, reversing
changes made to c288adf7ab.

* chore: revert "feat(textarea): add SetOffset and CursorPosition methods"

This reverts commit afbb7bc049.

* chor: revert "fix(textarea): respect double-width characters in real cursor position"

This reverts commit 804c370801.

* chore: revert "feat(textarea): use a real cursor position"

This reverts commit 8c3085a6cd.
2025-01-23 11:49:34 -05:00
Christian Rocha 6abd576e36 chore(merge): branch 'v2-exp' into v2-area 2025-01-22 09:11:21 -05:00
1bdd4c6fb3 fix: stopwatch.Start() (#707)
Signed-off-by: Bence Vidosits <bence.vidosits1@ibm.com>
Co-authored-by: Bence Vidosits <bence.vidosits1@ibm.com>
2025-01-22 09:10:20 -03:00
Carlos Alexandro BeckerandGitHub 7ab08fb438 fix(viewport): scroll to last line when borders (#706)
If the viewport has borders, they are not currently taken into account
when calculating the viewport max y offset, which might cause the last
line to not be visible.

This is easily reproducible in `gum pager`.

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2025-01-21 19:31:03 -03:00
bashbunniandGitHub e3ce11a65f docs: update charm & friends blurb (#703)
* docs: update charm & friends blurb

* docs: simplify messaging, link to instructions
2025-01-17 12:48:08 -08:00
87a4e45a58 docs: additional bubbles (#583)
* docs: additional bubbles

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* Update README.md

Co-authored-by: bashbunni <15822994+bashbunni@users.noreply.github.com>

* Update README.md

Co-authored-by: Christian Rocha <christian@rocha.is>

* Update README.md

Co-authored-by: Christian Rocha <christian@rocha.is>

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Co-authored-by: bashbunni <15822994+bashbunni@users.noreply.github.com>
Co-authored-by: Christian Rocha <christian@rocha.is>
2025-01-17 12:32:41 -08:00
Carlos Alexandro Becker 0c83e6f4c8 chore(deps): update
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2025-01-15 12:25:09 -03:00
Carlos Alexandro Becker fbe642df17 chore(deps): update 2025-01-14 15:34:37 -03:00
Carlos Alexandro Becker 3487634e4d chore(deps): update ansi
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2025-01-14 14:26:31 -03:00
Carlos Alexandro Becker f28e78e6ab Merge remote-tracking branch 'origin/master' into v2-exp 2025-01-14 14:22:36 -03:00
2d53a618a9 feat(viewport): horizontal scroll (#240)
* horizontal scroll

* rebase branch

* add tests

* add tests with 2 cells symbols

* trimLeft, move to charmbracelete/x/ansi lib

* up ansi package

* Update viewport/viewport.go

Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: do not navigate out to the right

* fix: cache line width on setcontent

* fix tests

* fix viewport tests

* add test for preventing right overscroll

* chore(viewport): increase horizontal step to 6

* chore(viewport): make horizontal scroll API better match vertical scroll API

* fix: nolint

* fix: use ansi.Cut

* perf: do not cut anything if not needed

* feat: expose HorizontalScrollPercent

* fix: do not scroll if width is 0

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: visible lines take frame into account

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Co-authored-by: Christian Rocha <christian@rocha.is>
2025-01-10 08:38:48 -03:00
2e3a42396e chore(progress)!: migrate progress to lipgloss (#676)
* chore(progress)!: migrate progress to lipgloss

This removes the dependency on termenv and replaces it with lipgloss. This
change also removes the WithColorProfile option, as it is no longer needed.
The new API uses `color.Color` types for colors, which are more flexible and
allow for more advanced color manipulation.

* Update progress/progress_test.go

Co-authored-by: Christian Rocha <christian@rocha.is>

* Update progress/progress_test.go

Co-authored-by: Christian Rocha <christian@rocha.is>

* chore: go mod tidy

---------

Co-authored-by: Christian Rocha <christian@rocha.is>
2024-12-12 10:51:23 -05:00
8624776d45 fix(textinput): slicing outside cap (#532)
* textinput: fix slicing outside cap

* textinput: add test that makes slicing outside cap occur

* chore: tidy with gofmt

---------

Co-authored-by: bashbunni <bunni@bashbunni.dev>
2024-12-05 13:40:33 -08:00
Ayman Bagabas d020289a27 wip 2024-11-26 15:00:40 -05:00
Carlos Alexandro BeckerandChristian Rocha c288adf7ab fix: fmt 2024-11-26 14:17:28 -05:00
Ayman BagabasandChristian Rocha afbb7bc049 feat(textarea): add SetOffset and CursorPosition methods 2024-11-26 14:17:28 -05:00
Carlos Alexandro BeckerandChristian Rocha 4c214e0848 feat: formatter 2024-11-26 14:17:28 -05:00
Carlos Alexandro BeckerandChristian Rocha 56f7197cd3 fix: move to last line on accept 2024-11-26 14:17:28 -05:00
Carlos Alexandro BeckerandChristian Rocha 4755f88132 fix: comp 2024-11-26 14:17:28 -05:00
Carlos Alexandro BeckerandChristian Rocha ca9cbbc99e wip
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-11-26 14:17:28 -05:00
Carlos Alexandro BeckerandChristian Rocha 8789a984d8 wip
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-11-26 14:17:28 -05:00
Carlos Alexandro BeckerandChristian Rocha 2ec013be27 wip
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-11-26 14:17:28 -05:00
Carlos Alexandro BeckerandChristian Rocha 7073d1abc8 wip: area
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-11-26 14:17:28 -05:00
Ayman Bagabas eb9b6c5a06 chore: merge branch 'v2-exp' into v2-real-textarea 2024-11-26 14:13:07 -05:00
Ayman Bagabas bd415b4eba chore: update dependencies and fix colors 2024-11-21 12:20:47 -05:00
Carlos Alexandro BeckerandGitHub e5296a2b0f ci: fix goreleaser config (#668)
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-11-15 19:00:41 -03:00