nvim: Switch from telescope to fzf-lua for fuzzy picker
This commit is contained in:
parent
5952e32bce
commit
d724d75bf7
3 changed files with 179 additions and 90 deletions
|
|
@ -17,6 +17,7 @@
|
||||||
"flash.nvim": { "branch": "main", "commit": "ec0bf2842189f65f60fd40bf3557cac1029cc932" },
|
"flash.nvim": { "branch": "main", "commit": "ec0bf2842189f65f60fd40bf3557cac1029cc932" },
|
||||||
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
|
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
|
||||||
"fwatch.nvim": { "branch": "main", "commit": "a691f7349dc66285cd75a1a698dd28bca45f2bf8" },
|
"fwatch.nvim": { "branch": "main", "commit": "a691f7349dc66285cd75a1a698dd28bca45f2bf8" },
|
||||||
|
"fzf-lua": { "branch": "main", "commit": "1176d512b1390f992c775f08dcb155d4e0ba01cf" },
|
||||||
"git-conflict.nvim": { "branch": "main", "commit": "4bbfdd92d547d2862a75b4e80afaf30e73f7bbb4" },
|
"git-conflict.nvim": { "branch": "main", "commit": "4bbfdd92d547d2862a75b4e80afaf30e73f7bbb4" },
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "c23bbd3ed2c7a3fdc3399e97e24f9e158f57612f" },
|
"gitsigns.nvim": { "branch": "main", "commit": "c23bbd3ed2c7a3fdc3399e97e24f9e158f57612f" },
|
||||||
"glance.nvim": { "branch": "master", "commit": "1a08824835d7582457b67acbe23ca33487912a5e" },
|
"glance.nvim": { "branch": "master", "commit": "1a08824835d7582457b67acbe23ca33487912a5e" },
|
||||||
|
|
@ -62,14 +63,11 @@
|
||||||
"otter.nvim": { "branch": "main", "commit": "0e42fa795c35c7190935e3beda3791189c41bb72" },
|
"otter.nvim": { "branch": "main", "commit": "0e42fa795c35c7190935e3beda3791189c41bb72" },
|
||||||
"peek.nvim": { "branch": "master", "commit": "5820d937d5414baea5f586dc2a3d912a74636e5b" },
|
"peek.nvim": { "branch": "master", "commit": "5820d937d5414baea5f586dc2a3d912a74636e5b" },
|
||||||
"plenary.nvim": { "branch": "master", "commit": "3707cdb1e43f5cea73afb6037e6494e7ce847a66" },
|
"plenary.nvim": { "branch": "master", "commit": "3707cdb1e43f5cea73afb6037e6494e7ce847a66" },
|
||||||
"popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" },
|
|
||||||
"quarto-nvim": { "branch": "main", "commit": "abc417c7e7422033f1090c0da5f30ef3ecb0c7ca" },
|
"quarto-nvim": { "branch": "main", "commit": "abc417c7e7422033f1090c0da5f30ef3ecb0c7ca" },
|
||||||
"rainbow-delimiters.nvim": { "branch": "master", "commit": "dc788723f717bdd3041838b8db34cce53c9aa920" },
|
"rainbow-delimiters.nvim": { "branch": "master", "commit": "dc788723f717bdd3041838b8db34cce53c9aa920" },
|
||||||
"render-markdown": { "branch": "main", "commit": "f2bdf9f866671456f7a6119cc94501048d9d172c" },
|
"render-markdown": { "branch": "main", "commit": "f2bdf9f866671456f7a6119cc94501048d9d172c" },
|
||||||
"smartcolumn.nvim": { "branch": "main", "commit": "d01b99355c7fab13233f48d0f28dc097e68a03f7" },
|
"smartcolumn.nvim": { "branch": "main", "commit": "d01b99355c7fab13233f48d0f28dc097e68a03f7" },
|
||||||
"stickybuf.nvim": { "branch": "master", "commit": "2160fcd536d81f5fa43f7167dba6634e814e3154" },
|
"stickybuf.nvim": { "branch": "master", "commit": "2160fcd536d81f5fa43f7167dba6634e814e3154" },
|
||||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "dae2eac9d91464448b584c7949a31df8faefec56" },
|
|
||||||
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
|
||||||
"texpresso.vim": { "branch": "main", "commit": "907838c08bbf99ad6bed3c908f1d0551a92ab4e0" },
|
"texpresso.vim": { "branch": "main", "commit": "907838c08bbf99ad6bed3c908f1d0551a92ab4e0" },
|
||||||
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" },
|
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" },
|
||||||
"trouble.nvim": { "branch": "main", "commit": "bac1d9a9f51eecf4424b6ca8675db5a170fe572b" },
|
"trouble.nvim": { "branch": "main", "commit": "bac1d9a9f51eecf4424b6ca8675db5a170fe572b" },
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
return {
|
return { -- file/item pickers and managers
|
||||||
{
|
{
|
||||||
"vifm/vifm.vim",
|
"vifm/vifm.vim",
|
||||||
config = function()
|
config = function()
|
||||||
|
|
@ -8,10 +8,7 @@ return {
|
||||||
vim.g.vifm_exec_args = '-c "set vifminfo=" -c "set statusline=" -c "only"'
|
vim.g.vifm_exec_args = '-c "set vifminfo=" -c "set statusline=" -c "only"'
|
||||||
end,
|
end,
|
||||||
cmd = "Vifm",
|
cmd = "Vifm",
|
||||||
keys = {
|
keys = { { "<leader>E", "<cmd>Vifm<cr>", desc = "buffer file browser" } },
|
||||||
{ "<leader>E", "<cmd>Vifm<cr>", desc = "buffer file browser" },
|
|
||||||
{ "<leader>vc", ":Vifm " .. vim.fn.stdpath("config") .. "<cr>", desc = "open config" },
|
|
||||||
},
|
|
||||||
event = { "BufEnter" },
|
event = { "BufEnter" },
|
||||||
}, -- integrate file manager
|
}, -- integrate file manager
|
||||||
{
|
{
|
||||||
|
|
@ -49,160 +46,255 @@ return {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ "MagicDuck/grug-far.nvim", opts = {}, cmd = "GrugFar" },
|
{ "MagicDuck/grug-far.nvim", opts = {}, cmd = "GrugFar" },
|
||||||
-- fuzzy matching picker
|
|
||||||
{
|
{
|
||||||
"nvim-telescope/telescope.nvim",
|
"ibhagwan/fzf-lua",
|
||||||
dependencies = {
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
"nvim-lua/popup.nvim",
|
init = function()
|
||||||
"nvim-lua/plenary.nvim",
|
|
||||||
{ "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
|
|
||||||
},
|
|
||||||
cmd = "Telescope",
|
|
||||||
config = function()
|
|
||||||
if require("core.util").is_available("which-key") then
|
if require("core.util").is_available("which-key") then
|
||||||
|
require("which-key").add({ "<leader>v", group = "vim" })
|
||||||
require("which-key").add({ "<leader>f", group = "find" })
|
require("which-key").add({ "<leader>f", group = "find" })
|
||||||
end
|
end
|
||||||
-- Setup up telescope fuzzy finding settings
|
|
||||||
--
|
|
||||||
-- Makes use of optionally installed external programs to work fully:
|
|
||||||
-- rg (ripgrep) for in-text searches
|
|
||||||
-- fd for quicker directory structure searches
|
|
||||||
-- lsp for a variety of lsp queries
|
|
||||||
local trouble_mappings = {}
|
|
||||||
if require("core.util").is_available("trouble") then
|
|
||||||
trouble_mappings = {
|
|
||||||
i = { ["<c-t>"] = require("trouble.sources.telescope").open },
|
|
||||||
n = { ["<c-t>"] = require("trouble.sources.telescope").open },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
require("telescope").setup({
|
|
||||||
defaults = {
|
|
||||||
vimgrep_arguments = {
|
|
||||||
"rg",
|
|
||||||
"--ignore-vcs",
|
|
||||||
"--hidden",
|
|
||||||
"--color=never",
|
|
||||||
"--no-heading",
|
|
||||||
"--with-filename",
|
|
||||||
"--line-number",
|
|
||||||
"--column",
|
|
||||||
"--smart-case",
|
|
||||||
},
|
|
||||||
generic_sorter = require("mini.fuzzy").get_telescope_sorter,
|
|
||||||
-- Appearance
|
|
||||||
prompt_prefix = " ",
|
|
||||||
selection_caret = " ",
|
|
||||||
color_devicons = true,
|
|
||||||
mappings = trouble_mappings or {},
|
|
||||||
},
|
|
||||||
pickers = {
|
|
||||||
buffers = { theme = "ivy" },
|
|
||||||
oldfiles = { theme = "ivy" },
|
|
||||||
find_files = {
|
|
||||||
theme = "dropdown",
|
|
||||||
-- nice minimal picker design
|
|
||||||
borderchars = {
|
|
||||||
{ "─", "│", "─", "│", "┌", "┐", "┘", "└" },
|
|
||||||
prompt = { "─", "│", " ", "│", "┌", "┐", "│", "│" },
|
|
||||||
results = { "─", "│", "─", "│", "├", "┤", "┘", "└" },
|
|
||||||
preview = { "─", "│", "─", "│", "┌", "┐", "┘", "└" },
|
|
||||||
},
|
|
||||||
width = 0.8,
|
|
||||||
previewer = false,
|
|
||||||
prompt_title = false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
require("telescope").load_extension("fzf")
|
|
||||||
end,
|
end,
|
||||||
|
opts = {
|
||||||
|
fzf_opts = { ["--select-1"] = false },
|
||||||
|
keymap = {
|
||||||
|
builtin = {
|
||||||
|
true,
|
||||||
|
["<c-d>"] = "preview-page-down",
|
||||||
|
["<c-u>"] = "preview-page-up",
|
||||||
|
},
|
||||||
|
fzf = {
|
||||||
|
true,
|
||||||
|
["ctrl-q"] = "select-all+accept",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
previewers = {
|
||||||
|
builtin = {
|
||||||
|
extensions = {
|
||||||
|
["png"] = { "viu" },
|
||||||
|
["svg"] = { "chafa", "--format=symbols", "{file}" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}, -- FIXME: Does not seem to work with single result and still closes instantly?
|
||||||
|
config = function(_, opts)
|
||||||
|
opts.actions = opts.actions or { true }
|
||||||
|
opts.actions["ctrl-q"] = require("fzf-lua").actions.file_sel_to_qf
|
||||||
|
require("fzf-lua").setup(opts)
|
||||||
|
end,
|
||||||
|
cmd = "FzfLua",
|
||||||
keys = {
|
keys = {
|
||||||
{
|
{
|
||||||
"<leader>vh",
|
"<leader>vh",
|
||||||
function()
|
function()
|
||||||
require("telescope.builtin").help_tags()
|
require("fzf-lua").helptags()
|
||||||
end,
|
end,
|
||||||
desc = "help tags",
|
desc = "help tags",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"<leader>vH",
|
"<leader>vH",
|
||||||
function()
|
function()
|
||||||
require("telescope.builtin").man_pages()
|
require("fzf-lua").manpages()
|
||||||
end,
|
end,
|
||||||
desc = "man pages",
|
desc = "man pages",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"<leader>vt",
|
||||||
|
function()
|
||||||
|
require("fzf-lua").filetypes()
|
||||||
|
end,
|
||||||
|
desc = "filetype",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>vk",
|
||||||
|
function()
|
||||||
|
require("fzf-lua").keymaps()
|
||||||
|
end,
|
||||||
|
desc = "keymaps",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>vy",
|
||||||
|
function()
|
||||||
|
require("fzf-lua").search_history()
|
||||||
|
end,
|
||||||
|
desc = "search history",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>vc",
|
||||||
|
function()
|
||||||
|
require("fzf-lua").command_history()
|
||||||
|
end,
|
||||||
|
desc = "command history",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"<leader>vC",
|
"<leader>vC",
|
||||||
function()
|
function()
|
||||||
require("telescope.builtin").colorscheme(require("telescope.themes").get_ivy())
|
require("fzf-lua").colorschemes()
|
||||||
end,
|
end,
|
||||||
desc = "colorschemes",
|
desc = "colorschemes",
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{ -- exclude hidden files with <alt-h> in the search
|
||||||
|
"<leader>ff",
|
||||||
|
function()
|
||||||
|
require("fzf-lua").files()
|
||||||
|
end,
|
||||||
|
desc = "files",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"<leader>fb",
|
"<leader>fb",
|
||||||
function()
|
function()
|
||||||
require("telescope.builtin").buffers(require("telescope.themes").get_ivy())
|
require("fzf-lua").buffers()
|
||||||
end,
|
end,
|
||||||
desc = "list buffers",
|
desc = "buffers",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"<leader>fo",
|
"<leader>fo",
|
||||||
function()
|
function()
|
||||||
require("telescope.builtin").oldfiles(require("telescope.themes").get_ivy())
|
require("fzf-lua").oldfiles()
|
||||||
end,
|
end,
|
||||||
desc = "list old files",
|
desc = "old files",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"<leader>ff",
|
"<leader>fp",
|
||||||
function()
|
function()
|
||||||
require("telescope.builtin").find_files()
|
require("fzf-lua").complete_path()
|
||||||
end,
|
end,
|
||||||
desc = "find files",
|
desc = "path complete",
|
||||||
|
},
|
||||||
|
{ -- TODO: Does it work reliably in various circumstances?
|
||||||
|
"<c-m>",
|
||||||
|
function()
|
||||||
|
require("fzf-lua").complete_path()
|
||||||
|
end,
|
||||||
|
mode = "i",
|
||||||
|
desc = "path complete",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"<leader>fh",
|
"<leader>fP",
|
||||||
function()
|
function()
|
||||||
require("telescope.builtin").find_files({ hidden = true })
|
require("fzf-lua").complete_file()
|
||||||
end,
|
end,
|
||||||
desc = "find hidden files",
|
desc = "filepath complete",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"<leader>fw",
|
"<leader>fw",
|
||||||
function()
|
function()
|
||||||
require("telescope.builtin").live_grep()
|
require("fzf-lua").live_grep_native()
|
||||||
end,
|
end,
|
||||||
desc = "grep search",
|
desc = "grep",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>fW",
|
||||||
|
function()
|
||||||
|
require("fzf-lua").live_grep_resume()
|
||||||
|
end,
|
||||||
|
desc = "grep resume",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>fw",
|
||||||
|
function()
|
||||||
|
require("fzf-lua").grep_cword()
|
||||||
|
end,
|
||||||
|
mode = "v",
|
||||||
|
desc = "grep word",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>fW",
|
||||||
|
function()
|
||||||
|
require("fzf-lua").grep_cWORD()
|
||||||
|
end,
|
||||||
|
mode = "v",
|
||||||
|
desc = "grep WORD",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"<leader>fg",
|
"<leader>fg",
|
||||||
function()
|
function()
|
||||||
require("telescope.builtin").git_status()
|
require("fzf-lua").git_status()
|
||||||
end,
|
end,
|
||||||
desc = "git status",
|
desc = "git status",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"<leader>fc",
|
"<leader>fc",
|
||||||
function()
|
function()
|
||||||
require("telescope.builtin").git_bcommits()
|
require("fzf-lua").git_bcommits()
|
||||||
end,
|
end,
|
||||||
desc = "git buffer commits",
|
desc = "git buffer commits",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"<leader>fl",
|
"<leader>fl",
|
||||||
function()
|
function()
|
||||||
require("telescope.builtin").git_commits()
|
require("fzf-lua").git_commits()
|
||||||
end,
|
end,
|
||||||
desc = "git commit log",
|
desc = "git log",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>fr",
|
||||||
|
function()
|
||||||
|
require("fzf-lua").registers()
|
||||||
|
end,
|
||||||
|
desc = "registers",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>fr",
|
||||||
|
function()
|
||||||
|
require("fzf-lua").jumps()
|
||||||
|
end,
|
||||||
|
desc = "jumps",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>fq",
|
||||||
|
function()
|
||||||
|
require("fzf-lua").quickfix()
|
||||||
|
end,
|
||||||
|
desc = "quickfix",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>fi",
|
||||||
|
function()
|
||||||
|
require("fzf-lua").loclist()
|
||||||
|
end,
|
||||||
|
desc = "loclist",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"z=",
|
"z=",
|
||||||
function()
|
function()
|
||||||
require("telescope.builtin").spell_suggest(require("telescope.themes").get_ivy())
|
require("fzf-lua").spell_suggest()
|
||||||
end,
|
end,
|
||||||
desc = "spell suggest",
|
desc = "spell suggest",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"<leader>fR",
|
||||||
|
function()
|
||||||
|
require("fzf-lua").resume()
|
||||||
|
end,
|
||||||
|
desc = "resume last query",
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"<leader>fs",
|
||||||
|
function()
|
||||||
|
require("fzf-lua").lsp_finder()
|
||||||
|
end,
|
||||||
|
desc = "lsp symbol",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>fd",
|
||||||
|
function()
|
||||||
|
require("fzf-lua").diagnostics_workspace()
|
||||||
|
end,
|
||||||
|
desc = "diagnostics workspace",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>fD",
|
||||||
|
function()
|
||||||
|
require("fzf-lua").diagnostics_document()
|
||||||
|
end,
|
||||||
|
desc = "diagnostics document",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
},
|
||||||
|
-- fuzzy matching picker
|
||||||
{
|
{
|
||||||
"jiaoshijie/undotree",
|
"jiaoshijie/undotree",
|
||||||
dependencies = {
|
dependencies = {
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,6 @@ return {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"OXY2DEV/helpview.nvim",
|
"OXY2DEV/helpview.nvim",
|
||||||
-- lazy = false, -- Recommended by dev?
|
|
||||||
ft = "help",
|
ft = "help",
|
||||||
dependencies = {
|
dependencies = {
|
||||||
"nvim-treesitter/nvim-treesitter",
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue