new structure
This commit is contained in:
72 files changed
+2659
-2947
No files matched your search
@@ -0,0 +1,10 @@
|
||||
vim.opt.termguicolors = true
|
||||
|
||||
local ccc = require('ccc')
|
||||
|
||||
ccc.setup({
|
||||
highlighter = {
|
||||
auto_enable = true,
|
||||
lsp = true,
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,19 @@
|
||||
local dbee = require('dbee')
|
||||
|
||||
dbee.setup({
|
||||
sources = {
|
||||
require('dbee.sources').EnvSource:new('NVIM_DB'),
|
||||
-- require("dbee.sources").MemorySource:new({
|
||||
-- {
|
||||
-- name = "dbname",
|
||||
-- type = "postgres",
|
||||
-- url = "postgres://pguser:pguser@localhost:5602/dbname?sslmode=disable"
|
||||
-- },
|
||||
-- }),
|
||||
-- require("dbee.sources").FileSource:new(vim.fn.stdpath("cache") .. "/dbee/config.json"),
|
||||
},
|
||||
})
|
||||
|
||||
vim.api.nvim_create_user_command('DBToggle', function()
|
||||
require('dbee').toggle()
|
||||
end, {})
|
||||
@@ -0,0 +1,57 @@
|
||||
local flash = require('flash')
|
||||
local icons = require('lib.icons')
|
||||
|
||||
flash.setup({
|
||||
-- exact, fuzzy, regex, custom function
|
||||
mode = 'fuzzy',
|
||||
-- behave like `incsearch`
|
||||
incremental = true,
|
||||
|
||||
jump = {
|
||||
-- save location in the jumplist
|
||||
jumplist = true,
|
||||
-- automatically jump when there is only one match
|
||||
autojump = true,
|
||||
},
|
||||
label = {
|
||||
rainbow = {
|
||||
enabled = true,
|
||||
-- number between 1 and 9
|
||||
shade = 4,
|
||||
},
|
||||
},
|
||||
prompt = {
|
||||
enabled = true,
|
||||
prefix = { { icons.ui.Separator .. icons.ui.Rocket .. icons.ui.ChevronRight .. ' ', 'FlashPromptIcon' } },
|
||||
win_config = { relative = 'editor', width = 1, height = 1, row = 1, col = 0, zindex = 1000 },
|
||||
},
|
||||
modes = {
|
||||
search = {
|
||||
enabled = true,
|
||||
},
|
||||
char = {
|
||||
enabled = false,
|
||||
jump_labels = false,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
vim.api.nvim_create_user_command('FlashDiagnostics', function()
|
||||
require('flash').jump({
|
||||
matcher = function(win)
|
||||
return vim.tbl_map(function(diag)
|
||||
return {
|
||||
pos = { diag.lnum + 1, diag.col },
|
||||
end_pos = { diag.end_lnum + 1, diag.end_col - 1 },
|
||||
}
|
||||
end, vim.diagnostic.get(vim.api.nvim_win_get_buf(win)))
|
||||
end,
|
||||
action = function(match, state)
|
||||
vim.api.nvim_win_call(match.win, function()
|
||||
vim.api.nvim_win_set_cursor(match.win, match.pos)
|
||||
vim.diagnostic.open_float()
|
||||
end)
|
||||
state:restore()
|
||||
end,
|
||||
})
|
||||
end, {})
|
||||
@@ -0,0 +1,24 @@
|
||||
local gitlinker = require('gitlinker')
|
||||
|
||||
gitlinker.setup({
|
||||
opts = {
|
||||
remote = nil,
|
||||
add_current_line_on_normal_mode = true,
|
||||
action_callback = require('gitlinker.actions').copy_to_clipboard,
|
||||
print_url = true,
|
||||
},
|
||||
callbacks = {
|
||||
['github.com'] = require('gitlinker.hosts').get_github_type_url,
|
||||
['gitlab.com'] = require('gitlinker.hosts').get_gitlab_type_url,
|
||||
['try.gitea.io'] = require('gitlinker.hosts').get_gitea_type_url,
|
||||
['codeberg.org'] = require('gitlinker.hosts').get_gitea_type_url,
|
||||
['bitbucket.org'] = require('gitlinker.hosts').get_bitbucket_type_url,
|
||||
['try.gogs.io'] = require('gitlinker.hosts').get_gogs_type_url,
|
||||
['git.sr.ht'] = require('gitlinker.hosts').get_srht_type_url,
|
||||
['git.launchpad.net'] = require('gitlinker.hosts').get_launchpad_type_url,
|
||||
['repo.or.cz'] = require('gitlinker.hosts').get_repoorcz_type_url,
|
||||
['git.kernel.org'] = require('gitlinker.hosts').get_cgit_type_url,
|
||||
['git.savannah.gnu.org'] = require('gitlinker.hosts').get_cgit_type_url,
|
||||
},
|
||||
mappings = '<leader>yg',
|
||||
})
|
||||
@@ -0,0 +1,63 @@
|
||||
local gitsigns = require('gitsigns')
|
||||
local icons = require('lib.icons')
|
||||
|
||||
gitsigns.setup({
|
||||
signs = {
|
||||
add = { text = icons.ui.SeparatorLight },
|
||||
change = { text = icons.ui.SeparatorLight },
|
||||
delete = { text = icons.ui.SeparatorLight },
|
||||
topdelete = { text = icons.ui.Topline },
|
||||
changedelete = { text = icons.ui.SeparatorLight },
|
||||
untracked = { text = icons.ui.SeparatorDashed },
|
||||
},
|
||||
signcolumn = true,
|
||||
numhl = false,
|
||||
linehl = false,
|
||||
word_diff = false,
|
||||
watch_gitdir = { interval = 1000, follow_files = true },
|
||||
attach_to_untracked = true,
|
||||
current_line_blame = false,
|
||||
current_line_blame_opts = {
|
||||
virt_text = true,
|
||||
virt_text_pos = 'eol',
|
||||
delay = 0,
|
||||
ignore_whitespace = false,
|
||||
},
|
||||
current_line_blame_formatter = '<author>, <author_time:%Y-%m-%d> - <summary>',
|
||||
sign_priority = 6,
|
||||
update_debounce = 100,
|
||||
status_formatter = nil,
|
||||
max_file_length = 40000,
|
||||
preview_config = { border = 'rounded', style = 'minimal', relative = 'cursor', row = 0, col = 1 },
|
||||
on_attach = function(bufnr)
|
||||
local gs = package.loaded.gitsigns
|
||||
|
||||
local function map(mode, l, r, opts)
|
||||
opts = opts or {}
|
||||
opts.buffer = bufnr
|
||||
vim.keymap.set(mode, l, r, opts)
|
||||
end
|
||||
|
||||
map('n', ']e', function()
|
||||
if vim.wo.diff then
|
||||
return ']e'
|
||||
end
|
||||
vim.schedule(function()
|
||||
gs.next_hunk()
|
||||
end)
|
||||
return '<Ignore>'
|
||||
end, { expr = true, desc = 'Next Change' })
|
||||
|
||||
map('n', '[e', function()
|
||||
if vim.wo.diff then
|
||||
return '[e'
|
||||
end
|
||||
vim.schedule(function()
|
||||
gs.prev_hunk()
|
||||
end)
|
||||
return '<Ignore>'
|
||||
end, { expr = true, desc = 'Prev Change' })
|
||||
|
||||
map({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
|
||||
end,
|
||||
})
|
||||
@@ -0,0 +1,37 @@
|
||||
local marks = require('marks')
|
||||
local icons = require('lib.icons')
|
||||
|
||||
marks.setup({
|
||||
default_mappings = true,
|
||||
builtin_marks = { '.', '<', '>', '^' },
|
||||
cyclic = true,
|
||||
force_write_shada = false,
|
||||
sign_priority = { lower = 10, upper = 15, builtin = 8, bookmark = 20 },
|
||||
excluded_filetypes = {},
|
||||
excluded_buftypes = { 'nofile' },
|
||||
-- supports up to 10 bookmark groups
|
||||
bookmark_1 = {
|
||||
sign = icons.ui.Flag,
|
||||
virt_text = 'flag',
|
||||
annotate = false,
|
||||
},
|
||||
bookmark_2 = {
|
||||
sign = icons.ui.Eye,
|
||||
virt_text = 'watch',
|
||||
annotate = false,
|
||||
},
|
||||
bookmark_3 = {
|
||||
sign = icons.ui.Star,
|
||||
virt_text = 'star',
|
||||
annotate = false,
|
||||
},
|
||||
bookmark_4 = {
|
||||
sign = icons.ui.Bug,
|
||||
virt_text = 'bug',
|
||||
annotate = false,
|
||||
},
|
||||
mappings = {
|
||||
set = 'M',
|
||||
toggle_mark = 'm',
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,8 @@
|
||||
local navigator = require('Navigator')
|
||||
|
||||
navigator.setup({
|
||||
auto_save = 'current',
|
||||
disable_on_zoom = false,
|
||||
mux = 'auto',
|
||||
})
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
local nvim_tree = require('nvim-tree')
|
||||
local Snacks = require('snacks')
|
||||
|
||||
local icons = require('lib.icons')
|
||||
|
||||
local function on_attach(bufnr)
|
||||
local api = require('nvim-tree.api')
|
||||
|
||||
local function opts(desc)
|
||||
return {
|
||||
desc = 'nvim-tree: ' .. desc,
|
||||
buffer = bufnr,
|
||||
noremap = true,
|
||||
silent = true,
|
||||
nowait = true,
|
||||
}
|
||||
end
|
||||
|
||||
api.config.mappings.default_on_attach(bufnr)
|
||||
vim.keymap.set('n', 'Y', api.fs.copy.filename, opts('Copy Name'))
|
||||
vim.keymap.set('n', 'y', api.fs.copy.relative_path, opts('Copy Relative Path'))
|
||||
vim.keymap.set('n', 'l', api.node.open.edit, opts('Open'))
|
||||
vim.keymap.set('n', '<CR>', api.node.open.edit, opts('Open'))
|
||||
vim.keymap.set('n', 'h', api.node.navigate.parent_close, opts('Close Directory'))
|
||||
vim.keymap.set('n', 'v', api.node.open.vertical, opts('Open: Vertical Split'))
|
||||
vim.keymap.set('n', 'o', api.node.open.horizontal, opts('Open: Horizontal Split'))
|
||||
end
|
||||
|
||||
local prev = { new_name = '', old_name = '' } -- Prevents duplicate events
|
||||
vim.api.nvim_create_autocmd('User', {
|
||||
pattern = 'NvimTreeSetup',
|
||||
callback = function()
|
||||
local events = require('nvim-tree.api').events
|
||||
events.subscribe(events.Event.NodeRenamed, function(data)
|
||||
if prev.new_name ~= data.new_name or prev.old_name ~= data.old_name then
|
||||
data = data
|
||||
Snacks.rename.on_rename_file(data.old_name, data.new_name)
|
||||
end
|
||||
end)
|
||||
end,
|
||||
})
|
||||
|
||||
nvim_tree.setup({
|
||||
on_attach = on_attach,
|
||||
hijack_directories = { enable = true },
|
||||
update_cwd = true,
|
||||
filters = {},
|
||||
renderer = {
|
||||
add_trailing = false,
|
||||
group_empty = false,
|
||||
highlight_git = false,
|
||||
highlight_opened_files = 'none',
|
||||
root_folder_modifier = ':t',
|
||||
indent_markers = {
|
||||
enable = false,
|
||||
icons = { corner = icons.ui.Corner, edge = icons.ui.Edge, none = icons.ui.Edge },
|
||||
},
|
||||
icons = {
|
||||
webdev_colors = true,
|
||||
git_placement = 'before',
|
||||
padding = ' ',
|
||||
symlink_arrow = icons.ui.Arrow,
|
||||
show = { file = true, folder = true, folder_arrow = true, git = true },
|
||||
glyphs = {
|
||||
default = icons.documents.File,
|
||||
symlink = icons.documents.SymLink,
|
||||
folder = {
|
||||
arrow_open = icons.ui.ArrowOpen,
|
||||
arrow_closed = icons.ui.ArrowClosed,
|
||||
default = icons.documents.Folder,
|
||||
open = icons.documents.OpenFolder,
|
||||
empty = icons.documents.FolderEmpty,
|
||||
empty_open = icons.documents.OpenFolderEmpty,
|
||||
symlink = icons.documents.SymlinkFolder,
|
||||
symlink_open = icons.documents.SymlinkFolder,
|
||||
},
|
||||
git = {
|
||||
unstaged = icons.git.Mod,
|
||||
staged = icons.git.Add,
|
||||
unmerged = icons.git.Diff,
|
||||
renamed = icons.git.Rename,
|
||||
untracked = icons.git.Untrack,
|
||||
deleted = icons.git.Remove,
|
||||
ignored = icons.git.Ignore,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
diagnostics = {
|
||||
enable = true,
|
||||
icons = {
|
||||
hint = icons.diagnostics.Hint,
|
||||
info = icons.diagnostics.Information,
|
||||
warning = icons.diagnostics.Warning,
|
||||
error = icons.diagnostics.Error,
|
||||
},
|
||||
},
|
||||
update_focused_file = { enable = true, update_cwd = true, ignore_list = {} },
|
||||
git = { enable = true, ignore = true, timeout = 500 },
|
||||
view = {
|
||||
width = 50,
|
||||
side = 'left',
|
||||
adaptive_size = true,
|
||||
number = true,
|
||||
relativenumber = true,
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,125 @@
|
||||
local spectre = require('spectre')
|
||||
|
||||
spectre.setup({
|
||||
color_devicons = true,
|
||||
highlight = {
|
||||
ui = 'String',
|
||||
search = 'DiffChange',
|
||||
replace = 'DiffDelete',
|
||||
},
|
||||
mapping = {
|
||||
['toggle_line'] = {
|
||||
map = 't',
|
||||
cmd = "<cmd>lua require('spectre').toggle_line()<CR>",
|
||||
desc = 'toggle current item',
|
||||
},
|
||||
['enter_file'] = {
|
||||
map = '<cr>',
|
||||
cmd = "<cmd>lua require('spectre.actions').select_entry()<CR>",
|
||||
desc = 'goto current file',
|
||||
},
|
||||
['send_to_qf'] = {
|
||||
map = 'Q',
|
||||
cmd = "<cmd>lua require('spectre.actions').send_to_qf()<CR>",
|
||||
desc = 'send all item to quickfix',
|
||||
},
|
||||
['replace_cmd'] = {
|
||||
map = 'c',
|
||||
cmd = "<cmd>lua require('spectre.actions').replace_cmd()<CR>",
|
||||
desc = 'input replace vim command',
|
||||
},
|
||||
['show_option_menu'] = {
|
||||
map = 'o',
|
||||
cmd = "<cmd>lua require('spectre').show_options()<CR>",
|
||||
desc = 'show option',
|
||||
},
|
||||
['run_replace'] = {
|
||||
map = 'R',
|
||||
cmd = "<cmd>lua require('spectre.actions').run_replace()<CR>",
|
||||
desc = 'replace all',
|
||||
},
|
||||
['change_view_mode'] = {
|
||||
map = 'm',
|
||||
cmd = "<cmd>lua require('spectre').change_view()<CR>",
|
||||
desc = 'change result view mode',
|
||||
},
|
||||
['toggle_ignore_case'] = {
|
||||
map = 'I',
|
||||
cmd = "<cmd>lua require('spectre').change_options('ignore-case')<CR>",
|
||||
desc = 'toggle ignore case',
|
||||
},
|
||||
['toggle_ignore_hidden'] = {
|
||||
map = 'H',
|
||||
cmd = "<cmd>lua require('spectre').change_options('hidden')<CR>",
|
||||
desc = 'toggle search hidden',
|
||||
},
|
||||
},
|
||||
find_engine = {
|
||||
['rg'] = {
|
||||
cmd = 'rg',
|
||||
args = {
|
||||
'--color=never',
|
||||
'--no-heading',
|
||||
'--with-filename',
|
||||
'--line-number',
|
||||
'--column',
|
||||
},
|
||||
options = {
|
||||
['ignore-case'] = {
|
||||
value = '--ignore-case',
|
||||
icon = '[I]',
|
||||
desc = 'ignore case',
|
||||
},
|
||||
['hidden'] = {
|
||||
value = '--hidden',
|
||||
desc = 'hidden file',
|
||||
icon = '[H]',
|
||||
},
|
||||
},
|
||||
},
|
||||
['ag'] = {
|
||||
cmd = 'ag',
|
||||
args = {
|
||||
'--vimgrep',
|
||||
'-s',
|
||||
},
|
||||
options = {
|
||||
['ignore-case'] = {
|
||||
value = '-i',
|
||||
icon = '[I]',
|
||||
desc = 'ignore case',
|
||||
},
|
||||
['hidden'] = {
|
||||
value = '--hidden',
|
||||
desc = 'hidden file',
|
||||
icon = '[H]',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
replace_engine = {
|
||||
['sed'] = {
|
||||
cmd = 'sed',
|
||||
args = nil,
|
||||
},
|
||||
options = {
|
||||
['ignore-case'] = {
|
||||
value = '--ignore-case',
|
||||
icon = '[I]',
|
||||
desc = 'ignore case',
|
||||
},
|
||||
},
|
||||
},
|
||||
default = {
|
||||
find = {
|
||||
cmd = 'rg',
|
||||
options = { 'ignore-case' },
|
||||
},
|
||||
replace = {
|
||||
cmd = 'sed',
|
||||
},
|
||||
},
|
||||
replace_vim_cmd = 'cdo',
|
||||
is_open_target_win = true,
|
||||
is_insert_mode = true,
|
||||
})
|
||||
@@ -0,0 +1,10 @@
|
||||
local spider = require('spider')
|
||||
|
||||
spider.setup({
|
||||
skipInsignificantPunctuation = true,
|
||||
})
|
||||
|
||||
vim.keymap.set({ 'n', 'o', 'x' }, 'w', "<cmd>lua require('spider').motion('w')<CR>", { desc = 'Spider-w' })
|
||||
vim.keymap.set({ 'n', 'o', 'x' }, 'e', "<cmd>lua require('spider').motion('e')<CR>", { desc = 'Spider-e' })
|
||||
vim.keymap.set({ 'n', 'o', 'x' }, 'b', "<cmd>lua require('spider').motion('b')<CR>", { desc = 'Spider-b' })
|
||||
vim.keymap.set({ 'n', 'o', 'x' }, 'ge', "<cmd>lua require('spider').motion('ge')<CR>", { desc = 'Spider-ge' })
|
||||
@@ -0,0 +1,22 @@
|
||||
local tabout = require('tabout')
|
||||
|
||||
tabout.setup({
|
||||
tabkey = '<tab>',
|
||||
backwards_tabkey = '<s-tab>',
|
||||
act_as_tab = true,
|
||||
act_as_shift_tab = true,
|
||||
default_tab = '<C-t>',
|
||||
default_shift_tab = '<C-d>',
|
||||
enable_backwards = false,
|
||||
completion = true,
|
||||
tabouts = {
|
||||
{ open = "'", close = "'" },
|
||||
{ open = '"', close = '"' },
|
||||
{ open = '`', close = '`' },
|
||||
{ open = '(', close = ')' },
|
||||
{ open = '[', close = ']' },
|
||||
{ open = '{', close = '}' },
|
||||
},
|
||||
ignore_beginning = true,
|
||||
exclude = { 'markdown' },
|
||||
})
|
||||
@@ -0,0 +1,92 @@
|
||||
local M = {}
|
||||
|
||||
M.flash = function(prompt_bufnr)
|
||||
require('flash').jump({
|
||||
pattern = '^',
|
||||
label = { after = { 0, 0 } },
|
||||
search = {
|
||||
mode = 'search',
|
||||
exclude = {
|
||||
function(win)
|
||||
return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= 'TelescopeResults'
|
||||
end,
|
||||
},
|
||||
},
|
||||
action = function(match)
|
||||
local picker = require('telescope.actions.state').get_current_picker(prompt_bufnr)
|
||||
picker:set_selection(match.pos[1] - 1)
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
-- Select multiple files with tab and open them together
|
||||
M.multi_open = function(prompt_bufnr)
|
||||
local picker = require('telescope.actions.state').get_current_picker(prompt_bufnr)
|
||||
local multi = picker:get_multi_selection()
|
||||
if not vim.tbl_isempty(multi) then
|
||||
require('telescope.actions').close(prompt_bufnr)
|
||||
for _, j in pairs(multi) do
|
||||
if j.path ~= nil then
|
||||
if j.lnum ~= nil then
|
||||
vim.cmd(string.format('%s +%s %s', 'edit', j.lnum, j.path))
|
||||
else
|
||||
vim.cmd(string.format('%s %s', 'edit', j.path))
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
require('telescope.actions').select_default(prompt_bufnr)
|
||||
end
|
||||
end
|
||||
|
||||
-- Do glob search by adding 2 spaces before the pattern during live_grep
|
||||
M.multi_grep = function(opts)
|
||||
local conf = require('telescope.config').values
|
||||
local finders = require('telescope.finders')
|
||||
local make_entry = require('telescope.make_entry')
|
||||
local pickers = require('telescope.pickers')
|
||||
|
||||
opts = opts or {}
|
||||
opts.cwd = opts.cwd and vim.fn.expand(opts.cwd) or vim.loop.cwd()
|
||||
opts.pattern = opts.pattern or '%s'
|
||||
|
||||
local custom_grep = finders.new_async_job({
|
||||
command_generator = function(prompt)
|
||||
if not prompt or prompt == '' then
|
||||
return nil
|
||||
end
|
||||
local prompt_split = vim.split(prompt, ' ')
|
||||
|
||||
local args = { 'rg' }
|
||||
if prompt_split[1] then
|
||||
table.insert(args, '-e')
|
||||
table.insert(args, prompt_split[1])
|
||||
end
|
||||
|
||||
if prompt_split[2] then
|
||||
table.insert(args, '-g')
|
||||
local pattern = prompt_split[2]
|
||||
table.insert(args, string.format(opts.pattern, pattern))
|
||||
end
|
||||
|
||||
return vim.tbl_flatten({
|
||||
args,
|
||||
{ '--color=never', '--no-heading', '--with-filename', '--line-number', '--column', '--smart-case' },
|
||||
})
|
||||
end,
|
||||
entry_maker = make_entry.gen_from_vimgrep(opts),
|
||||
cwd = opts.cwd,
|
||||
})
|
||||
|
||||
pickers
|
||||
.new(opts, {
|
||||
debounce = 100,
|
||||
prompt_title = 'Multi Grep',
|
||||
finder = custom_grep,
|
||||
previewer = conf.grep_previewer(opts),
|
||||
sorter = require('telescope.sorters').empty(),
|
||||
})
|
||||
:find()
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -0,0 +1,159 @@
|
||||
local telescope = require('telescope')
|
||||
local actions = require('telescope.actions')
|
||||
local icons = require('lib.icons')
|
||||
local flash = require('plugins.tools.telescope-custom').flash
|
||||
local multi_open = require('plugins.tools.telescope-custom').multi_open
|
||||
|
||||
telescope.setup({
|
||||
defaults = {
|
||||
layout_config = {
|
||||
height = 0.8,
|
||||
width = 0.9,
|
||||
prompt_position = 'top',
|
||||
bottom_pane = {
|
||||
height = 0.5,
|
||||
preview_width = 0.6,
|
||||
preview_cutoff = 120,
|
||||
},
|
||||
center = {
|
||||
height = 0.4,
|
||||
preview_cutoff = 40,
|
||||
},
|
||||
cursor = {
|
||||
preview_cutoff = 40,
|
||||
preview_width = 0.6,
|
||||
},
|
||||
horizontal = {
|
||||
preview_width = 0.6,
|
||||
preview_cutoff = 120,
|
||||
},
|
||||
vertical = {
|
||||
preview_cutoff = 40,
|
||||
},
|
||||
},
|
||||
prompt_prefix = icons.ui.Telescope .. icons.ui.ChevronRight,
|
||||
selection_caret = icons.ui.Play,
|
||||
multi_icon = icons.ui.Check,
|
||||
path_display = { 'smart' },
|
||||
-- path_display = { filename_first = { reverse_directories = false } },
|
||||
sorting_strategy = 'ascending',
|
||||
|
||||
mappings = {
|
||||
i = {
|
||||
['<esc>'] = actions.close,
|
||||
['<C-n>'] = actions.cycle_history_next,
|
||||
['<C-p>'] = actions.cycle_history_prev,
|
||||
|
||||
['<C-j>'] = actions.move_selection_next,
|
||||
['<C-k>'] = actions.move_selection_previous,
|
||||
|
||||
['<C-c>'] = actions.close,
|
||||
|
||||
['<Down>'] = actions.move_selection_next,
|
||||
['<Up>'] = actions.move_selection_previous,
|
||||
|
||||
['<CR>'] = multi_open,
|
||||
['<C-x>'] = actions.select_horizontal,
|
||||
['<C-CR>'] = actions.select_vertical,
|
||||
['<S-CR>'] = actions.select_horizontal,
|
||||
['<C-v>'] = actions.select_vertical,
|
||||
['<C-t>'] = actions.select_tab,
|
||||
['<C-s>'] = flash,
|
||||
|
||||
['<C-u>'] = actions.preview_scrolling_up,
|
||||
['<C-d>'] = actions.preview_scrolling_down,
|
||||
|
||||
['<PageUp>'] = actions.results_scrolling_up,
|
||||
['<PageDown>'] = actions.results_scrolling_down,
|
||||
|
||||
['<Tab>'] = actions.toggle_selection + actions.move_selection_worse,
|
||||
['<S-Tab>'] = actions.toggle_selection + actions.move_selection_better,
|
||||
['<C-q>'] = actions.send_to_qflist + actions.open_qflist,
|
||||
['<M-q>'] = actions.send_selected_to_qflist + actions.open_qflist,
|
||||
['<C-l>'] = actions.complete_tag,
|
||||
},
|
||||
|
||||
n = {
|
||||
['q'] = actions.close,
|
||||
['<esc>'] = actions.close,
|
||||
['<CR>'] = multi_open,
|
||||
['<C-x>'] = actions.select_horizontal,
|
||||
['<C-v>'] = actions.select_vertical,
|
||||
['<C-t>'] = actions.select_tab,
|
||||
['s'] = flash,
|
||||
|
||||
['<Tab>'] = actions.toggle_selection + actions.move_selection_worse,
|
||||
['<S-Tab>'] = actions.toggle_selection + actions.move_selection_better,
|
||||
['<C-q>'] = actions.send_to_qflist + actions.open_qflist,
|
||||
['<M-q>'] = actions.send_selected_to_qflist + actions.open_qflist,
|
||||
|
||||
['j'] = actions.move_selection_next,
|
||||
['k'] = actions.move_selection_previous,
|
||||
['H'] = actions.move_to_top,
|
||||
['M'] = actions.move_to_middle,
|
||||
['L'] = actions.move_to_bottom,
|
||||
|
||||
['<Down>'] = actions.move_selection_next,
|
||||
['<Up>'] = actions.move_selection_previous,
|
||||
['gg'] = actions.move_to_top,
|
||||
['G'] = actions.move_to_bottom,
|
||||
|
||||
['<C-u>'] = actions.preview_scrolling_up,
|
||||
['<C-d>'] = actions.preview_scrolling_down,
|
||||
|
||||
['<PageUp>'] = actions.results_scrolling_up,
|
||||
['<PageDown>'] = actions.results_scrolling_down,
|
||||
|
||||
['?'] = actions.which_key,
|
||||
},
|
||||
},
|
||||
},
|
||||
extensions = {
|
||||
fzf = {
|
||||
fuzzy = true,
|
||||
override_generic_sorter = true,
|
||||
override_file_sorter = true,
|
||||
case_mode = 'smart_case',
|
||||
},
|
||||
file_browser = {
|
||||
theme = 'ivy',
|
||||
hijack_netrw = true,
|
||||
mappings = {
|
||||
['i'] = {
|
||||
-- your custom insert mode mappings
|
||||
},
|
||||
['n'] = {
|
||||
-- your custom normal mode mappings
|
||||
},
|
||||
},
|
||||
},
|
||||
undo = {
|
||||
use_delta = true,
|
||||
use_custom_command = nil,
|
||||
side_by_side = true,
|
||||
vim_diff_opts = {
|
||||
ctxlen = vim.o.scrolloff * 2,
|
||||
},
|
||||
entry_format = 'state #$ID, $STAT, $TIME',
|
||||
-- time_format = '%d %b %H:%M',
|
||||
saved_only = false,
|
||||
layout_strategy = 'vertical',
|
||||
layout_config = {
|
||||
preview_height = 0.7,
|
||||
},
|
||||
mappings = {
|
||||
i = {
|
||||
['<S-cr>'] = require('telescope-undo.actions').yank_additions,
|
||||
['<C-cr>'] = require('telescope-undo.actions').yank_deletions,
|
||||
['<cr>'] = require('telescope-undo.actions').restore,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
telescope.load_extension('fzf')
|
||||
telescope.load_extension('undo')
|
||||
telescope.load_extension('marks_nvim')
|
||||
telescope.load_extension('refactoring')
|
||||
telescope.load_extension('file_browser')
|
||||
@@ -0,0 +1,23 @@
|
||||
require('toggleterm').setup({
|
||||
size = 10,
|
||||
open_mapping = [[<c-\>]],
|
||||
hide_numbers = true,
|
||||
shade_filetypes = {},
|
||||
shade_terminals = true,
|
||||
shading_factor = '2',
|
||||
start_in_insert = true,
|
||||
insert_mappings = true,
|
||||
terminal_mappings = true,
|
||||
persist_size = true,
|
||||
direction = 'float', -- Use 'float' for floating terminal windows
|
||||
close_on_exit = true,
|
||||
shell = vim.o.shell,
|
||||
float_opts = {
|
||||
border = 'curved', -- or 'single', 'double', 'shadow', etc.
|
||||
winblend = 0, -- Set to 0 for full transparency
|
||||
highlights = {
|
||||
border = 'Normal',
|
||||
background = 'Normal',
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,582 @@
|
||||
local which_key = require('which-key')
|
||||
local icons = require('lib.icons')
|
||||
|
||||
local setup = {
|
||||
preset = 'helix',
|
||||
plugins = {
|
||||
marks = true,
|
||||
registers = true,
|
||||
spelling = {
|
||||
enabled = true,
|
||||
suggestions = 30,
|
||||
},
|
||||
presets = {
|
||||
operators = true,
|
||||
motions = true,
|
||||
text_objects = true,
|
||||
windows = true,
|
||||
nav = true,
|
||||
z = true,
|
||||
g = true,
|
||||
},
|
||||
},
|
||||
icons = {
|
||||
breadcrumb = icons.ui.ArrowOpen,
|
||||
separator = icons.ui.Arrow,
|
||||
group = '',
|
||||
keys = {
|
||||
Space = icons.ui.Rocket,
|
||||
},
|
||||
rules = false, -- enable auto icon rules
|
||||
},
|
||||
show_help = false,
|
||||
show_keys = true,
|
||||
triggers = {
|
||||
{ '<auto>', mode = 'nixsotc' },
|
||||
{ '<leader>', mode = { 'n', 'v' } },
|
||||
},
|
||||
}
|
||||
|
||||
local normal_mappings = {
|
||||
mode = 'n',
|
||||
{ '<leader>a', group = ' AI' },
|
||||
{ '<leader>aF', '<cmd>CopilotChatFixDiagnostic<cr>', desc = 'Fix Diagnostic' },
|
||||
{ '<leader>aG', '<cmd>CopilotChatCommitStaged<cr>', desc = 'Commit Staged' },
|
||||
{ '<leader>ac', '<cmd>CopilotChatToggle<cr>', desc = 'Copilot Chat' },
|
||||
{ '<leader>ad', '<cmd>CopilotChatDocs<cr>', desc = 'Docs' },
|
||||
{ '<leader>ae', '<cmd>CopilotChatExplain<cr>', desc = 'Explain' },
|
||||
{ '<leader>af', '<cmd>CopilotChatFix<cr>', desc = 'Fix' },
|
||||
{ '<leader>ag', '<cmd>CopilotChatCommit<cr>', desc = 'Commit' },
|
||||
{ '<leader>al', '<cmd>CopilotChatLoad<cr>', desc = 'Load Chat' },
|
||||
{ '<leader>ao', '<cmd>CopilotChatOptimize<cr>', desc = 'Optimize' },
|
||||
{ '<leader>ar', '<cmd>CopilotChatReview<cr>', desc = 'Review' },
|
||||
{ '<leader>as', '<cmd>CopilotChatSave<cr>', desc = 'Save Chat' },
|
||||
{ '<leader>at', '<cmd>CopilotChatTests<cr>', desc = 'Tests' },
|
||||
|
||||
{ '<leader>b', group = ' Debug' },
|
||||
{ '<leader>bO', '<cmd>DapStepOut<cr>', desc = 'Out' },
|
||||
{ '<leader>bR', '<cmd>DapRestartFrame<cr>', desc = 'Restart Frame' },
|
||||
{ '<leader>bb', '<cmd>DapToggleBreakpoint<cr>', desc = 'Breakpoint' },
|
||||
{ '<leader>bc', '<cmd>DapContinue<cr>', desc = 'Continue' },
|
||||
{ '<leader>bi', '<cmd>DapStepInto<cr>', desc = 'Into' },
|
||||
{ '<leader>bl', "<cmd>lua require'dap'.run_last()<cr>", desc = 'Last' },
|
||||
{ '<leader>bo', '<cmd>DapStepOver<cr>', desc = 'Over' },
|
||||
{ '<leader>br', '<cmd>DapToggleRepl<cr>', desc = 'Repl' },
|
||||
{ '<leader>bt', '<cmd>DapUIToggle<cr>', desc = 'Debugger' },
|
||||
{ '<leader>bx', '<cmd>DapTerminate<cr>', desc = 'Exit' },
|
||||
|
||||
{ '<leader>c', group = ' Code' },
|
||||
{ '<leader>cF', '<cmd>retab<cr>', desc = 'Fix Tabs' },
|
||||
{ '<leader>cP', '<cmd>CccConvert<cr>', desc = 'Convert Color' },
|
||||
{ '<leader>cR', '<cmd>ReloadConfig<cr>', desc = 'Reload Configs' },
|
||||
{ '<leader>cc', '<cmd>CccHighlighterToggle<cr>', desc = 'Highlight Colors' },
|
||||
{ '<leader>cd', '<cmd>RootDir<cr>', desc = 'Root Directory' },
|
||||
{ '<leader>ce', '<cmd>%SnipRun<cr>', desc = 'Execute File' },
|
||||
{ '<leader>cf', '<cmd>lua vim.lsp.buf.format({async = true})<cr>', desc = 'Format File' },
|
||||
{ '<leader>ch', '<cmd>Hardtime toggle<cr>', desc = 'Hardtime' },
|
||||
{ '<leader>cl', '<cmd>:g/^\\s*$/d<cr>', desc = 'Clean Empty Lines' },
|
||||
{ '<leader>cm', '<cmd>MarkdownPreviewToggle<cr>', desc = 'Markdown Preview' },
|
||||
{ '<leader>cn', '<cmd>lua require("snacks").notifier.show_history()<cr>', desc = 'Notifications' },
|
||||
{ '<leader>co', '<cmd>Dashboard<cr>', desc = 'Dashboard' },
|
||||
{ '<leader>cp', '<cmd>CccPick<cr>', desc = 'Pick Color' },
|
||||
{ '<leader>cr', '<cmd>Telescope reloader<cr>', desc = 'Reload Module' },
|
||||
{ '<leader>cs', '<cmd>source %<cr>', desc = 'Source File' },
|
||||
|
||||
{ '<leader>C', group = ' Comment' },
|
||||
{ '<leader>Cb', '<cmd>CBccbox<CR>', desc = 'Comment Box' },
|
||||
{ '<leader>Ct', '<cmd>CBllline<CR>', desc = 'Tiled line' },
|
||||
{ '<leader>Cl', '<cmd>CBline<CR>', desc = 'Line' },
|
||||
{ '<leader>Cm', '<cmd>CBllbox14<CR>', desc = 'Marked' },
|
||||
{ '<leader>Cc', '<cmd>CBcatalog<CR>', desc = 'Catalog' },
|
||||
{ '<leader>Cd', '<cmd>CBd<CR>', desc = 'Delete Comment Style' },
|
||||
|
||||
{ '<leader>d', group = ' Database' },
|
||||
{ '<leader>dS', '<cmd>lua require("dbee").store("json", "buffer", { extra_arg = 0 })<cr>', desc = 'To JSON' },
|
||||
{ '<leader>db', '<cmd>DBToggle<cr>', desc = 'DB Explorer' },
|
||||
{ '<leader>dj', '<cmd>lua require("dbee").next()<cr>', desc = 'DB Next' },
|
||||
{ '<leader>dk', '<cmd>lua require("dbee").prev()<cr>', desc = 'DB Prev' },
|
||||
{ '<leader>ds', '<cmd>lua require("dbee").store("csv", "buffer", { extra_arg = 0 })<cr>', desc = 'To CSV' },
|
||||
{ '<leader>dt', '<cmd>lua require("dbee").store("table", "buffer", { extra_arg = 0 })<cr>', desc = 'To Table' },
|
||||
|
||||
{ '<leader>e', group = ' Edit' },
|
||||
{ '<leader>ea', '<cmd>b#<cr>', desc = 'Alternate File' },
|
||||
|
||||
{ '<leader>ec', group = 'Edit Configs' },
|
||||
{ '<leader>eca', '<cmd>e ~/dotfiles/zsh/aliases.zsh<cr>', desc = 'Shell Aliases' },
|
||||
{
|
||||
'<leader>ecc',
|
||||
'<cmd>lua require("telescope.builtin").find_files({cwd = vim.fn.stdpath("config")})<cr>',
|
||||
desc = 'Neovim Configs',
|
||||
},
|
||||
{
|
||||
'<leader>ecd',
|
||||
'<cmd>lua require("telescope.builtin").find_files({cwd = vim.fn.expand("$DOTS_DIR")})<cr>',
|
||||
desc = 'Dotfiles',
|
||||
},
|
||||
{ '<leader>ecg', '<cmd>e ~/.gitconfig<cr>', desc = 'Git Config' },
|
||||
{ '<leader>eck', '<cmd>e ~/.config/kitty/kitty.conf<cr>', desc = 'Kitty Config' },
|
||||
{ '<leader>ecn', '<cmd>e $MYVIMRC<cr>', desc = 'Neovim Init' },
|
||||
{ '<leader>ecp', '<cmd>e ~/dotfiles/nvim/lua/plugins/list.lua<cr>', desc = 'Plugin List' },
|
||||
{ '<leader>ect', '<cmd>e ~/dotfiles/tmux/tmux.conf<cr>', desc = 'Tmux Config' },
|
||||
|
||||
{ '<leader>ee', ':Neotree toggle float<CR>', silent = true, desc = 'Float File Explorer' },
|
||||
{ '<leader>eE', ':Neotree toggle left<CR>', silent = true, desc = 'Left File Explorer' },
|
||||
{ '<leader>ef', '<cmd>Telescope file_browser<cr>', desc = 'File Browser' },
|
||||
{ '<leader>eF', 'gf', desc = 'File Under Cursor' },
|
||||
{ '<leader>em', '<cmd>e README.md<cr>', desc = 'Readme' },
|
||||
{ '<leader>en', '<cmd>enew<cr>', desc = 'New File' },
|
||||
|
||||
{ '<leader>f', group = ' Find' },
|
||||
{ '<leader>fa', '<cmd>Telescope find_files<cr>', desc = 'All Files' },
|
||||
{ '<leader>fc', '<cmd>Telescope git_bcommits<cr>', desc = 'File Commits' },
|
||||
{ '<leader>ff', '<cmd>Telescope git_files<cr>', desc = 'Find files' },
|
||||
{
|
||||
'<leader>fg',
|
||||
'<cmd>lua require("plugins.tools.telescope-custom").multi_grep()<cr>',
|
||||
desc = 'Find Text',
|
||||
},
|
||||
{ '<leader>fj', '<cmd>Telescope buffers<cr>', desc = 'Buffers' },
|
||||
{ '<leader>fl', '<cmd>Telescope loclist<cr>', desc = 'Location List' },
|
||||
{ '<leader>fm', '<cmd>Telescope git_status<cr>', desc = 'Modified files' },
|
||||
{ '<leader>fo', '<cmd>Telescope live_grep grep_open_files=true<cr>', desc = 'Find in Open Files' },
|
||||
{ '<leader>fp', '<cmd>Telescope resume<cr>', desc = 'Last Search' },
|
||||
{
|
||||
'<leader>fP',
|
||||
'<cmd>lua require("telescope.builtin").find_files({cwd = vim.fs.joinpath(vim.fn.stdpath("data"), "lazy")})<cr>',
|
||||
desc = 'Plugin Files',
|
||||
},
|
||||
{ '<leader>fq', '<cmd>Telescope quickfix<cr>', desc = 'Quickfix' },
|
||||
{ '<leader>fr', '<cmd>Telescope oldfiles<cr>', desc = 'Recent Files' },
|
||||
{ '<leader>fs', '<cmd>Telescope current_buffer_fuzzy_find<cr>', desc = 'Fuzzy Find in File' },
|
||||
{ '<leader>ft', '<cmd>Telescope<cr>', desc = 'Panel' },
|
||||
{ '<leader>fu', '<cmd>Telescope undo<cr>', desc = 'Undo History' },
|
||||
{ '<leader>fw', '<cmd>Telescope grep_string<cr>', desc = 'Find Word' },
|
||||
|
||||
{ '<leader>g', group = ' Git' },
|
||||
{ '<leader>gA', '<cmd>Gitsigns stage_buffer<cr>', desc = 'Stage Buffer' },
|
||||
{ '<leader>gP', '<cmd>Git push<cr>', desc = 'Push' },
|
||||
{ '<leader>gR', '<cmd>Gitsigns reset_buffer<cr>', desc = 'Reset Buffer' },
|
||||
{ '<leader>gS', '<cmd>Telescope git_stash<cr>', desc = 'Stashed Changes' },
|
||||
{ '<leader>ga', '<cmd>Gitsigns stage_hunk<cr>', desc = 'Stage Hunk' },
|
||||
{ '<leader>gb', "<cmd>lua require('gitsigns').blame_line({full = true})<cr>", desc = 'Blame' },
|
||||
{ '<leader>gB', "<cmd>lua require('snacks').git.blame_line()<cr>", desc = 'Detailed Blame' },
|
||||
{ '<leader>gc', '<cmd>Telescope git_commits<cr>', desc = 'Find Commits' },
|
||||
{ '<leader>gd', '<cmd>Gitsigns diffthis HEAD<cr>', desc = 'Diff' },
|
||||
{ '<leader>gf', '<cmd>Git<cr>', desc = 'Fugitive Panel' },
|
||||
{ '<leader>gg', '<cmd>lua require("snacks").lazygit()<cr>', desc = 'Lazygit' },
|
||||
{ '<leader>gi', '<cmd>Gitsigns preview_hunk<cr>', desc = 'Hunk Info' },
|
||||
{ '<leader>gj', '<cmd>Gitsigns next_hunk<cr>', desc = 'Next Hunk' },
|
||||
{ '<leader>gk', '<cmd>Gitsigns prev_hunk<cr>', desc = 'Prev Hunk' },
|
||||
{ '<leader>gl', '<cmd>lua require("snacks").lazygit.log()<cr>', desc = 'Lazygit Log' },
|
||||
{ '<leader>gL', '<cmd>Git log<cr>', desc = 'Log' },
|
||||
{ '<leader>go', group = 'Octohub' },
|
||||
{ '<leader>gp', '<cmd>Git pull<cr>', desc = 'Pull' },
|
||||
{ '<leader>gr', '<cmd>Gitsigns reset_hunk<cr>', desc = 'Reset Hunk' },
|
||||
{ '<leader>gs', '<cmd>Telescope git_branches<cr>', desc = 'Switch Branch' },
|
||||
{ '<leader>gt', group = 'Toggle' },
|
||||
{ '<leader>gtb', '<cmd>Gitsigns toggle_current_line_blame<cr>', desc = 'Blame' },
|
||||
{ '<leader>gtd', '<cmd>Gitsigns toggle_deleted<cr>', desc = 'Deleted' },
|
||||
{ '<leader>gtl', '<cmd>Gitsigns toggle_linehl<cr>', desc = 'Line HL' },
|
||||
{ '<leader>gtn', '<cmd>Gitsigns toggle_numhl<cr>', desc = 'Number HL' },
|
||||
{ '<leader>gts', '<cmd>Gitsigns toggle_signs<cr>', desc = 'Signs' },
|
||||
{ '<leader>gtw', '<cmd>Gitsigns toggle_word_diff<cr>', desc = 'Word Diff' },
|
||||
{ '<leader>gu', '<cmd>Gitsigns undo_stage_hunk<cr>', desc = 'Undo Stage Hunk' },
|
||||
{ '<leader>gv', '<cmd>Gitsigns select_hunk<cr>', desc = 'Select Hunk' },
|
||||
{ '<leader>gw', '<cmd>lua require("snacks").gitbrowse()<cr>', desc = 'Git Browse' },
|
||||
|
||||
{ '<leader>h', group = ' Help' },
|
||||
{ '<leader>hh', '<cmd>Telescope help_tags<cr>', desc = 'Help Pages' },
|
||||
{ '<leader>hi', 'vim.show_pos', desc = 'Inspect Position' },
|
||||
{ '<leader>hk', '<cmd>Lspsaga hover_doc<cr>', desc = 'Hover Doc' },
|
||||
{ '<leader>hm', '<cmd>Telescope man_pages<cr>', desc = 'Man Pages' },
|
||||
|
||||
{ '<leader>i', group = ' Insert' },
|
||||
{ '<leader>iP', '<cmd>put %:p<cr>', desc = 'Absolute Path' },
|
||||
{ '<leader>id', "<cmd>put =strftime('## %a, %d %b, %Y, %r')<cr>", desc = 'Date' },
|
||||
{ '<leader>if', "<cmd>put =expand('%:t')<cr>", desc = 'File Name' },
|
||||
{ '<leader>in', '<cmd>Nerdy<cr>', desc = 'Nerd Glyphs' },
|
||||
{ '<leader>ip', '<cmd>put %<cr>', desc = 'Relative Path' },
|
||||
{ '<leader>ir', '<cmd>Telescope registers<cr>', desc = 'Registers' },
|
||||
{ '<leader>it', "<cmd>put =strftime('## %r')<cr>", desc = 'Time' },
|
||||
|
||||
{ '<leader>j', group = ' Jump' },
|
||||
{
|
||||
'<leader>jN',
|
||||
"<cmd>lua require('flash').jump({search = { forward = false, wrap = false, multi_window = false },})<cr>",
|
||||
desc = 'Search Backward',
|
||||
},
|
||||
{ '<leader>jc', '*', desc = 'Word' },
|
||||
{ '<leader>jd', '<cmd>FlashDiagnostics<cr>', desc = 'Diagnostics' },
|
||||
{ '<leader>jf', '<cmd>Telescope jumplist<cr>', desc = 'Jumplist' },
|
||||
{ '<leader>jh', '<C-o>', desc = 'Backward' },
|
||||
{ '<leader>jj', "<cmd>lua require('flash').remote()<cr>", desc = 'Remote' },
|
||||
{ '<leader>jk', "<cmd>lua require('flash').treesitter()<cr>", desc = 'Treesitter' },
|
||||
{ '<leader>jl', '<C-i>', desc = 'Forward' },
|
||||
{
|
||||
'<leader>jn',
|
||||
"<cmd>lua require('flash').jump({search = { forward = true, wrap = false, multi_window = false },})<cr>",
|
||||
desc = 'Search Forward',
|
||||
},
|
||||
{ '<leader>jp', "<cmd>lua require('flash').jump({continue = true})<cr>", desc = 'Previous Jump' },
|
||||
{ '<leader>js', "<cmd>lua require('flash').jump()<cr>", desc = 'Search' },
|
||||
{ '<leader>jt', "<cmd>lua require('flash').treesitter_search()<cr>", desc = 'Remote Treesitter' },
|
||||
{
|
||||
'<leader>jw',
|
||||
'<cmd>lua require("flash").jump({ pattern = vim.fn.expand("<cword>")})<cr>',
|
||||
desc = 'Current Word',
|
||||
},
|
||||
|
||||
{ '<leader>k', group = ' Keys' },
|
||||
{ '<leader>kc', '<cmd>Telescope commands<cr>', desc = 'Commands' },
|
||||
{ '<leader>kh', '<cmd>Telescope command_history<cr>', desc = 'Command History' },
|
||||
{ '<leader>kk', '<cmd>Telescope keymaps<cr>', desc = 'Keymaps' },
|
||||
{ '<leader>ks', '<cmd>Telescope search_history<cr>', desc = 'Search History' },
|
||||
|
||||
{ '<leader>l', group = ' LSP' },
|
||||
{ '<leader>lF', '<cmd>Telescope lsp_references layout_strategy=vertical<cr>', desc = 'References' },
|
||||
{ '<leader>lL', '<cmd>Lspsaga show_workspace_diagnostics<cr>', desc = 'Workspace Diagnostics' },
|
||||
{ '<leader>lP', '<cmd>Telescope lsp_outgoing_calls<cr>', desc = 'Outgoing Calls' },
|
||||
{ '<leader>lQ', '<cmd>LspRestart<cr>', desc = 'Restart LSP' },
|
||||
{ '<leader>lR', '<cmd>Lspsaga project_replace<cr>', desc = 'Replace' },
|
||||
{ '<leader>lS', '<cmd>Telescope lsp_dynamic_workspace_symbols<cr>', desc = 'Workspace Symbols' },
|
||||
{ '<leader>lT', '<cmd>Lspsaga goto_type_definition<cr>', desc = 'Goto Type Definition' },
|
||||
{ '<leader>la', '<cmd>Lspsaga code_action<cr>', desc = 'Code Action' },
|
||||
{ '<leader>ld', '<cmd>Lspsaga peek_definition<cr>', desc = 'Peek Definition' },
|
||||
{ '<leader>lf', '<cmd>Lspsaga finder<cr>', desc = 'Finder' },
|
||||
{ '<leader>lg', '<cmd>Lspsaga goto_definition<cr>', desc = 'Goto Definition' },
|
||||
{ '<leader>lh', '<cmd>Lspsaga hover_doc<cr>', desc = 'Hover' },
|
||||
{ '<leader>li', '<cmd>LspInfo<cr>', desc = 'LSP Info' },
|
||||
{ '<leader>lj', '<cmd>Lspsaga diagnostic_jump_next<cr>', desc = 'Next Diagnostic' },
|
||||
{ '<leader>lk', '<cmd>Lspsaga diagnostic_jump_prev<cr>', desc = 'Prev Diagnostic' },
|
||||
{ '<leader>ll', '<cmd>Telescope diagnostics layout_strategy=vertical<cr>', desc = 'File Diagnostics' },
|
||||
{ '<leader>lo', '<cmd>Lspsaga outline<cr>', desc = 'Outline' },
|
||||
{ '<leader>lp', '<cmd>Telescope lsp_incoming_calls<cr>', desc = 'Incoming Calls' },
|
||||
{ '<leader>lq', '<cmd>LspStop<cr>', desc = 'Stop LSP' },
|
||||
{ '<leader>lr', '<cmd>Lspsaga rename<cr>', desc = 'Rename' },
|
||||
{ '<leader>ls', '<cmd>Telescope lsp_document_symbols theme=get_ivy<cr>', desc = 'Document Symbols' },
|
||||
{ '<leader>lt', '<cmd>Lspsaga peek_type_definition<cr>', desc = 'Peek Type Definition' },
|
||||
|
||||
{ '<leader>m', group = ' Marks' },
|
||||
{ '<leader>m1', "<cmd>lua require('marks').toggle_bookmark1()<cr>", desc = 'Toggle Bookmark 0' },
|
||||
{ '<leader>m2', "<cmd>lua require('marks').toggle_bookmark2()<cr>", desc = 'Toggle Bookmark 2' },
|
||||
{ '<leader>m3', "<cmd>lua require('marks').toggle_bookmark3()<cr>", desc = 'Toggle Bookmark 3' },
|
||||
{ '<leader>m4', "<cmd>lua require('marks').toggle_bookmark4()<cr>", desc = 'Toggle Bookmark 4' },
|
||||
{ '<leader>mD', "<cmd>lua require('marks').delete_buf()<cr>", desc = 'Delete Buffer' },
|
||||
{ '<leader>mP', "<cmd>lua require('marks').preview()<cr>", desc = 'Preview' },
|
||||
{
|
||||
'<leader>mb',
|
||||
"<cmd>lua require('telescope').extensions.marks_nvim.bookmarks_list_all()<cr>",
|
||||
desc = 'Bookmarks',
|
||||
},
|
||||
{ '<leader>md', "<cmd>lua require('marks').delete_line()<cr>", desc = 'Delete Line' },
|
||||
{ '<leader>mh', "<cmd>lua require('marks').next_bookmark()<cr>", desc = 'Next Bookmark' },
|
||||
{ '<leader>mj', "<cmd>lua require('marks').next()<cr>", desc = 'Next' },
|
||||
{ '<leader>mk', "<cmd>lua require('marks').prev()<cr>", desc = 'Previous' },
|
||||
{ '<leader>ml', "<cmd>lua require('marks').prev_bookmark()<cr>", desc = 'Previous Bookmark' },
|
||||
{ '<leader>mm', '<cmd>Telescope marks<cr>', desc = 'All Marks' },
|
||||
{ '<leader>mn', group = 'Next Bookmark Group' },
|
||||
{ '<leader>mn1', "<cmd>lua require('marks').next_bookmark1()<cr>", desc = 'Next Bookmark 1' },
|
||||
{ '<leader>mn2', "<cmd>lua require('marks').next_bookmark2()<cr>", desc = 'Next Bookmark 2' },
|
||||
{ '<leader>mn3', "<cmd>lua require('marks').next_bookmark3()<cr>", desc = 'Next Bookmark 3' },
|
||||
{ '<leader>mn4', "<cmd>lua require('marks').next_bookmark4()<cr>", desc = 'Next Bookmark 4' },
|
||||
{ '<leader>mp', group = 'Previous Bookmark Group' },
|
||||
{ '<leader>mp1', "<cmd>lua require('marks').prev_bookmark1()<cr>", desc = 'Previous Bookmark 1' },
|
||||
{ '<leader>mp2', "<cmd>lua require('marks').prev_bookmark2()<cr>", desc = 'Previous Bookmark 2' },
|
||||
{ '<leader>mp3', "<cmd>lua require('marks').prev_bookmark3()<cr>", desc = 'Previous Bookmark 3' },
|
||||
{ '<leader>mp4', "<cmd>lua require('marks').prev_bookmark4()<cr>", desc = 'Previous Bookmark 4' },
|
||||
{ '<leader>ms', "<cmd>lua require('marks').set_next()<cr>", desc = 'Set Next' },
|
||||
{ '<leader>mt', "<cmd>lua require('marks').toggle()<cr>", desc = 'Toggle' },
|
||||
{ '<leader>mx', "<cmd>lua require('marks').delete_bookmark()<cr>", desc = 'Delete Bookmark' },
|
||||
|
||||
{ '<leader>o', group = ' Options' },
|
||||
{ '<leader>oc', '<cmd>Telescope colorscheme<cr>', desc = 'Colorscheme' },
|
||||
{ '<leader>oh', '<cmd>Telescope highlights<cr>', desc = 'Highlight Colors' },
|
||||
{ '<leader>on', '<cmd>set relativenumber!<cr>', desc = 'Relative Numbers' },
|
||||
{ '<leader>oo', '<cmd>Telescope vim_options<cr>', desc = 'All Options' },
|
||||
|
||||
{ '<leader>p', group = ' Packages' },
|
||||
{ '<leader>pc', '<cmd>Lazy check<cr>', desc = 'Check' },
|
||||
{ '<leader>pd', '<cmd>Lazy debug<cr>', desc = 'Debug' },
|
||||
{ '<leader>pe', '<cmd>lua require("snacks").profiler.scratch()<cr>', desc = 'Profiler Scratch' },
|
||||
{ '<leader>pf', '<cmd>lua require("snacks").profiler.pick()<cr>', desc = 'Profiler Pick' },
|
||||
{ '<leader>pi', '<cmd>Lazy install<cr>', desc = 'Install' },
|
||||
{ '<leader>pl', '<cmd>Lazy log<cr>', desc = 'Log' },
|
||||
{ '<leader>pm', '<cmd>Mason<cr>', desc = 'Mason' },
|
||||
{ '<leader>pp', '<cmd>Lazy<cr>', desc = 'Plugins' },
|
||||
{ '<leader>pP', '<cmd>Lazy profile<cr>', desc = 'Profile' },
|
||||
{ '<leader>pr', '<cmd>Lazy restore<cr>', desc = 'Restore' },
|
||||
{ '<leader>ps', '<cmd>Lazy sync<cr>', desc = 'Sync' },
|
||||
{ '<leader>pt', '<cmd>lua require("snacks").profiler.toggle()<cr>', desc = 'Profiler Toggle' },
|
||||
{ '<leader>pu', '<cmd>Lazy update<cr>', desc = 'Update' },
|
||||
{ '<leader>px', '<cmd>Lazy clean<cr>', desc = 'Clean' },
|
||||
|
||||
{ '<leader>q', group = ' Quit' },
|
||||
{ '<leader>qa', '<cmd>qall<cr>', desc = 'Quit All' },
|
||||
{ '<leader>qc', '<cmd>bw<cr>', desc = 'Close Buffer' },
|
||||
{ '<leader>qd', '<cmd>lua require("snacks").bufdelete()<cr>', desc = 'Delete Buffer' },
|
||||
{ '<leader>qf', '<cmd>qall!<cr>', desc = 'Force Quit' },
|
||||
{ '<leader>qo', ':%bdelete|b#|bdelete#<cr>', desc = 'Close Others' },
|
||||
{ '<leader>qq', '<cmd>q<cr>', desc = 'Quit' },
|
||||
{ '<leader>qs', '<C-w>c', desc = 'Close Split' },
|
||||
{ '<leader>qw', '<cmd>wq<cr>', desc = 'Write and Quit' },
|
||||
|
||||
{ '<leader>r', group = ' Refactor' },
|
||||
{
|
||||
'<leader>rR',
|
||||
"<Esc><cmd>lua require('telescope').extensions.refactoring.refactors()<CR>",
|
||||
desc = 'Refactor Commands',
|
||||
},
|
||||
{ '<leader>rS', "<cmd>lua require('spectre').open()<cr>", desc = 'Replace' },
|
||||
{ '<leader>rb', "<cmd>lua require('spectre').open_file_search()<cr>", desc = 'Replace Buffer' },
|
||||
{ '<leader>rd', '', desc = 'Go To Definition' },
|
||||
{ '<leader>re', "<cmd>lua require('refactoring').refactor('Extract Block')<CR>", desc = 'Extract Block' },
|
||||
{
|
||||
'<leader>rf',
|
||||
"<cmd>lua require('refactoring').refactor('Extract Block To File')<CR>",
|
||||
desc = 'Extract To File',
|
||||
},
|
||||
{ '<leader>rh', '', desc = 'List Definition Head' },
|
||||
{ '<leader>ri', "<cmd>lua require('refactoring').refactor('Inline Variable')<CR>", desc = 'Inline Variable' },
|
||||
{ '<leader>rj', '', desc = 'Next Usage' },
|
||||
{ '<leader>rk', '', desc = 'Previous Usage' },
|
||||
{ '<leader>rl', '', desc = 'List Definition' },
|
||||
{ '<leader>rn', '', desc = 'Swap Next' },
|
||||
{ '<leader>rp', '', desc = 'Swap Previous' },
|
||||
{ '<leader>rr', '', desc = 'Smart Rename' },
|
||||
{ '<leader>rs', ':%s/\\<<C-r><C-w>\\>/<C-r><C-w>/gI<Left><Left><Left>', desc = 'Replace Word' },
|
||||
{ '<leader>rv', "<cmd>lua require('refactoring').refactor('Extract Variable')<CR>", desc = 'Extract Variable' },
|
||||
{ '<leader>rw', "<cmd>lua require('spectre').open_visual({select_word=true})<cr>", desc = 'Replace Word' },
|
||||
|
||||
{ '<leader>s', group = ' Split' },
|
||||
{ '<leader>s+', '<cmd>resize +10<cr>', desc = 'Increase window height' },
|
||||
{ '<leader>s-', '<cmd>vertical resize -20<cr>', desc = 'Decrease window width' },
|
||||
{ '<leader>s/', '<C-w>s', desc = 'Split Below' },
|
||||
{ '<leader>s=', '<cmd>vertical resize +20<cr>', desc = 'Increase window width' },
|
||||
{ '<leader>sH', '<cmd>vertical resize -10<cr>', desc = 'Decrease window width' },
|
||||
{ '<leader>sJ', '<cmd>resize -5<cr>', desc = 'Decrease window height' },
|
||||
{ '<leader>sK', '<cmd>resize +5<cr>', desc = 'Increase window height' },
|
||||
{ '<leader>sL', '<cmd>vertical resize +10<cr>', desc = 'Increase window width' },
|
||||
{ '<leader>s\\', '<C-w>v', desc = 'Split Right' },
|
||||
{ '<leader>s_', '<cmd>resize -10<cr>', desc = 'Decrease window height' },
|
||||
{ '<leader>s`', '<C-w>p', desc = 'Previous Window' },
|
||||
{ '<leader>sa', '<cmd>split<cr>', desc = 'Horizontal Split' },
|
||||
{ '<leader>sc', '<cmd>tabclose<cr>', desc = 'Close Tab' },
|
||||
{ '<leader>sf', '<cmd>tabfirst<cr>', desc = 'First Tab' },
|
||||
{ '<leader>sh', '<C-w>h', desc = 'Move Left' },
|
||||
{ '<leader>sj', '<C-w>j', desc = 'Move Down' },
|
||||
{ '<leader>sk', '<C-w>k', desc = 'Move Up' },
|
||||
{ '<leader>sl', '<C-w>l', desc = 'Move Right' },
|
||||
{ '<leader>sp', '<cmd>NavigatorPrevious<cr>', desc = 'Previous Pane' },
|
||||
{ '<leader>sq', '<C-w>c', desc = 'Close Split' },
|
||||
{ '<leader>ss', '<cmd>vsplit<cr>', desc = 'Vertical Split' },
|
||||
|
||||
{ '<leader>t', group = ' Terminal' },
|
||||
{ '<leader>t1', '<cmd>1ToggleTerm<cr>', desc = 'Toggle Terminal' },
|
||||
{ '<leader>t2', '<cmd>2ToggleTerm<cr>', desc = 'Toggle Terminal' },
|
||||
{ '<leader>th', '<cmd>Sterm<cr>', desc = 'Horizontal Terminal' },
|
||||
{ '<leader>tv', '<cmd>Vterm<cr>', desc = 'Vertical Terminal' },
|
||||
{ '<leader>tc', '<Cmd>close<CR>', desc = 'Hide Terminal' },
|
||||
|
||||
{ '<leader>u', group = ' Test' },
|
||||
{ '<leader>uc', '<cmd>lua require("neotest").run.run()<cr>', desc = 'Run Current Test' },
|
||||
{ '<leader>uf', '<cmd>lua require("neotest").run.run(vim.fn.expand("%"))<cr>', desc = 'Run Test File' },
|
||||
{ '<leader>uo', '<cmd>Neotest output-panel<cr>', desc = 'Test Output' },
|
||||
{ '<leader>us', '<cmd>Neotest summary<cr>', desc = 'Test Summary' },
|
||||
|
||||
{ '<leader>v', group = ' Select' },
|
||||
{ '<leader>vB', 'vab', desc = 'Around Bracket' },
|
||||
{ '<leader>vP', 'vap', desc = 'Around Para' },
|
||||
{ '<leader>vQ', 'vaq', desc = 'Around Quote' },
|
||||
{ '<leader>vb', 'vib', desc = 'Bracket' },
|
||||
{ '<leader>vp', 'vip', desc = 'Paragraph' },
|
||||
{ '<leader>vq', 'viq', desc = 'Quote' },
|
||||
|
||||
{ '<leader>w', group = ' Writing' },
|
||||
{ '<leader>wc', '<cmd>set spell!<cr>', desc = 'Spellcheck' },
|
||||
{ '<leader>wd', '<cmd>lua require("snacks").dim.enable()<cr>', desc = 'Dim On' },
|
||||
{ '<leader>wD', '<cmd>lua require("snacks").dim.disable()<cr>', desc = 'Dim Off' },
|
||||
{ '<leader>wf', "<cmd>lua require'utils'.sudo_write()<cr>", desc = 'Force Write' },
|
||||
{ '<leader>wj', ']s', desc = 'Next Misspell' },
|
||||
{ '<leader>wk', '[s', desc = 'Prev Misspell' },
|
||||
{ '<leader>wn', '<cmd>WriteNoFormat<cr>', desc = 'Write Without Formatting' },
|
||||
{ '<leader>wq', '<cmd>wq<cr>', desc = 'Write and Quit' },
|
||||
{ '<leader>wr', '<cmd>%d+<cr>', desc = 'Remove All Text' },
|
||||
{ '<leader>ws', '<cmd>Telescope spell_suggest<cr>', desc = 'Suggestions' },
|
||||
{ '<leader>ww', '<cmd>w<cr>', desc = 'Write and Quit' },
|
||||
{ '<leader>wz', '<cmd>lua require("snacks").zen.zen()<cr>', desc = 'Zen' },
|
||||
{ '<leader>wZ', '<cmd>lua require("snacks").zen.zoom()<cr>', desc = 'Zoom' },
|
||||
{ '<leader>x', '<cmd>x<cr>', desc = ' Save and Quit' },
|
||||
|
||||
{ '<leader>y', group = ' Yank' },
|
||||
{ '<leader>yL', '<cmd>CopyAbsolutePathWithLine<cr>', desc = 'Absolute Path with Line' },
|
||||
{ '<leader>yP', '<cmd>CopyAbsolutePath<cr>', desc = 'Absolute Path' },
|
||||
{ '<leader>ya', '<cmd>%y+<cr>', desc = 'Copy Whole File' },
|
||||
{ '<leader>yf', '<cmd>CopyFileName<cr>', desc = 'File Name' },
|
||||
{ '<leader>yg', '<cmd>lua require"gitlinker".get_buf_range_url()<cr>', desc = 'Copy Git URL' },
|
||||
{ '<leader>yl', '<cmd>CopyRelativePathWithLine<cr>', desc = 'Relative Path with Line' },
|
||||
{ '<leader>yp', '<cmd>CopyRelativePath<cr>', desc = 'Relative Path' },
|
||||
}
|
||||
|
||||
-- Jump to file mappings
|
||||
for i = 1, 9 do
|
||||
table.insert(normal_mappings, {
|
||||
string.format('<leader>f%d', i),
|
||||
string.format('<cmd>LualineBuffersJump%d<cr>', i),
|
||||
desc = string.format('File %d', i),
|
||||
})
|
||||
end
|
||||
|
||||
local visual_mappings = {
|
||||
mode = 'v',
|
||||
{ '<leader>a', group = ' AI' },
|
||||
{ '<leader>aF', '<cmd>CopilotChatFixDiagnostic<cr>', desc = 'Fix Diagnostic' },
|
||||
{ '<leader>aG', '<cmd>CopilotChatCommitStaged<cr>', desc = 'Commit Staged' },
|
||||
{ '<leader>ac', '<cmd>CopilotChatToggle<cr>', desc = 'Copilot Chat' },
|
||||
{ '<leader>ad', '<cmd>CopilotChatDocs<cr>', desc = 'Docs' },
|
||||
{ '<leader>ae', '<cmd>CopilotChatExplain<cr>', desc = 'Explain' },
|
||||
{ '<leader>af', '<cmd>CopilotChatFix<cr>', desc = 'Fix' },
|
||||
{ '<leader>ag', '<cmd>CopilotChatCommit<cr>', desc = 'Commit' },
|
||||
{ '<leader>ao', '<cmd>CopilotChatOptimize<cr>', desc = 'Optimize' },
|
||||
{ '<leader>ar', '<cmd>CopilotChatReview<cr>', desc = 'Review' },
|
||||
{ '<leader>at', '<cmd>CopilotChatTests<cr>', desc = 'Tests' },
|
||||
|
||||
{ '<leader>c', group = ' Code' },
|
||||
{ '<leader>ce', "<esc><cmd>'<,'>SnipRun<cr>", desc = 'Execute Selection' },
|
||||
{ '<leader>cS', ':sort!<cr>', desc = 'Sort Desc' },
|
||||
{ '<leader>ci', ':sort i<cr>', desc = 'Sort Case Insensitive' },
|
||||
{ '<leader>cs', ':sort<cr>', desc = 'Sort Asc' },
|
||||
{ '<leader>cu', ':!uniq<cr>', desc = 'Unique' },
|
||||
{ '<leader>cx', ':lua<cr>', desc = 'Execute Lua' },
|
||||
|
||||
{ '<leader>C', group = ' Comment' },
|
||||
{ '<leader>Cb', '<cmd>CBccbox<CR>', desc = 'Comment Box' },
|
||||
{ '<leader>Ct', '<cmd>CBllline<CR>', desc = 'Tiled line' },
|
||||
{ '<leader>Cl', '<cmd>CBline<CR>', desc = 'Line' },
|
||||
{ '<leader>Cm', '<cmd>CBllbox14<CR>', desc = 'Marked' },
|
||||
{ '<leader>Cc', '<cmd>CBcatalog<CR>', desc = 'Catalog' },
|
||||
{ '<leader>Cd', '<cmd>CBd<CR>', desc = 'Delete Comment Style' },
|
||||
|
||||
{ '<leader>g', group = ' Git' },
|
||||
{ '<leader>ga', ":'<,'>Gitsigns stage_hunk<cr>", desc = 'Stage Hunk' },
|
||||
{ '<leader>gr', ":'<,'>Gitsigns reset_hunk<cr>", desc = 'Reset Hunk' },
|
||||
{ '<leader>gu', ":'<,'>Gitsigns undo_stage_hunk<cr>", desc = 'Undo Stage Hunk' },
|
||||
|
||||
{ '<leader>j', group = ' Jump' },
|
||||
{
|
||||
'<leader>jN',
|
||||
"<cmd>lua require('flash').jump({search = { forward = false, wrap = false, multi_window = false },})<cr>",
|
||||
desc = 'Search Backward',
|
||||
},
|
||||
{ '<leader>jd', '<cmd>FlashDiagnostics<cr>', desc = 'Diagnostics' },
|
||||
{ '<leader>jj', "<cmd>lua require('flash').remote()<cr>", desc = 'Remote' },
|
||||
{ '<leader>jk', "<cmd>lua require('flash').treesitter()<cr>", desc = 'Treesitter' },
|
||||
{
|
||||
'<leader>jn',
|
||||
"<cmd>lua require('flash').jump({search = { forward = true, wrap = false, multi_window = false },})<cr>",
|
||||
desc = 'Search Forward',
|
||||
},
|
||||
{ '<leader>jp', "<cmd>lua require('flash').jump({continue = true})<cr>", desc = 'Previous Jump' },
|
||||
{ '<leader>js', "<cmd>lua require('flash').jump()<cr>", desc = 'Search' },
|
||||
{ '<leader>jt', "<cmd>lua require('flash').treesitter_search()<cr>", desc = 'Remote Treesitter' },
|
||||
{
|
||||
'<leader>jw',
|
||||
'<cmd>lua require("flash").jump({ pattern = vim.fn.expand("<cword>")})<cr>',
|
||||
desc = 'Current Word',
|
||||
},
|
||||
|
||||
{ '<leader>l', group = ' LSP' },
|
||||
{ '<leader>la', desc = '<cmd><C-U>Lspsaga range_code_action<CR>' },
|
||||
|
||||
{ '<leader>p', group = ' ScreenShot' },
|
||||
{ '<leader>py', '<cmd>CodeSnap<cr>', mode = 'x', desc = 'Save selected code snapshot into clipboard' },
|
||||
{ '<leader>ps', '<cmd>CodeSnapSave<cr>', mode = 'x', desc = 'Save selected code snapshot in ~/Pictures' },
|
||||
{
|
||||
'<leader>ph',
|
||||
'<cmd>CodeSnapHighlight<cr>',
|
||||
mode = 'x',
|
||||
desc = 'Highlight and snapshot selected code into clipboard',
|
||||
},
|
||||
{ '<leader>pi', '<cmd>CodeSnapASCII<cr>', mode = 'x', desc = 'Save ASCII code snapshot into clipboard' },
|
||||
|
||||
{ '<leader>r', group = ' Refactor' },
|
||||
{
|
||||
'<leader>re',
|
||||
"<esc><cmd>lua require('refactoring').refactor('Extract Function')<CR>",
|
||||
desc = 'Extract Function',
|
||||
},
|
||||
{
|
||||
'<leader>rf',
|
||||
"<esc><cmd>lua require('refactoring').refactor('Extract Function To File')<CR>",
|
||||
desc = 'Extract To File',
|
||||
},
|
||||
{ '<leader>ri', "<esc><cmd>lua require('refactoring').refactor('Inline Variable')<CR>", desc = 'Inline Variable' },
|
||||
{
|
||||
'<leader>rr',
|
||||
"<Esc><cmd>lua require('telescope').extensions.refactoring.refactors()<CR>",
|
||||
desc = 'Refactor Commands',
|
||||
},
|
||||
{
|
||||
'<leader>rv',
|
||||
"<esc><cmd>lua require('refactoring').refactor('Extract Variable')<CR>",
|
||||
desc = 'Extract Variable',
|
||||
},
|
||||
|
||||
{ '<leader>y', group = ' Yank' },
|
||||
{ '<leader>yg', '<cmd>lua require"gitlinker".get_buf_range_url("v")<cr>', desc = 'Copy Git URL' },
|
||||
}
|
||||
|
||||
local no_leader_mappings = {
|
||||
mode = 'n',
|
||||
{ '<C-Down>', '<cmd>resize -10<cr>', desc = 'Decrease window height' },
|
||||
{ '<C-Left>', '<cmd>vertical resize -10<cr>', desc = 'Decrease window width' },
|
||||
{ '<C-Right>', '<cmd>vertical resize +10<cr>', desc = 'Increase window width' },
|
||||
{ '<C-Up>', '<cmd>resize +10<cr>', desc = 'Increase window height' },
|
||||
{ '<C-f>', '<cmd>Telescope find_files<cr>', desc = 'Find Files' },
|
||||
{ '<C-g>', '<cmd>Fterm lazygit<cr>', desc = 'Lazygit' },
|
||||
|
||||
{ '<C-h>', '<C-w>h', desc = 'Move Left' },
|
||||
{ '<C-j>', '<C-w>j', desc = 'Move Down' },
|
||||
{ '<C-k>', '<C-w>k', desc = 'Move Up' },
|
||||
{ '<C-l>', '<C-w>l', desc = 'Move Right' },
|
||||
{ '<C-\\>', '<C-w>p', desc = 'Previous Pane' },
|
||||
|
||||
{ '<S-tab>', '<cmd>bprevious<cr>', desc = 'Previous Buffer' },
|
||||
{ '<tab>', '<cmd>bnext<cr>', desc = 'Next Buffer' },
|
||||
|
||||
{ 'K', '<cmd>Lspsaga hover_doc<cr>', desc = 'LSP Hover' },
|
||||
{ 'Q', '<cmd>qall!<cr>', desc = 'Force Quit!' },
|
||||
{ 'U', '<cmd>redo<cr>', desc = 'Redo' },
|
||||
|
||||
{ '[', group = ' Previous' },
|
||||
{ '[B', '<cmd>bfirst<cr>', desc = 'First Buffer' },
|
||||
{ '[b', '<cmd>bprevious<cr>', desc = 'Buffer' },
|
||||
{ '[d', '<cmd>Lspsaga diagnostic_jump_prev<cr>', desc = 'Diagnostic' },
|
||||
{ '[g', '<cmd>Gitsigns prev_hunk<cr>', desc = 'Git Hunk' },
|
||||
{ '[j', '<C-o>', desc = 'Jump' },
|
||||
{ '[q', '<cmd>cprev<cr>', desc = 'Quickfix' },
|
||||
|
||||
{ ']', group = ' Next' },
|
||||
{ ']B', '<cmd>blast<cr>', desc = 'Buffer' },
|
||||
{ ']b', '<cmd>bnext<cr>', desc = 'Buffer' },
|
||||
{ ']d', '<cmd>Lspsaga diagnostic_jump_next<cr>', desc = 'Diagnostic' },
|
||||
{ ']g', '<cmd>Gitsigns next_hunk<cr>', desc = 'Git Hunk' },
|
||||
{ ']j', '<C-i>', desc = 'Jump' },
|
||||
{ ']q', '<cmd>cnext<cr>', desc = 'Quickfix' },
|
||||
}
|
||||
|
||||
local tmux_mappings = {
|
||||
{ '<C-h>', '<cmd>NavigatorLeft<cr>', desc = 'Move Left' },
|
||||
{ '<C-j>', '<cmd>NavigatorDown<cr>', desc = 'Move Down' },
|
||||
{ '<C-k>', '<cmd>NavigatorUp<cr>', desc = 'Move Up' },
|
||||
{ '<C-l>', '<cmd>NavigatorRight<cr>', desc = 'Move Right' },
|
||||
{ '<C-\\>', '<cmd>NavigatorPrevious<cr>', desc = 'Previous Pane' },
|
||||
}
|
||||
|
||||
which_key.setup(setup)
|
||||
which_key.add(normal_mappings)
|
||||
which_key.add(visual_mappings)
|
||||
which_key.add(no_leader_mappings)
|
||||
|
||||
if vim.fn.exists('$TMUX') == 1 then
|
||||
which_key.add(tmux_mappings)
|
||||
end
|
||||
Reference in new issue
Block a user