fix(live_grep_resume): when using skim
lsp_workspace_symbols: 'opt.query' -> 'opts.lsp_query'
API adjustments:
- Support for `opts.query` everywhere
- Auto shellescape `opts.preview`
- Removed global default prompt
This patch is quite massive, hopefully I got everything right in
testing, changes include:
- New API interface for "live" queries, for usage refer to:
https://github.com/ibhagwan/fzf-lua/wiki/Advanced
- All providers now use 'fzf_exec' API (previously 'fzf_wrap')
- All "live" queries now use 'fzf_live' API
- Better resume support for "live" queries
- Fzf initial command now uses $FZF_DEFAULT_COMMAND instead of piping the
command, this delegates the responsiblity to fzf which kills the
command on exit resulting in better responsibness when exiting fzf
- Added 'silent_fail' option (default:'true') to prevent fzf from
displaying [Command failed:...] when commands exit with error code
- Exposed 'config.globals' as 'require'fzf-lua'.defaults'
- Fix: 'libuv.shellescape' with special chars in fish shells
- Manpages: moved fzf option `--tiebreak=begin' to config
- Buffer actions: navigate to line if exists
- Lsp_diagnostics: properly use a coroutine
- make_entry signatures changed (entry before opts)
- Removed make_entry shortcuts from 'core'
- Removed 'coroutine.yield' where unecessary
- Fix: 'git_icons' with 'live_grep({multiprocess=false})'
- tagstack: use relative paths and replace '$HOME' with '~'
- Deprecated 'core.fzf_files'
- Fix: resume query if cancelled while loading indicator is shown
- Fix: resume query when command failed with 'silent_fail=false'
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