Commit Graph
75 Commits
Author SHA1 Message Date
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
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 Bagabas bd415b4eba chore: update dependencies and fix colors 2024-11-21 12:20:47 -05:00
Christian Rocha 0a6b6e6fd7 chore(merge): branch 'master' into v2-exp 2024-11-15 08:38:55 -05:00
Christian Rocha 398e92c5ae fix: remove default character limit 2024-11-15 08:30:03 -05:00
Christian Rocha f439d83043 fix(textarea): max height should not determine max lines
Fixes #671.
2024-11-15 08:30:03 -05:00
Christian Rocha fc0fa7807e feat(textarea): add helpers for default light and dark styles 2024-11-05 21:38:29 -05:00
Christian Rocha 52bd03ed5b feat!(viewport): use getters and setters for width and height 2024-10-31 15:02:05 -04:00
Christian Rocha 3b879e7694 feat!(viewport): width and height are now optional args in New() 2024-10-31 15:02:05 -04:00
Christian Rocha 4ce3faadcf feat!(textarea): DefaultKeyMap is now a func instead of a global 2024-10-31 15:02:05 -04:00
Ayman Bagabas db64e3cd78 feat: update lipgloss to v2 2024-10-29 15:54:24 -04:00
Christian Rocha 12271df027 chore(textarea): nest focused and blurred styles in a parent struct 2024-10-24 17:29:41 -04:00
Christian Rocha 1efec1505f chore(textarea): minimal updates for Lip Gloss v2 2024-10-24 16:44:30 -04:00
Christian Rocha 57ac102802 chore(merge): branch 'master' into v2-mini-tidy 2024-10-24 15:22:16 -04:00
Christian Rocha 4e05c24fc4 chore: move runeutil and memoization into internal 2024-10-24 15:21:20 -04:00
Christian Rocha 358a6c58c8 chore(lint): fix and suppress all soft lint issues; update directives 2024-10-24 12:35:42 -04:00
Ayman Bagabas f4fca1b3a0 fix(textarea): add support for bracketed-paste msg 2024-10-10 17:50:59 -04:00
Ayman Bagabas a2602f8509 feat!: v2: move to v2 module 2024-09-18 14:12:55 -04:00
Ayman Bagabas 0fdf5f5be5 feat: use bubbletea/v2 2024-09-18 14:09:58 -04:00
Ayman Bagabas a93bfef532 feat!: use bubbletea@v2-exp 2024-09-09 14:12:52 -04:00
Ayman Bagabas 549d0767b3 chore: fix lint 2024-08-19 16:27:18 -04:00
Christian Rocha a9344b5953 chore(textarea): lift an if condition into a parent loop 2024-07-17 09:26:38 -04:00
Christian Rocha c30c185b93 feat(textarea): end of buffer lines span the full block
This is for styling purposes, particularly when you want to apply
a background to the entire textarea.
2024-07-17 09:26:38 -04:00
Christian Rocha 95d338b099 feat(textarea): dynamically determine line number integer padding 2024-07-17 09:26:38 -04:00
Christian Rocha 1a3627eb98 feat(textarea): inherit styles from base (and elsewhere)
This reduces the amount of styling needed for what's likely more common
use cases, such as using Styles.Base to apply a background color to the
entire field.
2024-07-17 09:26:38 -04:00
Ayman BagabasandGitHub 11a9fccd58 chore: fix lint issues (#534) 2024-05-31 16:48:29 -04:00
Michael LorantandGitHub 296fcf77fa feat(textarea) Add multiline placeholder (#302)
Add the capability to show a multiline placeholder. Some refactoring was
required to improve readability and improve logic.

End of line buffer character was only shown when line numbers were
displayed which requires some verification whether this is the intended
outcome. This change resolves this issue.
2024-05-30 20:28:20 -04:00
Garrett MartinandGitHub 620ca7dfa9 fix: default textarea EndOfBufferCharacter should be ' ' (#510) 2024-05-23 17:37:59 -04:00
Ayman Bagabas 14a62710fc fix(textarea): use x/ansi to strip ansi sequences 2024-05-23 15:01:44 -04:00
Michael LorantandMaas Lalani 48dffdd97e refactor(textarea): Improve setting width
When setting the width of the textarea there were some issues
preventing this from working correctly. These problems included:

- If the maximum width needed to be used, the width of the textarea did
  not take into account the prompt and line number width.
- The viewport width did not take into account the style width.

The entire function was confusing to understand and a refactor was
warranted.

As part of this refactor, the bugs mentioned above were fixed and the
code was simplified.

To verify that the logic works as expected, unit tests were expanded to
validate that setting the width works as expected.

Signed-off-by: Michael Lorant <michael.lorant@nine.com.au>
2024-04-06 01:37:46 -04:00
Michael LorantandGitHub b9e62cbfe1 Improve textarea tests (#490) 2024-03-08 19:23:05 -05:00
Michael LorantandGitHub 6c9e52a8fd Fix end of buffer character (#491) 2024-02-29 10:29:45 -05:00
Travis HarrisonandGitHub 9fb83699e9 feat(textarea): add help to textarea key bindings (#418) 2024-02-28 11:38:47 -05:00
Maas Lalani c94f0cc151 fix(textarea): end of buffer alignment 2024-02-28 10:57:49 -05:00
Michael LorantandMaas Lalani e985ec9f15 Add tests for textarea view
Add improved unit tests for textarea view function.

The end of buffer unit test was flawed and failed to properly check
whether the end of buffer character was in the correct location. This
test has been removed as this feature is now verified as part of these
test cases.

Signed-off-by: Michael Lorant <michael.lorant@nine.com.au>
2024-02-28 10:49:34 -05:00