Pascal Kuthe
1edf451192
Correctly handle normalization in pattern API
2023-12-22 19:31:34 +01:00
a-kenji
89e32f915e
fix typos in documentation ( #27 )
2023-09-30 18:40:04 +02:00
Pascal Kuthe
323a6973ba
ensure that the matcher runs on the first tick
...
In the past the matcher was only started on the first tick but
nulceo did not wait for its result, so it always looked like the matcher
timed out.
Nulceo already correctly handles this case in case the pattern changes
or the item list was cleared, so we just had to set `cleared` to `true`
when the `Nucleo` instance is created.
2023-09-02 14:53:09 +02:00
Pascal Kuthe
e2e0f69aa8
allow direct access to column pattern
2023-08-29 15:11:27 +02:00
Pascal Kuthe
20bf02f0ac
Prepare for 0.2 release
...
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2023-08-29 00:17:04 +02:00
Pascal Kuthe
de844d6ace
move pattern API to nucleo-matcher
2023-08-28 02:56:08 +02:00
Pascal Kuthe
648dec1ceb
move Utf32String to nucleo-matcher
2023-08-28 01:51:23 +02:00
Pascal Kuthe
14014ed883
reformat with rustfmt 1.71
2023-08-28 01:51:22 +02:00
Pascal Kuthe
f18c19cd53
fix sort order of literal matcher ( #13 )
2023-08-21 01:02:53 +02:00
Poliorcetics
7476504978
Move reset to seperate function ( #10 )
2023-08-11 18:25:00 +02:00
Pascal Kuthe
9c4b71027f
fix scoring of new items
2023-08-08 17:32:29 +02:00
Pascal Kuthe
1756e47f44
Optimize rayon iterator usage to avoid allocation
2023-08-08 00:07:42 +02:00
Pascal Kuthe
3abe7b4c02
fix negative matches
2023-08-08 00:06:49 +02:00
Pascal Kuthe
a2b0491fad
remove unused file
2023-08-06 20:48:51 +02:00
Pascal Kuthe
ca9ffd9cb0
fix high leverl helper method
2023-08-06 20:18:55 +02:00
Pascal Kuthe
1aafe89a16
fix typos
2023-08-06 20:15:56 +02:00
Pascal Kuthe
b9ac6c9a20
correctly handle empty patterns in utility fuction
2023-08-06 20:01:02 +02:00
Pascal Kuthe
4fc0281dd7
correctly handle empty strings and strip leading and trailing whitespace
2023-08-06 19:59:28 +02:00
Pascal Kuthe
6b08991fac
test pattrn parsing and fix edgecases
2023-08-06 14:43:56 +02:00
Pascal Kuthe
bb0b5f8726
fix negative matching
2023-08-06 13:32:32 +02:00
Pascal Kuthe
ccacf9798c
cleanup memory ordering
2023-08-06 03:44:19 +02:00
Pascal Kuthe
d500fb90dd
fix sorting
2023-08-06 03:36:45 +02:00
Pascal Kuthe
6127ab86a3
Encode matcher state as snapshots
...
The matcher updates its state on every ticker, however thanks to timouts
in the tick function the input and the output state may missmatch. To
make this clearer (and fix some related bugs around restarting/clearing
the items) the current state (like items) is only exposed as a snapshot
now.
2023-08-06 02:02:11 +02:00
Michael Davis
f73a1988f2
Remove unused modules/files
2023-08-05 10:33:17 -05:00
Michael Davis
b4f547b0f4
Fix typos
2023-08-05 10:33:17 -05:00
Michael Davis
00a5b24c21
Fix 'cargo docs' warnings
2023-08-04 11:41:24 -05:00
Pascal Kuthe
9670035cdc
fix incorrect unmatched count calculation
...
This could lead to underflow (and crashed in debug builds)
2023-08-04 08:55:54 +02:00
Pascal Kuthe
f4e19b4567
add missing file
2023-08-03 22:28:53 +02:00
Pascal Kuthe
4049cdbd13
allow sorting to be canceled
...
this removes all left over UI lag
2023-08-03 21:05:02 +02:00
Pascal Kuthe
91a265eb6b
expose last matched pattern to allow correct index rendering
2023-08-03 20:34:42 +02:00
Pascal Kuthe
7a432aa051
Improve cancel speed for large matches
2023-08-03 02:34:27 +02:00
Pascal Kuthe
6cc59600e2
switch to lock-free item list
2023-08-03 00:28:07 +02:00
Pascal Kuthe
1cb902ccdb
Grapheme segment input and match on first grapheme char
2023-07-30 16:48:15 +02:00
Pascal Kuthe
878fd7b7ea
fix typos
2023-07-30 05:02:12 +02:00
Pascal Kuthe
1ce8850f7e
cleanup bugs
2023-07-30 04:52:44 +02:00
Pascal Kuthe
8d7a149b30
move matcher to subcrate
2023-07-26 15:32:04 +02:00
Pascal Kuthe
2ce871b70c
fairly stable and consistent fuzzy matching
2023-07-25 03:10:49 +02:00
Pascal Kuthe
becd35c5de
better algorithm
...
switch to a algorithm with two matrices (but optimized to have 1 matrix
while tracking indices and just a single row if only scoring) that can be
proven to always provide the optimal result (fzfs' v2 algorithm does not
and can even produce wore results than its v1 algorithm). The algorithm
is very similar to skim but still uses fzfs bonus system and is orders
of magnitude faster (and falls back to fzfs greedy v1 algorithm which is
actually surprisingly close to the optimal algorithm).
2023-07-24 03:32:11 +02:00
Pascal Kuthe
8527340bc9
high test and fuzz coverage, fix lots of bugs
2023-07-22 03:53:31 +02:00
Pascal Kuthe
74e2b46f04
fix remaining bugs, achive high coverage
2023-07-21 00:16:15 +02:00
Pascal Kuthe
9ffa5e63c2
fix scoring and case-sensitive matching
2023-07-20 21:19:11 +02:00
Pascal Kuthe
52f1712a78
add API for greedly algorithm and make sure it passes tests
2023-07-20 16:34:05 +02:00
Pascal Kuthe
d844ab7f3b
fix typos
2023-07-20 16:03:31 +02:00
Pascal Kuthe
33822be2ab
fix bugs in fuzzy matching
2023-07-20 15:55:59 +02:00
Pascal Kuthe
e964d42849
better implementation
2023-07-20 02:09:51 +02:00
Pascal Kuthe
6837b4e2cb
hardcode score config, fix some overights and perf
2023-07-18 19:20:15 +02:00
Pascal Kuthe
d0703bb6e0
Initial fuzzy matcher implementation
2023-07-17 17:34:54 +02:00