rhysd
952158f93a
describe versioning and add search operation to modal usage
2022-07-17 22:01:54 +09:00
rhysd
4e5b684baf
Merge branch 'perf'
...
```
group base main
----- ---- ----
cursor::char::back 1.00 32.8±0.63ms ? ?/sec 1.15 37.7±0.81ms ? ?/sec
cursor::char::down 1.00 29.9±0.62ms ? ?/sec 1.19 35.6±0.82ms ? ?/sec
cursor::char::forward 1.00 31.8±0.74ms ? ?/sec 1.06 33.8±0.90ms ? ?/sec
cursor::char::up 1.00 30.3±0.86ms ? ?/sec 1.02 30.8±0.73ms ? ?/sec
cursor::edge::head_end 1.00 33.2±0.63ms ? ?/sec 1.03 34.3±0.84ms ? ?/sec
cursor::edge::top_bottom 1.00 31.5±0.81ms ? ?/sec 1.11 34.9±0.82ms ? ?/sec
cursor::paragraph::down 1.00 30.1±0.83ms ? ?/sec 1.19 35.7±0.76ms ? ?/sec
cursor::paragraph::up 1.00 30.0±0.68ms ? ?/sec 1.03 30.9±0.63ms ? ?/sec
cursor::word::back 1.00 30.4±0.61ms ? ?/sec 1.05 32.1±0.64ms ? ?/sec
cursor::word::forward 1.00 31.9±0.65ms ? ?/sec 1.18 37.7±0.89ms ? ?/sec
delete::char 1.00 3.4±0.10ms ? ?/sec 4.48 15.3±0.82ms ? ?/sec
delete::line 1.00 1243.4±42.36µs ? ?/sec 7.71 9.6±0.38ms ? ?/sec
delete::word 1.00 2.7±0.10ms ? ?/sec 5.35 14.2±0.37ms ? ?/sec
insert::append::10_lorem 1.00 327.2±4.89ms ? ?/sec 1.00 327.6±4.92ms ? ?/sec
insert::append::1_lorem 1.00 7.0±0.16ms ? ?/sec 1.00 7.0±0.15ms ? ?/sec
insert::append::50_lorem 1.00 3.1±0.02s ? ?/sec 2.24 7.0±0.03s ? ?/sec
insert::random::10_lorem 1.00 133.8±2.78ms ? ?/sec 1.90 254.6±3.95ms ? ?/sec
insert::random::1_lorem 1.00 6.7±0.16ms ? ?/sec 1.01 6.8±0.14ms ? ?/sec
insert::random::50_lorem 1.00 709.0±7.70ms ? ?/sec 5.97 4.2±0.03s ? ?/sec
search::back_long 1.00 4.3±0.15ms ? ?/sec 3.02 13.0±0.49ms ? ?/sec
search::back_short 1.01 4.3±0.14ms ? ?/sec 1.00 4.2±0.10ms ? ?/sec
search::forward_long 1.00 4.4±0.14ms ? ?/sec 2.37 10.5±0.29ms ? ?/sec
search::forward_short 1.02 4.2±0.14ms ? ?/sec 1.00 4.1±0.10ms ? ?/sec
```
2022-07-17 15:27:17 +09:00
rhysd
ee4162c451
explicitly use subslice of lines
...
this improved performance by 2~5%
```
insert::append::1_lorem time: [7.0412 ms 7.0825 ms 7.1268 ms]
change: [-8.5796% -7.8935% -7.1723%] (p = 0.00 < 0.05)
Performance has improved.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe
Benchmarking insert::append::10_lorem: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 33.6s, or reduce sample count to 10.
insert::append::10_lorem
time: [328.15 ms 329.60 ms 331.12 ms]
change: [-9.6975% -9.1606% -8.6231%] (p = 0.00 < 0.05)
Performance has improved.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild
Benchmarking insert::append::50_lorem: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 321.1s, or reduce sample count to 10.
insert::append::50_lorem
time: [3.1633 s 3.1727 s 3.1826 s]
change: [-7.3473% -7.0339% -6.6629%] (p = 0.00 < 0.05)
Performance has improved.
```
2022-07-17 12:09:08 +09:00
rhysd
40e4bfbe15
render only displayed lines in Paragraph
...
by handling vertical scroll by ourselves
2022-07-17 09:23:47 +09:00
rhysd
b56f252f08
include rendering in fuzzing tests
2022-07-16 21:54:10 +09:00
rhysd
ac04feb5ea
add arbitrary crate as optional dependency
...
to avoid converting `Input` in fuzz test for making arbitrary inputs
2022-07-16 21:42:58 +09:00
rhysd
8b3b0aa34c
fix bench suite names
2022-07-16 11:18:22 +09:00
rhysd
025ce6b187
add tests for CursorMove::Forward and CursorMove::Back
2022-07-14 22:57:31 +09:00
rhysd
c1622c197d
add benchmarks to delete text
2022-07-13 21:44:37 +09:00
rhysd
59d5d473d4
reduce overhead to build textarea instance using .clone() in benchmarks
2022-07-13 09:27:59 +09:00
rhysd
421691d602
implement Clone for TextArea and its dependencies
2022-07-12 22:56:06 +09:00
rhysd
9032320a7e
add benchmark for cursor moves
2022-07-12 20:18:06 +09:00
rhysd
e8df4c4127
show 'Available on crate feature search only' on docs.rs
2022-07-12 01:02:12 +09:00
rhysd
fd174b316e
use single atomic u32 value instead of two atomic u16 values
...
to ensure load/store row and col atomically
2022-07-11 10:55:48 +09:00
rhysd
61ce49b331
separate widget implementation to src/widget.rs
2022-07-11 10:55:48 +09:00
rhysd
44bf996941
separate implementation for highlighting to src/highlight.rs
2022-07-11 03:06:43 +09:00
rhysd
876ebf96cb
separate text search implementation to src/search.rs
2022-07-11 01:50:46 +09:00
rhysd
f5e3347e4c
update changelog for v0.1.4 changes
2022-07-11 01:07:54 +09:00
rhysd
bd131d9773
bump up version to v0.1.4
2022-07-11 01:01:44 +09:00
rhysd
aaabfe1613
fix cursor position after undo delete_line_by_head
2022-07-10 22:05:08 +09:00
rhysd
db83c4d14a
add benchmark suites for text search
2022-07-10 21:54:17 +09:00
rhysd
b4ececff71
add benchmark to insert lines randomly
2022-07-09 22:11:11 +09:00
rhysd
ee72b48fea
add first benchmark
2022-07-09 18:44:00 +09:00
rhysd
2ed0df07cf
add project-local cargo aliases
2022-07-09 17:44:37 +09:00
rhysd
8ec321f9dd
fix cursor line style is not applied when cursor is at end of line
2022-07-09 12:39:55 +09:00
rhysd
ea377db4ee
prefer Into::into to From::from
2022-07-09 12:38:05 +09:00
rhysd
e11a97ce49
update changelog for v0.1.3 changes
2022-07-08 18:30:44 +09:00
rhysd
dd59e8edb4
bump up version to v0.1.3
2022-07-08 17:50:22 +09:00
rhysd
259a626c97
Merge branch 'search'
2022-07-08 17:44:38 +09:00
rhysd
fee107847e
use ↓/↑ instead of ^←/^→ to search next/previous in editor example
2022-07-08 17:40:59 +09:00
rhysd
81da9ce094
describe usage for text search in document
2022-07-08 17:40:59 +09:00
rhysd
e78171913a
fix CI failure since termion does not support Windows
2022-07-08 12:53:46 +09:00
rhysd
1db4830a3c
fix cursor position on searching backward
2022-07-08 12:50:59 +09:00
rhysd
358e9dbc52
search forward/back with ^N/^P in editor example
2022-07-08 12:43:07 +09:00
rhysd
5aa25ea24d
show 'match not found' error in search box title in editor example
2022-07-08 12:17:53 +09:00
rhysd
dd409d6c4d
fix search text highlight on zero width match
2022-07-08 12:17:53 +09:00
rhysd
8320fcdbb8
add tests and document for text search
2022-07-08 12:17:53 +09:00
rhysd
86bd8dd6ef
report pattern error in title of search box in editor example
2022-07-08 10:22:54 +09:00
rhysd
7bc9a959f2
keep undo history on closing search box in editor example
2022-07-08 10:12:49 +09:00
rhysd
8008c0ebda
fix search_forward/search_back should finally match to the cursor position
2022-07-08 10:06:26 +09:00
rhysd
5b08d16214
implement text search in editor example
2022-07-08 10:05:53 +09:00
rhysd
460c51a796
fix warnings when no feature is enabled
2022-07-07 23:03:01 +09:00
rhysd
4bd2b0819d
search rest of current line on search_forward/search_back
2022-07-07 20:08:45 +09:00
rhysd
043f5b9525
fix rendering cursor at end of line
2022-07-07 15:49:53 +09:00
rhysd
0ed3dc2081
add match_current parameter to search_forward/search_back
2022-07-07 13:02:06 +09:00
rhysd
68a18b2ae0
highlight searched text
2022-07-01 23:10:34 +09:00
rhysd
5914238724
implement minimal text search
...
- Set query with `TextArea::set_search_pattern`
- Move cursor to next match `TextArea::search_forward`
- Move cursor to previous match `TextArea::search_back`
2022-07-01 23:10:34 +09:00
rhysd
b5a475ba65
forbid unsafe code and debug prints
2022-07-01 23:08:22 +09:00
rhysd
6badc119be
add docs.rs badge to readme
2022-06-29 12:52:18 +09:00
rhysd
6a5e92c10e
update changelog for v0.1.2 changes
2022-06-25 11:53:33 +09:00