![]() This patch implements fuzzy searching for tab completions in the terminal client. Under the hood it is using a trie data structure (https://en.wikipedia.org/wiki/Trie) to perform very fast prefix / fuzzy searches. |
||
---|---|---|
.. | ||
.deepsource.toml | ||
.gitignore | ||
LICENSE | ||
README.md | ||
trie.go |
Trie
Data structure and relevant algorithms for extremely fast prefix/fuzzy string searching.
Usage
Create a Trie with:
t := trie.New()
Add Keys with:
// Add can take in meta information which can be stored with the key.
// i.e. you could store any information you would like to associate with
// this particular key.
t.Add("foobar", 1)
Find a key with:
node, ok := t.Find("foobar")
meta := node.Meta()
// use meta with meta.(type)
Remove Keys with:
t.Remove("foobar")
Prefix search with:
t.PrefixSearch("foo")
Fast test for valid prefix:
t.HasKeysWithPrefix("foo")
Fuzzy search with:
t.FuzzySearch("fb")
Contributing
Fork this repo and run tests with:
go test
Create a feature branch, write your tests and code and submit a pull request.
License
MIT