fuzzy-filter
v0.0.3
Published
a browserify-compatible fuzzy string filtering function
Downloads
2,661
Readme
Fuzzy-filter
A browserify-compatible fuzzy string filtering function.
Used by Stratus Editor for the Snap Open plugin.
Parameters
pattern - The fuzzy String to match against.
items - An Array of String.
options - (optional)
* pre - String to insert before matching text.
* post - String to insert after matching text.
* limit - Integer maximum number of results.
* separator - String separator. Match against the last
section of the String by default.
* ignorecase - Boolean (default: true).
* ignorespace - Boolean (default: true).
* separate - Boolean (default: false). If set to true, the
function returns an array of an array of strings,
where each array is
[beforeLastSeparator, afterLastSeparator].
If set, `separator` must also be passed.
Note: If pre
is passed, you also have to pass post
(and vice-versa).
Examples
Simple usage
fuzzy = require 'fuzzy-filter'
fuzzy "cs", ["cheese", "pickles", "crackers", "pirate attack", "cs!!"]
# => ["cs!!", "cheese", "crackers"]
Highlight match
fuzzy "cs", ["cheese", "pickles", "crackers", "pirate attack", "cs!!"],
pre: "<b>"
post: "</b>"
# => ["<b>cs</b>!!", "<b>c</b>hee<b>s</b>e", "<b>c</b>racker<b>s</b>"]
Separator
fuzzy "cs", ["cookies", "cheese/pie", "fried/cheese", "cheese/cookies"],
pre: "<b>"
post: "</b>"
separator: "/"
# => [ "<b>c</b>ookie<b>s</b>"
# , "fried/<b>c</b>hee<b>s</b>e"
# , "cheese/<b>c</b>ookie<b>s</b>" ]
fuzzy "cs/", ["cookies", "cheese/pie", "fried/cheese", "cheese/cookies"],
pre: "<b>"
post: "</b>"
separator: "/"
# => [ "<b>c</b>hee<b>s</b>e/pie"
# , "<b>c</b>hee<b>s</b>e/cookies" ]
fuzzy "cs/p", ["cookies", "cheese/pie", "fried/cheese", "cheese/cookies"],
pre: "<b>"
post: "</b>"
separator: "/"
# => ["<b>c</b>hee<b>s</b>e/<b>p</b>ie"]
fuzzy "cs/p", ["cookies", "cheese/pie", "fried/cheese", "cheese/cookies"],
pre: "<b>"
post: "</b>"
separator: "/"
separate: true
# => [ ["<b>c</b>hee<b>s</b>e", "<b>p</b>ie"] ]
License
See LICENSE.