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

71 Коммитов

Автор 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
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