By default we wrap the contents. This will slightly worsen some coding previews, but greatly improve the default preview for text files. We will see if it makes sense to keep over time but this makes more sense to me right now -- especially with zk.nvim using fzf-lua as preview provider.
348 lines
6.8 KiB
Lua
348 lines
6.8 KiB
Lua
return { -- file/item pickers and managers
|
|
{
|
|
"vifm/vifm.vim",
|
|
config = function()
|
|
vim.g.loaded_netrw = 1
|
|
vim.g.loaded_netrwPlugin = 1
|
|
vim.g.vifm_replace_netrw = 1
|
|
vim.g.vifm_exec_args = '-c "set vifminfo=" -c "set statusline=" -c "only"'
|
|
end,
|
|
cmd = "Vifm",
|
|
keys = { { "<leader>E", "<cmd>Vifm<cr>", desc = "buffer file browser" } },
|
|
event = { "BufEnter" },
|
|
}, -- integrate file manager
|
|
{
|
|
"nvim-neo-tree/neo-tree.nvim",
|
|
dependencies = {
|
|
"MunifTanjim/nui.nvim",
|
|
"nvim-lua/plenary.nvim",
|
|
{ "nvim-tree/nvim-web-devicons", optional = true },
|
|
},
|
|
event = "StartWithDir",
|
|
cmd = "Neotree",
|
|
opts = function(_, opts)
|
|
opts.sources = { "filesystem", "git_status", "buffers" }
|
|
opts.source_selector = {
|
|
winbar = true,
|
|
sources = {
|
|
{ source = "filesystem" },
|
|
{ source = "git_status" },
|
|
},
|
|
}
|
|
opts.close_if_last_window = true
|
|
opts.enable_cursor_hijack = true
|
|
end,
|
|
keys = {
|
|
{ "<leader>se", "<cmd>Neotree toggle left<cr>", desc = "filetree", silent = true },
|
|
},
|
|
},
|
|
{ -- substituting git tree listing with jj listing if in jj repo
|
|
dependencies = { "Cretezy/neo-tree-jj.nvim" },
|
|
"nvim-neo-tree/neo-tree.nvim",
|
|
optional = true,
|
|
opts = function(_, opts)
|
|
opts.sources = opts.sources or {}
|
|
opts.source_selector = opts.source_selector or {}
|
|
-- Add jj source as available
|
|
table.insert(opts.sources, "jj")
|
|
-- If there is a git tab in neo-tree replace it when in jj repo
|
|
if require("neo-tree.sources.jj.utils").get_repository_root() then
|
|
-- Remove git tab
|
|
if opts.source_selector.sources then
|
|
for i, source in ipairs(opts.source_selector.sources) do
|
|
if source.source == "git_status" then
|
|
table.remove(opts.source_selector.sources, i)
|
|
break
|
|
end
|
|
end
|
|
else
|
|
opts.source_selector.sources = {}
|
|
end
|
|
|
|
-- Add jj tab
|
|
table.insert(opts.source_selector.sources, {
|
|
display_name = " JJ",
|
|
source = "jj",
|
|
})
|
|
end
|
|
end,
|
|
},
|
|
|
|
{ "MagicDuck/grug-far.nvim", opts = {}, cmd = "GrugFar" },
|
|
{
|
|
"ibhagwan/fzf-lua",
|
|
version = false,
|
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
|
init = function()
|
|
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" })
|
|
end
|
|
end,
|
|
opts = {
|
|
keymap = {
|
|
builtin = {
|
|
true,
|
|
["<c-d>"] = "preview-page-down",
|
|
["<c-u>"] = "preview-page-up",
|
|
},
|
|
fzf = {
|
|
true,
|
|
["ctrl-q"] = "select-all+accept",
|
|
},
|
|
},
|
|
previewers = {
|
|
builtin = {
|
|
extensions = {
|
|
["png"] = { "chafa", "--format=symbols", "{file}" },
|
|
["jpg"] = { "chafa", "--format=symbols", "{file}" },
|
|
["gif"] = { "chafa", "--format=symbols", "{file}" },
|
|
["svg"] = { "chafa", "--format=symbols", "{file}" },
|
|
},
|
|
},
|
|
},
|
|
winopts = {
|
|
preview = {
|
|
wrap = true
|
|
}
|
|
},
|
|
defaults = {
|
|
jump1 = false,
|
|
},
|
|
},
|
|
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 = {
|
|
{
|
|
"<leader>vh",
|
|
function()
|
|
require("fzf-lua").helptags()
|
|
end,
|
|
desc = "help tags",
|
|
},
|
|
{
|
|
"<leader>vH",
|
|
function()
|
|
require("fzf-lua").manpages()
|
|
end,
|
|
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",
|
|
function()
|
|
require("fzf-lua").colorschemes()
|
|
end,
|
|
desc = "colorschemes",
|
|
},
|
|
|
|
{ -- exclude hidden files with <alt-h> in the search
|
|
"<leader>ff",
|
|
function()
|
|
require("fzf-lua").files()
|
|
end,
|
|
desc = "files",
|
|
},
|
|
{
|
|
"<leader>fb",
|
|
function()
|
|
require("fzf-lua").buffers()
|
|
end,
|
|
desc = "buffers",
|
|
},
|
|
{
|
|
"<leader>fo",
|
|
function()
|
|
require("fzf-lua").oldfiles()
|
|
end,
|
|
desc = "old files",
|
|
},
|
|
{
|
|
"<leader>fp",
|
|
function()
|
|
require("fzf-lua").complete_path()
|
|
end,
|
|
desc = "path complete",
|
|
},
|
|
{
|
|
"<c-x>",
|
|
function()
|
|
require("fzf-lua").complete_path()
|
|
end,
|
|
mode = "i",
|
|
desc = "path complete",
|
|
},
|
|
{
|
|
"<leader>fP",
|
|
function()
|
|
require("fzf-lua").complete_file()
|
|
end,
|
|
desc = "filepath complete",
|
|
},
|
|
{
|
|
"<leader>fw",
|
|
function()
|
|
require("fzf-lua").live_grep_native()
|
|
end,
|
|
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",
|
|
function()
|
|
require("fzf-lua").git_status()
|
|
end,
|
|
desc = "git status",
|
|
},
|
|
{
|
|
"<leader>fc",
|
|
function()
|
|
require("fzf-lua").git_bcommits()
|
|
end,
|
|
desc = "git buffer commits",
|
|
},
|
|
{
|
|
"<leader>fl",
|
|
function()
|
|
require("fzf-lua").git_commits()
|
|
end,
|
|
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=",
|
|
function()
|
|
require("fzf-lua").spell_suggest()
|
|
end,
|
|
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",
|
|
dependencies = {
|
|
"nvim-lua/plenary.nvim",
|
|
},
|
|
config = true,
|
|
keys = {
|
|
{
|
|
"<leader>su",
|
|
function()
|
|
require("undotree").toggle()
|
|
end,
|
|
desc = "toggle undotree",
|
|
silent = true,
|
|
},
|
|
},
|
|
},
|
|
}
|