File: fuzzy.coffee

Defined in: theme/default/src/coffee

Method Summary

Method Details

? window.fuzzy(pattern, items, options = {}) Source

Public: Filter a list of items. 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 fuzzy = require 'fuzzy-filter' fuzzy "cs", ["cheese", "pickles", "crackers", "pirate attack", "cs!!"] # => ["cs!!", "cheese", "crackers"] fuzzy "cs", ["cheese", "pickles", "crackers", "pirate attack", "cs!!"], pre: "" post: "" # => ["cs!!", "cheese", "crackers"] fuzzy "cs", ["cookies", "cheese/pie", "fried/cheese", "cheese/cookies"], pre: "" post: "" separator: "/" # => [ "cookies" # , "fried/cheese" # , "cheese/cookies" ] fuzzy "cs/", ["cookies", "cheese/pie", "fried/cheese", "cheese/cookies"], pre: "" post: "" separator: "/" # => [ "cheese/pie" # , "cheese/cookies" ] fuzzy "cs/p", ["cookies", "cheese/pie", "fried/cheese", "cheese/cookies"], pre: "" post: "" separator: "/" # => ["cheese/pie"] fuzzy "cs/p", ["cookies", "cheese/pie", "fried/cheese", "cheese/cookies"], pre: "" post: "" separator: "/" separate: true # => [ ["cheese", "pie"] ] Returns an Array of String.

Examples:

fuzzy = require 'fuzzy-filter'
fuzzy "cs", ["cheese", "pickles", "crackers", "pirate attack", "cs!!"]
# => ["cs!!", "cheese", "crackers"]

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>"]

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"] ]

Parameters:

  • patternThe fuzzy String to match against.
  • itemsAn 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.
  • * ignorecaseBoolean (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.