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!

Leave a Comment

Rich Text Editor. To edit a paragraph's style, hit tab to get to the paragraph menu. From there you will be able to pick one style. Nothing defaults to paragraph. An inline formatting menu will show up when you select text. Hit tab to get into that menu. Some elements, such as rich link embeds, images, loading indicators, and error messages may get inserted into the editor. You may navigate to these using the arrow keys inside of the editor and delete them with the delete or backspace key.