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
9c4db800ef
feat(textarea): add atomic range editing support ( #19 )
...
- add public AtomicRange API with validation and diagnostic errors
- make cursor movement, deletion, insertion, selection, undo/redo, and set_lines atom-aware
- clear caller-derived atomic ranges after successful content mutations
- add focused atomic range tests plus serde coverage
- document atomic ranges and add a caller-owned parsing example
2026-07-01 04:17:20 +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
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
cc783097ae
docs(readme): replace CI badge with Rust Test and Rust Clippy badges ( #7 )
2026-02-19 00:22:51 +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
e56b6e0da4
update fuzz deps and fix warnings in fuzz targets
2024-10-23 01:20:27 +09:00
rhysd
b8491704bc
improve description of feature gates in readme document
2024-08-12 22:29:08 +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
c99108bf45
directly implement Widget for &TextArea ( fix #78 )
2024-08-02 16:31:21 +09:00
rhysd
d5c9959f28
fix image size ratio due to update of the file
2024-08-01 10:48:34 +09:00
Linda_pp
d9571ca50e
Merge pull request #75 from achristmascarl/cursor-word-end
...
add `CursorMove` for next end of word
2024-07-31 22:51:12 +09:00
rhysd
19eda54011
fix example code for serde support in readme
2024-07-31 22:43:51 +09:00
achristmascarl
757ea187af
ignore readme test
2024-07-30 15:44:46 -04:00
achristmascarl
d016971a5f
update tests, examples, readme
2024-07-30 15:09:03 -04:00
Yoshihiro Sugi
c54e8d458d
Update README.md
2024-07-14 22:14:31 +09:00
rhysd
774f68c1b7
update changelog for v0.5.1 changes
2024-07-12 23:52:33 +09:00
rhysd
1cb967f0eb
describe serde support in readme document
2024-07-12 23:43:16 +09:00
rhysd
fc08babaaf
add screencast of vim example
2023-11-17 23:54:23 +09:00
rhysd
9f206200e5
refactor Vim emulation as state machine
2023-11-17 23:23:55 +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
8e3a432ecc
add Key::Copy, Key::Cut, Key::Paste support
2023-11-15 01:29:44 +09:00
rhysd
523a888f26
implement TextArea::select_all
...
but it is not assigned to default key shortcuts because C-a is already
in use.
2023-11-15 00:11:18 +09:00
rhysd
18610dc58c
measure and monitor coverage with codecov
2023-11-12 23:27:55 +09:00
rhysd
a54ce36d22
refactor text selection and add more tests ( fix #6 )
2023-11-12 18:22:17 +09:00
fritzrehde
addf3e9656
fixed some spelling mistakes
2023-10-30 12:02:23 +01: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
1e781950d6
describe termwiz support in documents
2023-10-21 02:41:50 +09:00
rhysd
d9dd1a168c
refactor password example and the example screencast in readme
2023-10-20 22:02:04 +09:00
rhysd
f4cd38ed50
use rust,ignore code fences in readme.md ( fix #34 )
...
so that we no longer need to add `--skip` on `cargo test`
2023-10-19 11:50:49 +09:00
rhysd
385ed43f74
fix contributing guide and clippy warnings in tests
2023-10-02 14:46:29 +09:00
rhysd
01d49b5d0b
note higher Rust version is required due to ratatui features
2023-10-01 23:30:23 +09:00
rhysd
c84c0ebe55
rename placepop example to more obvious popup_placeholder
2023-10-01 22:28:14 +09:00
rhysd
c03b453f99
fix compilation error of placepop example and add it to examples doc
2023-10-01 22:23:18 +09:00
rhysd
502a3a7dcb
small fixes in readme document
2023-10-01 22:03:33 +09:00
rhysd
959be77012
describe updated your own backend support in readme
2023-04-16 23:27:40 +09:00
rhysd
51fae7e2d2
describe crossterm or termion is necessary to be installed in user's project
2023-04-15 23:17:32 +09:00
rhysd
dbda5429d5
fix how to install tui-textarea with ratatui support
2023-04-14 22:44:22 +09:00
rhysd
70279751ee
describe ratatui crate support in readme
2023-04-13 23:16:14 +09:00
rhysd
8c0a76b052
add simple modal text editor example
2022-10-20 08:39:19 +09:00
rhysd
2c553674a9
add more mappings to Vim-like mappings usage
2022-10-20 08:09:35 +09:00
rhysd
f3404707f6
add scroll mappings to modal editor usage in document
2022-10-19 21:34:22 +09:00
rhysd
eb4103e581
add default key maps for scrolling down/up by page
2022-10-17 21:54:36 +09:00
rhysd
4e1a99988f
implement Scrolling enum to specify scrolling more flexibly
...
this is a breaking change. next release should be v0.2.0.
2022-10-03 20:59:26 +09:00
rhysd
63ae3503d4
add document and doc tests for TextArea::scroll and CursorMove::InViewport
2022-07-24 10:05:27 +09:00