An abstraction layer on top of fzf and fzy.
Depends on telescope-fzf-native.nvim or fzy-lua-native.
If both fzf and fzy are installed, will prefer fzf.
Using Packer with fzf:
use {'nvim-telescope/telescope-fzf-native.nvim', run = 'make'}
use {'tzachar/fuzzy.nvim', requires = {'nvim-telescope/telescope-fzf-native.nvim'}}Using Packer with fzy:
use {'romgrk/fzy-lua-native', run = 'make'}
use {'tzachar/fuzzy.nvim', requires = {'romgrk/fzy-lua-native'}}This plugin supports a module with a single method: filter.
The filter method receives three parameters: a pattern to match, a list of
strings and an extra parameter passed to the fuzzy library: for fzy, its a
boolean indicating is_case_sensitive, for fzf its the case_mode (see
this).
The method returns a list of {string, match_positions, score}. For the
meanings of match_positions and score see individual documentations of fzf and
fzy.
local matcher = require('fuzzy_nvim')
matcher:filter('abc', {'aabbcc', '123', 'a1b2c'})result with fzf is then:
{ { "a1b2c", { 5, 3, 1 }, 58 }, { "aabbcc", { 5, 3, 1 }, 49 } }