Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ranked fuzzy match search of workspace symbols #212

Merged

Conversation

biletskyy
Copy link
Contributor

This is an implementation of a sequential fuzzy string matching algorithm, similar to those used in code editors like Sublime Text. It is based on Forrest Smith's work on https://github.com/forrestthewoods/lib_fts/ and his blog post https://www.forrestthewoods.com/blog/reverse_engineering_sublime_texts_fuzzy_match/

@biletskyy
Copy link
Contributor Author

the search prioritises matches where letter is in the beginning of the term of after separator.

ranked_fuzzy_search.mp4

@mhanberg
Copy link
Collaborator

Does this supercede your other PR?

@biletskyy
Copy link
Contributor Author

Does this supercede your other PR?

yes. Sorry, forget to mention that.

@mhanberg mhanberg force-pushed the ranked_fuzzy_match_workspace_symbols branch from 7c09895 to 09f93d5 Compare September 10, 2023 23:35
@mhanberg mhanberg merged commit 9395744 into elixir-tools:main Sep 10, 2023
3 checks passed
@mhanberg
Copy link
Collaborator

This is awesome, thanks!

A follow up could be to include the def, defmodule, etc when performing the match.

That seemed to be a confusing point originally, and helps when searching for a like a macro vs a function, etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants