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
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
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
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
rhysd
ad518def02
prefer eliding lifetimes
2024-12-01 15:12:50 +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
9650a1171a
fix warnings and compile errors due to ratatui v0.28 update
2024-08-08 00:12:17 +09:00
rhysd
9087e75c1f
fix e behavior in operator-pending mode of vim example
...
`e`'s behavior is actually not same as `w`. For example, let's say we
have the following text and the cursor is on 'f'.
```
foo bar
```
Then `de` deletes the text 'foo' but `dw` deletes the text 'foo '
including the trailing space.
2024-08-03 23:08:58 +09:00
rhysd
19c32cefc5
fix trying to render &&TextArea in editor examples
2024-08-02 16:43:27 +09:00
rhysd
c99108bf45
directly implement Widget for &TextArea ( fix #78 )
2024-08-02 16:31:21 +09:00
Franco Morroni
842df5e1b6
chore: add block border color so example matches readme gif
2024-08-02 01:08:35 -03:00
rhysd
60943f8b14
fix vim example's text selection should be inclusive in visual mode
...
Vim's text selection is inclusive. For example, when a cursor is on 'r'
of 'bar', 'r' is included in the selection. However tui-textarea's text
selection is exclusive on the end of the range. Move cursor forward to
emulate Vim's behavior better.
2024-08-02 00:12:08 +09:00
rhysd
76f1ab6b5a
fix vim example's e mapping in operator-pending mode ( fix #76 )
2024-08-01 23:55:35 +09:00
achristmascarl
d016971a5f
update tests, examples, readme
2024-07-30 15:09:03 -04:00
rhysd
552e36d963
fix clippy warnings in examples
2024-07-07 23:32:53 +09:00
rhysd
306a976fc9
update block and style only when mode changed in vim example
2023-11-18 14:50:13 +09:00
rhysd
9f206200e5
refactor Vim emulation as state machine
2023-11-17 23:23:55 +09:00
rhysd
7c66f3ad5a
make operator-pending mode variant of Mode
2023-11-17 21:22:36 +09:00
rhysd
ad8ad19e83
implement visual mode for vim example
2023-11-16 18:15:56 +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
b2cee69cdd
implement operator pending mode and gg in modal example
2023-11-16 15:46:48 +09:00
rhysd
a54ce36d22
refactor text selection and add more tests ( fix #6 )
2023-11-12 18:22:17 +09:00
pm100
5a2649abe9
implement select ( #45 )
...
* select, second go using new multiline code
* implemented internal delete_str, added tests
* delete_str_internal must not put non deleted strings into history. Ie ctrlc should not change history
* delete_str was taking lines out in the non delete case
* corrected comment
* fixes after feedback. Plus multichar bugs. change modal sample
2023-11-10 21:10:04 +09:00
rhysd
9ec2f32edf
fix disabling/enabling raw mode in editor example ( fix #44 )
2023-11-06 19:21:31 +09:00
rhysd
6982f2d1e6
fix crash in split example
2023-10-24 17:18:27 +09:00
rhysd
9882974669
remove tuirs_popup_placeholder example
2023-10-24 16:00:21 +09:00
rhysd
330b7074ae
fix examples to invert ratatui and tui-rs
2023-10-24 13:15:16 +09:00
rhysd
4bdf55a1f6
remove unnecessary tick handling in termwiz example
2023-10-21 10:43:25 +09:00
rhysd
257c8bcbf0
add example for usage with termwiz crate
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
paul moore
45445e0554
change 'password' to more generic 'mask'. Fix tab behavior
2023-10-15 09:55:16 -07:00
paul moore
84985fa04c
password - second go
2023-10-13 17:37:37 -07:00
rhysd
92c107c939
rename set_placeholder to set_placeholder_text and add more APIs
2023-10-01 23:17:32 +09:00
rhysd
2031e5b20c
allow any string types for setting placeholder text
2023-10-01 22:47:54 +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
Linda_pp
98a60e9138
Merge pull request #16 from pm100/ghost
...
placeholder feature
2023-10-01 22:12:25 +09:00
rhysd
652b449526
fix compilation errors and warnings in examples
2023-10-01 20:46:10 +09:00
rhysd
30e651de77
update ratatui from 0.20 to 0.23 and crossterm for ratatui to 0.27
2023-10-01 20:31:09 +09:00
pm100
bfd5527efe
placeholder feature
2023-04-29 18:17:39 +02:00
rhysd
526f5cc334
separate examples for ratatui
2023-04-13 22:21:03 +09:00
rhysd
9428172a1d
support ratatui crate by editor and termion example
2023-04-13 22:05:25 +09:00
rhysd
dbe03202a8
add ratatui crate support
2023-04-13 21:51:27 +09:00
rhysd
c5138aabf2
simplify UI structure of modal example
2022-10-21 23:47:53 +09:00
rhysd
8c0a76b052
add simple modal text editor example
2022-10-20 08:39:19 +09:00
rhysd
b54fe5c01d
implement vertial mouse scroll with both crossterm and termion supports
2022-07-23 20:09:26 +09:00
rhysd
ea377db4ee
prefer Into::into to From::from
2022-07-09 12:38:05 +09:00
rhysd
fee107847e
use ↓/↑ instead of ^←/^→ to search next/previous in editor example
2022-07-08 17:40:59 +09:00