dotfiles/nvim/.config/nvim/after/plugin/fzf-lua.lua

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

273 lines
9.1 KiB
Lua
Raw Normal View History

local actions = require "fzf-lua.actions"
local remap = vim.keymap.set
local opts = { noremap=true, unique=true, silent=true }
require'fzf-lua'.setup {
fzf_bin = "fzf-tmux",
fzf_tmux_opts = { ["-p"] = "90%,90%" },
winopts = {
height = 0.90,
width = 0.90,
row = 0.35,
col = 0.50,
border = { '', '', '', '', '', '', '', '' },
fullscreen = false,
preview = {
default = 'bat' ,
border = 'border' ,
wrap = 'wrap' ,
hidden = 'nohidden' ,
vertical = 'down:45%' ,
horizontal = 'right:60%',
layout = 'flex' ,
flip_columns = 120 ,
title = false ,
scrollbar = false ,
scrolloff = '-2' ,
scrollchars = {'', '' } ,
delay = 100 ,
winopts = {
number = true ,
relativenumber = false ,
cursorline = true ,
cursorlineopt = 'both' ,
cursorcolumn = false ,
signcolumn = 'no' ,
list = false ,
foldenable = false ,
foldmethod = 'manual',
},
},
},
keymap = {
fzf = {
["Ctrl-d"] = "half-page-down" ,
["Ctrl-u"] = "half-page-up" ,
["Ctrl-a"] = "beginning-of-line",
["Ctrl-e"] = "end-of-line" ,
["Ctrl-n"] = "preview-down" ,
["Ctrl-p"] = "preview-up" ,
["Ctrl-f"] = "preview-page-down",
["Ctrl-b"] = "preview-page-up" ,
["Ctrl-z"] = "abort" ,
["Ctrl-t"] = "toggle-all" ,
},
},
actions = {
files = {
["default"] = actions.file_edit_or_qf,
["Ctrl-s"] = actions.file_split ,
["Ctrl-v"] = actions.file_vsplit ,
["Ctrl-t"] = actions.file_tabedit ,
["Ctrl-q"] = actions.file_sel_to_qf ,
},
buffers = {
["default"] = actions.buf_edit ,
["Ctrl-s"] = actions.buf_split ,
["Ctrl-v"] = actions.buf_vsplit ,
["Ctrl-t"] = actions.buf_tabedit,
}
},
fzf_opts = {
['--ansi'] = '' ,
['--prompt'] = '> ' ,
['--info'] = 'inline' ,
['--height'] = '100%' ,
['--layout'] = 'reverse',
["--border"] = "rounded",
["--no-separator"] = "" ,
},
previewers = {
bat = {
theme = 'Monokai Extended Bright',
},
},
files = {
multiprocess = true ,
git_icons = false,
file_icons = false,
color_icons = false,
},
git = {
files = {
prompt = 'GitFiles ',
cmd = 'git ls-files --exclude-standard',
multiprocess = true ,
git_icons = false,
file_icons = false,
color_icons = false,
},
status = {
prompt = 'GitStatus ',
cmd = "git status -s",
previewer = "git_diff",
file_icons = false,
git_icons = false,
color_icons = false,
actions = {
["right"] = { actions.git_unstage, actions.resume },
["left"] = { actions.git_stage, actions.resume },
},
},
commits = {
prompt = 'Commits ',
cmd = "git log --decorate --pretty=oneline --abbrev-commit --color",
preview = "git show --color=always {1}",
actions = {
["default"] = actions.git_buf_split ,
["Ctrl-s"] = actions.git_buf_split ,
["Ctrl-v"] = actions.git_buf_vsplit ,
["Ctrl-t"] = actions.git_buf_tabedit,
},
},
bcommits = {
prompt = 'BCommits ',
cmd = "git log --decorate --pretty=oneline --abbrev-commit --color",
preview = "git show --color=always {1}",
actions = {
["default"] = actions.git_buf_split ,
["Ctrl-s"] = actions.git_buf_split ,
["Ctrl-v"] = actions.git_buf_vsplit ,
["Ctrl-t"] = actions.git_buf_tabedit,
},
},
branches = {
prompt = 'Branches ',
cmd = "git branch --all --color",
preview = "git log --decorate --graph --pretty=oneline --abbrev-commit --color {1}",
actions = {
["default"] = actions.git_switch,
},
},
stash = {
prompt = 'Stash> ',
cmd = "git --no-pager stash list",
preview = "git --no-pager stash show --patch --color {1}",
actions = {
["default"] = actions.git_stash_apply,
["ctrl-x"] = { actions.git_stash_drop, actions.resume },
},
},
},
grep = {
prompt = 'Rg ' ,
input_prompt = 'Grep For ',
multiprocess = true ,
git_icons = false ,
file_icons = false ,
color_icons = false ,
rg_glob = true ,
},
args = {
prompt = 'Args ',
files_only = true ,
actions = { ["Ctrl-x"] = actions.arg_del }
},
oldfiles = {
prompt = 'History ',
cwd_only = false ,
},
buffers = {
prompt = 'Buffers ',
file_icons = false ,
color_icons = false ,
sort_lastused = true ,
actions = {
["Ctrl-x"] = { actions.buf_del, actions.resume },
}
},
tabs = {
prompt = 'Tabs ',
tab_title = "Tab" ,
tab_marker = "<<" ,
file_icons = false ,
color_icons = false ,
actions = {
["default"] = actions.buf_switch,
["Ctrl-x"] = { actions.buf_del, actions.resume },
},
},
lines = {
previewer = "builtin",
prompt = 'Lines ',
show_unlisted = false ,
no_term_buffers = true ,
},
blines = {
previewer = "builtin" ,
prompt = 'BLines ',
show_unlisted = false ,
no_term_buffers = true ,
},
quickfix = {
file_icons = false,
git_icons = false,
},
lsp = {
prompt_postfix = 'Lsp ',
cwd_only = false ,
async_or_timeout = 5000 ,
file_icons = false ,
git_icons = false ,
},
diagnostics ={
prompt = 'Diagnostics ',
cwd_only = false ,
file_icons = false ,
git_icons = false ,
diag_icons = false ,
icon_padding = '' ,
},
manpages = { previewer = { _ctor = false } },
}
-- Buffers and Files
remap('n', '<Leader>b' , ':FzfLua buffers<CR>' , opts)
remap('n', '<Leader>B' , ':FzfLua oldfiles<CR>' , opts)
remap('n', '<Leader>fF', ':FzfLua files<CR>' , opts)
remap('n', '<Leader>fl', ':FzfLua blines<CR>' , opts)
remap('n', '<Leader>fL', ':FzfLua lines<CR>' , opts)
remap('n', '<Leader>fq', ':cclose<CR>:FzfLua quickfix<CR>' , opts)
remap('n', '<Leader>fQ', ':lclose<CR>:FzfLua loclist<CR>' , opts)
-- Git
remap('n', '<Leader>ff', ':FzfLua git_files<CR>' , opts)
remap('n', '<Leader>/' , ':FzfLua git_status<CR>' , opts)
remap('n', '<Leader>fb', ':FzfLua git_branches<CR>' , opts)
remap('n', '<Leader>fc', ':FzfLua git_bcommits<CR>' , opts)
remap('x', '<Leader>fc', '<cmd>FzfLua git_bcommits<CR>' , opts)
remap('n', '<Leader>fC', ':FzfLua git_commits<CR>' , opts)
remap('n', '<Leader>ft', ':FzfLua git_stash<CR>' , opts)
-- Grep
remap('n', '<Leader>fg' , ':FzfLua grep<CR>' , opts)
remap('n', '<Leader>f/' , ':FzfLua live_grep<CR>' , opts)
remap('n', '<Leader>f\\', ':FzfLua live_grep_resume<CR>' , opts)
remap('n', '<Leader>fs' , ':FzfLua grep_cword<CR>' , opts)
remap('n', '<Leader>fS' , ':FzfLua grep_cWORD<CR>' , opts)
remap('x', '<Leader>fs' , ':<C-u>FzfLua grep_visual<CR>' , opts)
remap('n', '<Leader>fr' , ':FzfLua grep_last<CR>' , opts)
remap('n', '<Leader>fR' , ':FzfLua live_grep_glob<CR>' , opts)
-- Misc
remap('n', '<Leader>fh', ':FzfLua command_history<CR>' , opts)
remap('n', '<Leader>fH', ':FzfLua search_history<CR>' , opts)
remap('n', '<Leader>fm', ':FzfLua marks<CR>' , opts)
remap('n', '<Leader>fM', ':FzfLua man_pages<CR>' , opts)
remap('n', '<Leader>fo', ':FzfLua changes<CR>' , opts)
remap('n', '<Leader>fO', ':FzfLua jumps<CR>' , opts)
remap('n', '<Leader>fk', ':FzfLua keymaps<CR>' , opts)
-- LSP
remap('n', '<Leader>lr', ':FzfLua lsp_references<CR>' , opts)
remap('n', '<Leader>ld', ':FzfLua lsp_definitions<CR>' , opts)
remap('n', '<Leader>lD', ':FzfLua lsp_declarations<CR>' , opts)
remap('n', '<Leader>lt', ':FzfLua lsp_typedefs<CR>' , opts)
remap('n', '<Leader>li', ':FzfLua lsp_implementations<CR>' , opts)
remap('n', '<Leader>ls', ':FzfLua lsp_document_symbols<CR>' , opts)
remap('n', '<Leader>lw', ':FzfLua lsp_workspace_symbols<CR>' , opts)
remap('n', '<Leader>lW', ':FzfLua lsp_live_workspace_symbols<CR>', opts)
remap('n', '<Leader>la', ':FzfLua lsp_code_actions<CR>' , opts)
remap('n', '<Leader>le', ':FzfLua lsp_document_diagnostics<CR>' , opts)
remap('n', '<Leader>lE', ':FzfLua lsp_workspace_diagnostics<CR>' , opts)