This is a staging forum for AgileBits, not an official support forum. Visit http://discussions.agilebits.com instead.
Feature Request: Fuzzy search matching.
I use Sublime Text 2, which has an amazing fuzzy text matching feature for "find anything", "find file", "find setting", "find symbol", etc.
The way it works is to display all items and then filter the list as you type (like 1Password).
Where it differs from 1Password is that each character does not have to follow the previous character consecutively (simple substring match). Other characters can appear anywhere in the string, as long as they are in the same order.
Additionally, a higher priority is assigned to first-character (of a word) and consecutive matches, so the most likely match will jump to the top of the list even if it is out of alphabetical order which makes it easier to select with arrow keys.
This is a HUGE help when trying to filter large lists, especially those with similar prefixes (e.g. site - anotherusername, site - thirdusername, site - username, site).
It is much more forgiving of spelling mistakes which currently usually show no results at all, and allows users to very quickly disambiguate multiple matches without having to type out the whole string or use the arrow keys to cycle through results.
Consider the following example, with these 5 items and you want to select "vodafone - myusername":
apple - myusername
google - myusername
vimeo - myusername
vodafone - myusername
vodafone - otherusername
If you type "v", you will see:
[b]v[/b]imeo - myusername
[b]v[/b]odafone - myusername
[b]v[/b]odafone - otherusername
If you then type "o", you will see:
[b]vo[/b]dafone - anotherusername
[b]vo[/b]dafone - myusername
[b]v[/b]ime[b]o[/b] - myusername
Vimeo is moved down below vodafone because the consecutive-match in "[b]vo[/b]dafone" is given a higher priority than the single-character matches in "[b]v[/b]ime[b]o[/b]".
If you then type "m", you will see:
[b]vo[/b]dafone - [b]m[/b]yusername
[b]v[/b]ime[b]o[/b] - [b]m[/b]yusername
[b]vo[/b]dafone - anotheruserna[b]m[/b]e
Vodafone (myusername) jumps to the top because the first-character match in "[b]m[/b]yusername" is given a higher priority than the single-character match in "anotheruserna[b]m[/b]e", and vimeo also jumps up a spot because the two first-character and one single-character matches in "[b]v[/b]ime[b]o[/b] - [b]m[/b]yusername" are given a higher priority than the consecutive and single-character matches in "[b]vo[/b]dafone - anotheruserna[b]m[/b]e".
At this point, you can just hit enter to select the top result.
This might sound complicated, but this all works completely transparently to users. They don't need to know the algorithm. They just type what they want and it "just works". Highlighting the matching characters in bold makes it very easy to figure out what is going on.
Thanks!
The way it works is to display all items and then filter the list as you type (like 1Password).
Where it differs from 1Password is that each character does not have to follow the previous character consecutively (simple substring match). Other characters can appear anywhere in the string, as long as they are in the same order.
Additionally, a higher priority is assigned to first-character (of a word) and consecutive matches, so the most likely match will jump to the top of the list even if it is out of alphabetical order which makes it easier to select with arrow keys.
This is a HUGE help when trying to filter large lists, especially those with similar prefixes (e.g. site - anotherusername, site - thirdusername, site - username, site).
It is much more forgiving of spelling mistakes which currently usually show no results at all, and allows users to very quickly disambiguate multiple matches without having to type out the whole string or use the arrow keys to cycle through results.
Consider the following example, with these 5 items and you want to select "vodafone - myusername":
apple - myusername
google - myusername
vimeo - myusername
vodafone - myusername
vodafone - otherusername
If you type "v", you will see:
[b]v[/b]imeo - myusername
[b]v[/b]odafone - myusername
[b]v[/b]odafone - otherusername
If you then type "o", you will see:
[b]vo[/b]dafone - anotherusername
[b]vo[/b]dafone - myusername
[b]v[/b]ime[b]o[/b] - myusername
Vimeo is moved down below vodafone because the consecutive-match in "[b]vo[/b]dafone" is given a higher priority than the single-character matches in "[b]v[/b]ime[b]o[/b]".
If you then type "m", you will see:
[b]vo[/b]dafone - [b]m[/b]yusername
[b]v[/b]ime[b]o[/b] - [b]m[/b]yusername
[b]vo[/b]dafone - anotheruserna[b]m[/b]e
Vodafone (myusername) jumps to the top because the first-character match in "[b]m[/b]yusername" is given a higher priority than the single-character match in "anotheruserna[b]m[/b]e", and vimeo also jumps up a spot because the two first-character and one single-character matches in "[b]v[/b]ime[b]o[/b] - [b]m[/b]yusername" are given a higher priority than the consecutive and single-character matches in "[b]vo[/b]dafone - anotheruserna[b]m[/b]e".
At this point, you can just hit enter to select the top result.
This might sound complicated, but this all works completely transparently to users. They don't need to know the algorithm. They just type what they want and it "just works". Highlighting the matching characters in bold makes it very easy to figure out what is going on.
Thanks!
Flag
0