Manos Pitsidianakis
733de5a5fb
Fix some clippy suggestions
1 year ago
Manos Pitsidianakis
b49d965695
Fix unused var etc warnings
1 year ago
Manos Pitsidianakis
521f634e7b
melib/nntp: implement NNTP posting
1 year ago
Manos Pitsidianakis
5327dae02d
melib/text_processing: add LineBreakText iterator
A lazy stateful iterator for line breaking text. Useful for very long text where you don't want to linebreak it completely before user requests specific lines.
2 years ago
Manos Pitsidianakis
d4f508642a
widgets: allow text overflow in text fields
Show text content of a text field that exceeds the visible width
properly.
2 years ago
Manos Pitsidianakis
041257f9a6
melib/text_processing: fix CodePointsIterator implementation
Old implementation was redundant and broken.
2 years ago
Manos Pitsidianakis
1da6d75b08
melib/text_processing: add new wcwidth implementation
Download and parse Unicode data files to judge code point width.
Inspired by https://github.com/ridiculousfish/widecharwidth/
2 years ago
Manos Pitsidianakis
d5aa2cb3ef
melib/line_break: add segment tree impl
The widths of subslices of a line are calculated in each call to
`binary_search_by` when reflowing long lines. This can be done in Ologn
queries with a segment tree.
2 years ago
Manos Pitsidianakis
54cb4ea623
melib/build.rs: remove unnecessary file creation
2 years ago
Manos Pitsidianakis
10a3430233
melib/line_break: fix panics from Unicode13 linebreak test cases
2 years ago
Manos Pitsidianakis
46c44ced96
line_break: check of eof in LB13
2 years ago
Manos Pitsidianakis
14663e46b9
Remove some old TODO comments
2 years ago
Manos Pitsidianakis
8c6c9806b5
Fix some clippy lints
2 years ago
Manos Pitsidianakis
be31d35ff6
melib/line_break: fix missing Break on B2 class
Graphemes of B2 class, such as the Em dash can break before and after.
However this case wasn't handled in the line break iterator.
2 years ago
Manos Pitsidianakis
890000bd0e
status page: trim extension name at 30 chars
NNTP has some long protocol extension names
3 years ago
Manos Pitsidianakis
a7e177586a
Fix clippy lints
3 years ago
Manos Pitsidianakis
b3b9563db0
LineBreakCandidateIter: make iter non-recursive
A line with lots of graphemes without any breaks can overflow the stack,
so make the recursion into a loop.
3 years ago
Manos Pitsidianakis
d915c4a7c8
text_processing: remove invalid unreachable!()
3 years ago
Manos Pitsidianakis
ac71d627f1
Implement search for CellBuffer
3 years ago
Manos Pitsidianakis
1245eae0be
Add Knuth–Morris–Pratt to pager
3 years ago
Manos Pitsidianakis
b107424258
melib: update GlobMatch algorithm
Taken from https://research.swtch.com/glob
3 years ago
Manos Pitsidianakis
f131e01bfc
Fix drawing getting stuck in empty terminal
Fix drawing getting stuck in loops when terminal is too small by
checking for it.
3 years ago
Manos Pitsidianakis
05b91f1c02
Remove text_processing
Unwrap text_processing into melib
In preparation for uploading meli as a separate crate on crates.io.
3 years ago