- refactor fzf field index experssion and line field number options
- enable native fzf previewers (bat/cat/head) for all file/buffer providers
- buffers|lines|blines|tabs now respect default previewer
Since LUA is single threaded I reached a limit to performance
optimization, both 'git_icons' and 'file_icons' require string
matching and manipulations which eventually hurt performance
when running on large amount of files.
In order to solve that this commit introduces the option to spawn
commands and process the entries in a separate neovim process which
prints to stdio as if it was a regular shell command. This speeds up
things significantly and also makes the UI super responsive as if fzf
was run in the shell. This required a few lua hacks to be able to load
nvim-web-devicons in a '--headless --clean' instance and sharing the
user configuration through the RPC interface from the running instance.
This is enabled by default for 'files' and 'grep' providers and can also
be enabled for 'git.files' if required, control using the 'multiprocess'
option.
- do not spawn cmd with libuv unless 'file_icons' or 'git_icons' are set
- 'path.starts_with_separator' minor regex optimization
- 'files' cmd fallback order is now fd, **rg** and then find
- 'strip_cwd_prefix' enabled again (default: 'true')
- 'cwd' header line added to 'files' and 'git' providers
'nvim-jdtls' extends the LSP to support eclipse jdt classes
since classes are inside '.jar' file it displays them as 'jdt://'
URIs which are then handled by 'nvim-jdtls', we can then use
'vim.lsp.util.jump_to_location' to open the URIs.
Warning: this may cause a performance degradation so you have to
manually enable this by setting `grep.experimental = true` or directly
via `:lua require'fzf-lua'.live_grep({ experimental = true })`
- normalized action callback 'selected' table, before this change
selected items table were passed through transparently from nvim-fzf
meaning the first item in the table could either be a selected item
or the name of the keybind pressed (when multiple actions were
present), this changes makes sure 'selected' table contains only
valid items (removes the keybind if necessary)
If you've developed a custom action callback please modify it to
start enumerating the items at 'selected[1]' (and not selected[2])
- fixed minor issue with 'fzf_colors' on default colorschemes
'fzf_binds' and 'previewers.builtin.keymap' were merged and moved under
'keymap.fzf' and 'keymap.builtin' respectively.
See ':help fzf-lua-customization' how to reconfigure.