Commit Graph

43 Commits

Author SHA1 Message Date
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
Pascal Kuthe
093ecafb01
Merge pull request #4 from helix-editor/typos
Fix typos and removed unused files
2023-08-05 18:31:41 +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
Pascal Kuthe
e774ca23b8
Merge pull request #2 from helix-editor/ghaci
Add a CI workflow
2023-08-04 19:29:23 +02:00
Michael Davis
00a5b24c21
Fix 'cargo docs' warnings 2023-08-04 11:41:24 -05:00
Michael Davis
def0cb23cb
Resolve clippy warnings 2023-08-04 11:34:23 -05:00
Michael Davis
4ede8824c0
Add a CI workflow 2023-08-04 11:34:23 -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
Gabriel Dinner-David
e499e2b601
small spelling and grammar fixes (#1) 2023-08-04 08:23:01 +02:00
Pascal Kuthe
f4e19b4567
add missing file 2023-08-03 22:28:53 +02:00
Pascal Kuthe
c32ab3971a
update README 2023-08-03 22:24:08 +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
af2c1e190c
enable chunk based bonuses
These are pedantically speaking not 100% correct but in practice
the edge cases where these cause issues are basically impossible
to trigger
2023-08-03 20:27:57 +02:00
Pascal Kuthe
6dcfb41545
update README 2023-08-03 02:34:49 +02:00
Pascal Kuthe
7a432aa051
Improve cancel speed for large matches 2023-08-03 02:34:27 +02:00
Pascal Kuthe
4f59b0fb91
fix substring matching 2023-08-03 00:59:24 +02:00
Pascal Kuthe
960441f3b2
Deprioritize camel case
This change avoids scoring camel case higher than other casing
2023-08-03 00:28:46 +02:00
Pascal Kuthe
6cc59600e2
switch to lock-free item list 2023-08-03 00:28:07 +02:00
Pascal Kuthe
2cbb46e738
Treat colon as path delimiter 2023-07-30 16:51:49 +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
6b8ee0f585
progress on high level API 2023-07-29 21:43:02 +02:00
Pascal Kuthe
39982dc81a
snapshot 2023-07-28 18:03:09 +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
Pascal Kuthe
93c75f6867
Initial commit 2023-07-17 17:29:11 +02:00