1
0
зеркало из https://github.com/glebtv/tui-textarea.git synced 2026-08-28 11:36:17 +03:00
Граф коммитов

88 Коммитов

Автор SHA1 Сообщение Дата
srothgan
475f0beb82 feat(textarea): add native cursor render mode (#26)
* feat(textarea): add native cursor render mode

- Add CursorRenderMode::{Cell, Hidden} and TextArea accessors for render mode plus rendered_cursor_position().
- Store the terminal-relative cursor position from a shared render plan that accounts for blocks, line numbers, scroll, wrapping, tabs, and wide Unicode.
- Let hidden mode suppress only the textarea-owned cursor cell while preserving default Cell rendering and set_cursor_style behavior.
- Document native cursor integration and add focused tests for default rendering, hidden rendering, placeholders, and cursor-position edge cases.

* chore: prepare 0.12.1 release
2026-07-10 20:14:27 +10:00
srothgan
d6335585bc chore: prepare 0.12.0 release (#25) 2026-07-01 05:12:31 +10:00
srothgan
ebd3af05e1 chore: refresh GitHub repository setup (#23)
* chore: refresh GitHub repository setup

* chore: align CI with Rust 1.88 MSRV
2026-07-01 04:47:43 +10:00
srothgan
8f708cfdc7 feat: add screen/data cursor maps for wrapped movement (#17)
* feat!: remove tui-rs support and map screen cursors

* docs(examples): add fixed-size recording mode

* chore(release): bump to v0.11.0
2026-05-03 16:48:05 +10:00
srothgan
f20df6b965 feat: set lines measure cache (#16)
* feat(textarea): add bulk replace API and transparent measure() caching

- add TextArea::set_lines(lines, cursor) for direct whole-buffer replacement
- preserve widget configuration while resetting history, selection, highlights, viewport scroll, and cached measurement state
- cache measure(width_cols) results by outer width and reuse them until dependencies change
- invalidate cached measurement on content edits, undo/redo, and measure-affecting setters
- add focused tests for set_lines behavior and cache correctness

* chore(release): bump to v0.10.2 and refresh docs

- prepare the v0.10.2 release with updated crate version and changelog entry
- refresh README coverage for fork-added APIs including wrapping, measurement, bulk replace, and custom highlights
2026-03-13 20:58:29 +10:00
srothgan
cb6c431908 feat: wrapped line cursor navigation (#15)
* feat(cursor): add Up/Down navigation between wrapped visual lines

- Extend CursorMove::next_cursor() with optional wrapped rows parameter so Up/Down use visual row indices when wrapping is active
- Compute wrapped rows in move_cursor_with_shift() and pass them through
- Fix cursor_at_visual_row() boundary clamping for non-last wrapped segments to prevent the cursor landing on the next visual line
- Preserve visual column offset when moving between wrapped rows so the cursor moves straight vertically instead of jumping to row start/end

* chore(release): bump to v0.10.1 and update changelog
2026-03-06 04:15:19 +10:00
srothgan
1a64a949b6 Feat/textarea row measurement min max (#14)
* feat(textarea): add row measurement API with configurable min/max bounds

- add TextAreaMeasure and TextArea::measure(width_cols)
- make measurement wrap-aware and include block chrome rows
- add set_min_rows/set_max_rows (+ getters) with invariant normalization
- clamp preferred_rows to effective [min_rows, max_rows]
- export TextAreaMeasure at crate root
- switch examples/variable.rs to measured preferred_rows
- add integration tests for measure + min/max behavior

* chore(release): bump to v0.10.0 and update changelog
2026-02-26 01:00:26 +10:00
srothgan
56f531a73f chore: migrate to Rust 2024 edition and bump to v0.9.2 (#12)
* chore: migrate to Rust 2024 edition and bump to v0.9.2

- Bump edition to 2024 and rust-version to 1.85.0
- Replace f64::log10 with usize::ilog10 in num_digits
- Fix clippy lints surfaced by edition bump: repeat_n, derived Default, then_some
- Expand watch-check and watch-test aliases to cover all feature paths (crossterm_0_28, no-backend, tuirs variants, serde, arbitrary)
- Expand CI test and clippy workflows to full 6/8-entry feature matrices including termion on Ubuntu
- Apply rustfmt import reordering from edition 2024 rules

* fix: revert turis linux checks
2026-02-20 03:38:50 +10:00
srothgan
f03a7b9ec1 fix(textarea): clamp undo/redo cursor after oversized delete_str (#9) 2026-02-19 07:37:00 +10:00
srothgan
1740facd24 feat: add unicode-aware soft-wrap modes and wrapped rendering (#8)
* feat(textarea): add unicode-aware soft-wrap modes and wrapped rendering

- add WrapMode API/state: None, Word, Glyph, WordOrGlyph
- keep None behavior unchanged (horizontal scroll)
- implement wrapped render path with logical-to-visual row mapping
- add Unicode-aware wrapping via unicode-segmentation + unicode-width
- make wrap width tab-aware to prevent hidden text
- apply cursor-line style on wrapped continuation rows
- fix selection at soft-wrap boundaries (no synthetic highlighted space)
- add wrap-focused tests for long text, newlines, tabs, tiny widths, and line-number
    continuations

* chore(release): bump to v0.9.0 and update README/CHANGELOG
2026-02-19 03:26:48 +10:00
srothgan
43afdc5ce1 chore/integrate-open-prs (#5)
* docs: integrate upstream PR #116

* feat: integrate upstream PR #113

* chore: add portable-atomic for viewport atomics (upstream PR #111)

* fix(examples): integrate upstream PR #100

* fix(word): integrate upstream PR #98

* fix(widget): handle wide unicode char widths in horizontal scroll (upstream PR #94)

* feat(highlight): integrate upstream PR #93

* chore(release): prepare v0.8.0 docs and CI-clean merged upstream updates

* docs(license): rename LICENSE.txt to LICENSE and fix header capitalization
2026-02-18 23:34:50 +10:00
srothgan
b361f74b06 chore: rename crate to tui-textarea-2 and update metadata/docs links (#2)
* chore: rename crate to tui-textarea-2 and update metadata/docs links

* chore: prepare v0.7.1 publish for tui-textarea-2

* ci(release): automate publish, tag, and release after merge to main
2026-02-18 21:39:59 +10:00
srothgan
4689076df5 chore: ratatui 0.30 maintenance + collaboration baseline (#1) 2026-02-18 11:46:03 +01:00
rhysd
f2de5ff1ef bump up version to v0.7.0 2024-10-23 01:24:26 +09:00
Alessandro Ricottone
413c4f62da Update Ratatui to 0.29.0 (#86)
Co-authored-by: Josh McKinney <joshka@users.noreply.github.com>
2024-10-23 01:08:06 +09:00
rhysd
2cae64bae6 do not depend on implicit features
since it is warned on building this crate in Rust 2024
2024-08-15 12:35:11 +09:00
rhysd
a0b820cf7d bump up version to v0.6.1 2024-08-09 00:44:22 +09:00
rhysd
3fb0a78a4c use the same version of termion as tui's dependency for tuirs-termion feature 2024-08-08 23:04:13 +09:00
rhysd
7a8c020d4e bump up version to v0.6.0 2024-08-08 00:26:11 +09:00
rhysd
5d77bf8a9a update ratatui dependency from 0.27 to 0.28 2024-08-07 23:55:24 +09:00
rhysd
e0c07375a8 bump up version to v0.5.3 2024-08-03 23:53:03 +09:00
rhysd
2ebce01d06 bump up version to v0.5.2 2024-08-01 10:54:15 +09:00
rhysd
f6f6642969 bump up version to v0.5.1 2024-07-12 23:47:26 +09:00
rhysd
673bdcb84b add tests for serde support 2024-07-12 23:36:45 +09:00
Linda_pp
fcd44bb7d9 Merge pull request #62 from cestef/main
Add serde feature to Scrolling, CursorMove and Input enums
2024-07-12 23:11:34 +09:00
cstef
afb9e691b8 Add derive feature to serde 2024-07-08 18:13:12 +02:00
rhysd
4b6b0b9fdb bump up version to v0.5.0 2024-07-07 23:42:00 +09:00
Josh McKinney
63a26044c8 Bump Ratatui to 0.27.0
- Updates termion and termwiz
- Fixes issue where tui-textarea picks up the wrong versions of packages
  https://github.com/rhysd/tui-textarea/pull/61\#discussion_r1597672569
- Replaces #61
2024-06-27 15:57:56 -07:00
cstef
1625d0b603 Add serde feature 2024-02-27 18:33:13 +01:00
rhysd
501e2b543d bump up version to v0.4.0 2023-11-19 23:30:51 +09:00
rhysd
409185f653 rename modal example to vim
since operator-pending mode is Vim-specific
2023-11-16 15:59:06 +09:00
rhysd
0d74f96ffe bump up version to v0.3.0 2023-10-25 00:08:10 +09:00
rhysd
6b6bb68567 enable termwiz and termion features on generating API doc 2023-10-24 17:25:29 +09:00
rhysd
a0aade4800 allow ratatui >=0.23.0, <1 (fix #36) 2023-10-24 17:02:37 +09:00
rhysd
70f7b95874 simplify ratatui/tui-rs feature groups by adding ratatui and tuirs features 2023-10-24 16:24:58 +09:00
rhysd
42c76a9d45 rename your-backend features to no-backend 2023-10-24 16:02:43 +09:00
rhysd
9882974669 remove tuirs_popup_placeholder example 2023-10-24 16:00:21 +09:00
rhysd
989be96aa9 invert tui-rs and ratatui in document 2023-10-24 15:32:26 +09:00
rhysd
330b7074ae fix examples to invert ratatui and tui-rs 2023-10-24 13:15:16 +09:00
rhysd
ef3b3188f4 invert ratatui-* features with tuirs-* 2023-10-24 13:15:16 +09:00
rhysd
1c32ed7227 bump up version to v0.2.4 2023-10-22 01:09:20 +09:00
rhysd
257c8bcbf0 add example for usage with termwiz crate 2023-10-21 02:41:50 +09:00
rhysd
892b4495d3 support termwiz crate for ratatui 2023-10-21 01:44:06 +09:00
rhysd
68275e4932 consider wide chars on calculating tab width 2023-10-21 00:30:36 +09:00
rhysd
b5a9f405e8 include tests directory in shipped package 2023-10-20 22:25:17 +09:00
rhysd
e7c83979e3 bump up version to v0.2.3 2023-10-20 22:15:48 +09:00
paul moore
84985fa04c password - second go 2023-10-13 17:37:37 -07:00
rhysd
32d415ce7f bump up version to v0.2.2 2023-10-02 02:18:18 +09:00
rhysd
5d89a9cdd4 fix building document 2023-10-02 02:17:19 +09:00
rhysd
48312c4f77 v0.2.1 (fixes #27, closes #22, closes #25, closes #26) 2023-10-02 01:42:20 +09:00