feat(search): add fzf engine with frecency tiebreak - #359
Open
luizhcrocha wants to merge 6 commits into
Open
Conversation
feat(search): add fzf engine with frecency tiebreak chore(Makefile): fix formatting and syntax errors
Author
|
After some usage... i think it's not quite there yet. Will mark as draft and try to improve and fix some problems. |
luizhcrocha
marked this pull request as draft
April 15, 2026 13:46
luizhcrocha
force-pushed
the
feat/fzf-search-engine
branch
2 times, most recently
from
April 15, 2026 16:01
91c7492 to
e3fa456
Compare
Author
|
Now i think it's quite nice. Added a way to quantize better so tiebreaks works more 'loosely', and let other tiebreak steps resolve close calls. Fixed a bug with unsafe code, a bad usage of fzf Slab, and, I think most importantly, and need review, is that:
|
luizhcrocha
marked this pull request as ready for review
April 15, 2026 16:06
luizhcrocha
force-pushed
the
feat/fzf-search-engine
branch
from
April 17, 2026 15:17
e3fa456 to
54b746f
Compare
luizhcrocha
force-pushed
the
feat/fzf-search-engine
branch
from
May 28, 2026 21:45
319eedf to
7723b1f
Compare
log2 score bucketing collapsed all real-world fzf scores into one bucket, flattening filtered results to chronological order (a consecutive boundary match could rank below scattered subsequence matches). Add a numeric linear quantization width to bucketize and default the score tiebreak to width 16 (one fzf scoreMatch unit): genuinely-close scores group so frecency decides, while clearly-better matches stay ahead.
luizhcrocha
force-pushed
the
feat/fzf-search-engine
branch
2 times, most recently
from
May 28, 2026 22:22
339749b to
187b8f3
Compare
luizhcrocha
force-pushed
the
feat/fzf-search-engine
branch
from
May 29, 2026 01:50
187b8f3 to
5185128
Compare
luizhcrocha
force-pushed
the
feat/fzf-search-engine
branch
from
May 29, 2026 15:35
5185128 to
9876760
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hi, @savedra1
I've made this to give users an option on search engine and search result optimization, so they can get the most out of the search feature, tweaking as they like.
The default is still
charmbracelet/bubblesbacked bysahilm/fuzzy, but if the user want's he can choose to usejunegunn/fzfby adding these to settings:{ "search": { "engine": "fzf", "algo": "v2", "caseSensitivity": "smart", "normalize": true, "tiebreak": ["score", "frecency", "index"] } }One thing that I think you might not like is that I changed
func sanitizedFilterto a high-order functionfunc buildFilter, because I thought that would make the code more concise.Wrote with Claude Code help, not full on vibecoded (I know some people hate this). Test was all Claude Code though.