This commit is contained in:
sankalp committed 2024-08-29 14:25:43 +05:45
1 parent 9604e54bc6
commit cd2fa35a4f
31 files changed
+1745 -1617

No files matched your search

+84
View File
@@ -0,0 +1,84 @@
local cmp = require("cmp")
local luasnip = require("luasnip")
local lspkind = require("lspkind")
require("luasnip/loaders/from_vscode").lazy_load()
cmp.setup({
completion = {
completeopt = "menu,menuone,preview,noselect",
},
window = { -- making ui stuff for completion bordered
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
-- configure lspkind for vs-code like pictograms in completion menu
formatting = {
format = lspkind.cmp_format({
maxwidth = 50,
ellipsis_char = "...",
}),
},
snippet = { -- configure how nvim-cmp interacts with snippet engine
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
mapping = {
["<C-k>"] = cmp.mapping.select_prev_item(), -- previous suggestion
["<C-j>"] = cmp.mapping.select_next_item(), -- next suggestion
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(), -- show completion suggestions
["<C-y>"] = cmp.config.disable,
["<C-c>"] = cmp.mapping({ -- close completion window
i = cmp.mapping.abort(),
c = cmp.mapping.close(),
}),
["<CR>"] = cmp.mapping.confirm({
behavior = cmp.ConfirmBehavior.Replace,
select = false,
}),
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expandable() then
luasnip.expand()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { "i", "s" }),
},
cmp.setup.cmdline(":", {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{ name = "cmdline" },
},
}),
-- cmp.setup.cmdline("/", {
-- mapping = cmp.mapping.preset.cmdline(),
-- sources = {
-- { name = "buffer" },
-- },
-- }),
-- sources for autocompletion
sources = {
{ name = "nvim_lsp" },
{ name = "nvim_lsp_signature_help" }, -- parameter hints
{ name = "luasnip" }, -- snippets
{ name = "buffer" }, -- text within current buffer
{ name = "path" }, -- file system paths
{ name = "codeium" }, -- AI for autocompletion
-- { name = "calc" }, --for maths calculations
},
})
+73
View File
@@ -0,0 +1,73 @@
local dashboard = require('dashboard')
local icons = require('lib.icons')
dashboard.setup({
theme = 'hyper',
disable_move = false,
shortcut_type = 'letter',
change_to_vcs_root = true,
hide = {
statusline = true,
tabline = false,
winbar = false,
},
config = {
week_header = {
enable = true,
append = { '', icons.ui.Circle .. ' Learn, Make, Explore! ' .. icons.ui.Circle },
},
packages = { enable = true },
project = { enable = true, limit = 8 },
mru = { limit = 8 },
shortcut = {
{
desc = icons.ui.Package .. 'Mason',
group = '@property',
action = 'Mason',
key = 'm',
},
{
desc = icons.ui.Sleep .. 'Lazy',
group = '@property',
action = 'Lazy',
key = 'l',
},
{
desc = icons.documents.OpenFolder .. 'Files',
group = 'Label',
action = 'Telescope find_files',
key = 'f',
},
{
desc = icons.ui.Search .. 'Search',
group = 'Label',
action = 'Telescope live_grep',
key = 'g',
},
{
desc = icons.ui.Note .. 'Todo',
group = 'Label',
action = 'Tdo',
key = 'd',
},
{
desc = icons.ui.Power,
group = 'Action',
action = 'quit',
key = 'q',
},
},
footer = { '', icons.ui.Heart .. ' Happiness is a state of mind. ' .. icons.ui.Heart },
},
})
-- Show dashboard when lazy closes
if vim.o.filetype == 'lazy' then
vim.cmd.close()
vim.api.nvim_create_autocmd('User', {
pattern = 'DashboardLoaded',
callback = function()
require('lazy').show()
end,
})
end
+57
View File
@@ -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, {})
+143
View File
@@ -0,0 +1,143 @@
-- Define nvim-lspconfig LSP servers here
local lsp_servers = {
'basedpyright',
'lua_ls',
'tsserver',
'tailwindcss',
'emmet_ls',
'bashls',
'jdtls',
'clangd',
}
local lspconfig = require('lspconfig')
-- import cmp-nvim-lsp plugin
local cmp_nvim_lsp = require('cmp_nvim_lsp')
-- import mason_lspconfig plugin
local mason_lspconfig = require('mason-lspconfig')
local keymap = vim.keymap -- for conciseness
-- vim.api.nvim_create_autocmd('LspAttach', {
-- group = vim.api.nvim_create_augroup('UserLspConfig', {}),
-- callback = function(ev)
-- -- Buffer local mappings.
-- -- See `:help vim.lsp.*` for documentation on any of the below functions
-- local opts = { buffer = ev.buf, silent = true }
--
-- -- set keybinds
-- opts.desc = 'Show LSP references'
-- keymap.set('n', 'lR', '<cmd>Telescope lsp_references<CR>', opts) -- show definition, references
--
-- opts.desc = 'Go to declaration'
-- keymap.set('n', 'lD', vim.lsp.buf.declaration, opts) -- go to declaration
--
-- opts.desc = 'Inlay hint'
-- keymap.set(
-- 'n',
-- '<leader>lh',
-- '<cmd>lua vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())<CR>',
-- opts
-- )
--
-- opts.desc = 'Show LSP definitions'
-- keymap.set('n', 'ld', '<cmd>Telescope lsp_definitions<CR>', opts) -- show lsp definitions
--
-- opts.desc = 'Show LSP implementations'
-- keymap.set('n', 'li', '<cmd>Telescope lsp_implementations<CR>', opts) -- show lsp implementations
--
-- opts.desc = 'Show LSP type definitions'
-- keymap.set('n', 'lt', '<cmd>Telescope lsp_type_definitions<CR>', opts) -- show lsp type definitions
--
-- opts.desc = 'See available code actions'
-- keymap.set({ 'n', 'v' }, '<leader>ca', vim.lsp.buf.code_action, opts) -- see available code actions, in visual mode will apply to selection
--
-- opts.desc = 'Smart rename'
-- keymap.set('n', '<leader>mR', vim.lsp.buf.rename, opts) -- smart rename
--
-- opts.desc = 'Show buffer diagnostics'
-- keymap.set('n', '<leader>lD', '<cmd>Telescope diagnostics bufnr=0<CR>', opts) -- show diagnostics for file
--
-- opts.desc = 'Show line diagnostics'
-- keymap.set('n', '<leader>ld', vim.diagnostic.open_float, opts) -- show diagnostics for line
--
-- opts.desc = 'Show documentation for what is under cursor'
-- keymap.set('n', 'K', vim.lsp.buf.hover, opts) -- show documentation for what is under cursor
--
-- opts.desc = 'Restart LSP'
-- keymap.set('n', '<leader>ls', ':LspRestart<CR>', opts) -- mapping to restart lsp if necessary
-- end,
-- })
-- used to enable autocompletion (assign to every lsp server config)
local capabilities = cmp_nvim_lsp.default_capabilities()
-- Change the Diagnostic symbols in the sign column (gutter)
local signs = { Error = '', Warn = '', Hint = '󰠠 ', Info = '' }
for type, icon in pairs(signs) do
local hl = 'DiagnosticSign' .. type
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = '' })
end
-- Set Mason LSPs Here
mason_lspconfig.setup({
ensure_installed = lsp_servers,
automatic_installation = true,
handlers = {
-- default handler for installed servers
function(server_name)
lspconfig[server_name].setup({
capabilities = capabilities,
})
end,
['lua_ls'] = function()
-- configure lua server (with special settings)
lspconfig['lua_ls'].setup({
capabilities = capabilities,
settings = {
Lua = {
-- make the language server recognize "vim" global
diagnostics = {
globals = { 'vim' },
},
hint = { enable = true },
completion = {
callSnippet = 'Replace',
},
},
},
})
end,
['basedpyright'] = function()
-- configure pyright server (with special settings)
lspconfig['basedpyright'].setup({
capabilities = capabilities,
settings = {
python = {
hint = { enable = true },
},
},
handlers = {
['textDocument/publishDiagnostics'] = function() end,
},
})
end,
['emmet_ls'] = function()
-- configure emmet language server
lspconfig['emmet_ls'].setup({
capabilities = capabilities,
filetypes = {
'html',
'javascript',
'typescript',
'javascriptreact',
'typescriptreact',
'css',
'less',
},
})
end,
},
})
+196
View File
@@ -0,0 +1,196 @@
local lualine = require('lualine')
local icons = require('lib.icons')
local colors = {
bg = '#202328',
fg = '#bbc2cf',
yellow = '#ECBE7B',
cyan = '#008080',
darkblue = '#081633',
green = '#98be65',
orange = '#FF8800',
violet = '#a9a1e1',
magenta = '#c678dd',
blue = '#51afef',
red = '#ec5f67',
}
local mode_color = {
n = colors.green,
i = colors.blue,
v = colors.magenta,
[''] = colors.magenta,
V = colors.magenta,
c = colors.yellow,
t = colors.red,
R = colors.orange,
Rv = colors.orange,
no = colors.fg,
s = colors.violet,
S = colors.violet,
[''] = colors.violet,
ic = colors.yellow,
cv = colors.red,
ce = colors.red,
r = colors.cyan,
rm = colors.cyan,
['r?'] = colors.cyan,
['!'] = colors.red,
}
local conditions = {
buffer_not_empty = function()
return vim.fn.empty(vim.fn.expand('%:t')) ~= 1
end,
buffer_is_file = function()
return vim.bo.buftype == ''
end,
hide_in_width = function()
return vim.fn.winwidth(0) > 80
end,
check_git_workspace = function()
local filepath = vim.fn.expand('%:p:h')
local gitdir = vim.fn.finddir('.git', filepath .. ';')
return gitdir and #gitdir > 0 and #gitdir < #filepath
end,
}
local searchcount = { 'searchcount', color = { fg = colors.fg, gui = 'bold' } }
local selectioncount = { 'selectioncount', color = { fg = colors.fg, gui = 'bold' } }
local progress = { 'progress', color = { fg = colors.fg, gui = 'bold' } }
local filetype = { 'filetype', color = { fg = colors.blue, gui = 'bold' } }
local filesize = { 'filesize', color = { fg = colors.fg, gui = 'bold' }, cond = conditions.buffer_not_empty }
local fileformat = { 'fileformat', icons_enabled = true, color = { fg = colors.white, gui = 'bold' } }
local filename = {
'filename',
cond = conditions.buffer_not_empty and conditions.buffer_is_file,
color = { fg = colors.magenta, gui = 'bold' },
}
local buffers = {
'buffers',
filetype_names = {
TelescopePrompt = icons.ui.Telescope .. 'Telescope',
dashboard = icons.ui.Dashboard .. 'Dashboard',
lazy = icons.ui.Sleep .. 'Lazy',
mason = icons.ui.Package .. 'Mason',
NvimTree = icons.documents.OpenFolder .. 'Files',
spectre_panel = icons.ui.Search .. 'Spectre',
},
use_mode_colors = true,
}
local branch = {
'branch',
icon = icons.git.Branch,
fmt = function(str)
return str:sub(1, 32)
end,
color = { fg = colors.green, gui = 'bold' },
}
local diff_icons = {
'diff',
symbols = { added = icons.git.AddAlt, modified = icons.git.DiffAlt, removed = icons.git.RemoveAlt },
diff_color = {
added = { fg = colors.green },
modified = { fg = colors.orange },
removed = { fg = colors.red },
},
cond = conditions.hide_in_width,
}
local diagnostics = {
'diagnostics',
sources = { 'nvim_lsp', 'nvim_diagnostic', 'nvim_workspace_diagnostic' },
symbols = {
error = icons.diagnostics.Error,
warn = icons.diagnostics.Warning,
info = icons.diagnostics.Information,
hint = icons.diagnostics.Hint,
},
diagnostics_color = {
color_error = { fg = colors.red },
color_warn = { fg = colors.yellow },
color_info = { fg = colors.blue },
color_hint = { fg = colors.yellow },
},
}
local lsp = {
function()
local msg = 'No LSP'
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
local clients = vim.lsp.get_active_clients()
if next(clients) == nil then
return msg
end
for _, client in ipairs(clients) do
local filetypes = client.config.filetypes
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
return client.name
end
end
return msg
end,
icon = icons.ui.Gear,
color = { fg = colors.fg, gui = 'bold' },
}
local encoding = {
'o:encoding',
fmt = string.upper,
cond = conditions.hide_in_width,
color = { fg = colors.green, gui = 'bold' },
}
local separator = {
function()
return icons.ui.Separator
end,
color = function()
return { fg = mode_color[vim.fn.mode()] }
end,
padding = { left = 0, right = 0 },
}
local function mode(icon)
icon = icon or icons.ui.Neovim
return {
function()
return icon
end,
color = function()
return { fg = mode_color[vim.fn.mode()] }
end,
padding = { left = 1, right = 0 },
}
end
lualine.setup({
options = {
component_separators = '',
-- section_separators = '',
theme = 'onedark',
disabled_filetypes = {
'dashboard',
},
},
-- extensions = { 'quickfix', 'man', 'mason', 'lazy', 'toggleterm', 'nvim-tree' },
tabline = {
lualine_a = {},
lualine_b = { mode(), buffers },
lualine_c = {},
lualine_x = { diff_icons, branch },
lualine_y = { searchcount, selectioncount },
lualine_z = {},
},
sections = {
lualine_a = {},
lualine_b = {},
lualine_c = { separator, mode(icons.ui.Heart), 'location', progress, filename },
lualine_x = { diagnostics, lsp, filetype, filesize, fileformat, encoding, separator },
lualine_y = {},
lualine_z = {},
},
})
+125
View File
@@ -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,
})
+67
View File
@@ -0,0 +1,67 @@
local telescope = require('telescope')
local fb_actions = require('telescope').extensions.file_browser.actions
telescope.setup({
file_ignore_patterns = { '%.git/.' },
defaults = {
preview = {
treesitter = false,
},
},
extensions = {
fzf = {
fuzzy = true, -- false will only do exact matching
override_generic_sorter = true, -- override the generic sorter
override_file_sorter = true, -- override the file sorter
case_mode = 'smart_case', -- or "ignore_case" or "respect_case"
},
file_browser = {
theme = 'ivy',
hijack_netrw = true,
mapping = {
['i'] = {
['<A-c>'] = fb_actions.create,
['<A-r>'] = fb_actions.rename,
['<A-d>'] = fb_actions.remove,
['<A-h>'] = fb_actions.toggle_hidden,
},
['n'] = {
['<A-c>'] = fb_actions.create,
['<A-r'] = fb_actions.rename,
['<A-d'] = fb_actions.remove,
['<A-h'] = fb_actions.toggle_hidden,
},
},
},
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,
},
mapping = {
i = {
['<S-cr>'] = require('telescope-undo.actions').yank_additions,
['<C-cr>'] = require('telescope-undo.actions').yank_deletions,
['<cr>'] = require('telescope-undo.actions').restore,
},
},
},
},
borderchars = {
prompt = { '─', '│', '─', '│', '╭', '╮', '╯', '╰' },
results = { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' },
},
})
telescope.load_extension('ui-select')
telescope.load_extension('file_browser')
-- telescope.load_extension("refactoring")
telescope.load_extension('notify')
telescope.load_extension('undo')
+23
View File
@@ -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',
},
},
})
+508
View File
@@ -0,0 +1,508 @@
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 n_mappings = {
mode = 'n',
{ '<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>cf', group = 'Formate 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>Telescope notify<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>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>du', '<cmd>DBUIToggle<cr>', desc = 'Toggle DB UI' },
{ '<leader>db', '<cmd>DBUIFindBuffer<cr>', desc = 'DB Find buffer' },
{ '<leader>dr', '<cmd>DBUIRenameBuffer<cr>', desc = 'DB Rename buffer' },
{ '<leader>dl', '<cmd>DBUILastQueryInfo<cr>', desc = 'DB Last query' },
{ '<leader>e', group = ' Edit' },
{ '<leader>ea', '<cmd>b#<cr>', desc = 'Alternate File' },
{ '<leader>ec', '<cmd>e $MYVIMRC<cr>', desc = 'Config' },
{
'<leader>ed',
'<cmd>lua require("telescope.builtin").find_files({cwd = vim.fn.stdpath("config")})<cr>',
desc = 'Config Dir',
},
{ '<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>em', '<cmd>e README.md<cr>', desc = 'Readme' },
{ '<leader>en', '<cmd>new<cr>', desc = 'New File' },
{ '<leader>f', group = ' Find' },
{ '<leader>ff', '<cmd>Telescope find_files<cr>', desc = 'Find Files (CWD)' },
{ '<leader>fg', '<cmd>Telescope live_grep<cr>', desc = 'Live Grep' },
{ '<leader>fb', '<cmd>Telescope buffers<cr>', desc = 'Buffers' },
{ '<leader>fh', '<cmd>Telescope help_tags<cr>', desc = 'Find Help' },
{ '<leader>fo', '<cmd>Telescope oldfiles<cr>', desc = 'Old Recent Files' },
{ '<leader>fm', '<cmd>Telescope marks<cr>', desc = 'Marks' },
{ '<leader>fH', '<cmd>Telescope highlights<cr>', desc = 'Find Highlight Groups' },
{ '<leader>fG', '<cmd>Telescope grep_string<cr>', desc = 'Grep String' },
{ '<leader>kk', '<cmd>Telescope keymaps<cr>', desc = 'Keymaps' },
{ '<leader>kc', '<cmd>Telescope commands<cr>', desc = 'Commands' },
{ '<leader>kh', '<cmd>Telescope command_history<cr>', desc = 'Command History' },
{ '<leader>ks', '<cmd>Telescope search_history<cr>', desc = 'Search History' },
{ '<leader>fd', '<cmd>Telescope diagnostics<cr>', desc = 'Diagnostics' },
{ '<leader>fu', '<cmd>Telescope undo<cr>', desc = 'Undo History' },
{ '<leader>fb', '<cmd>Telescope buffers<cr>', desc = 'Buffers' },
{ '<leader>fq', '<cmd>Telescope quickfix<cr>', desc = 'Quickfix' },
{ '<leader>fs', '<cmd>Telescope current_buffer_fuzzy_find<cr>', desc = 'Fuzzy Find in File' },
{ '<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>ie', '<cmd>Telescope symbols<cr>', desc = 'Emojis' },
{ '<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>kt', '<cmd>Screenkey<CR>', desc = 'Toggle keys' },
{ '<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 = ' Misc' },
{
'<leader>ms',
function()
require('persistence').load()
end,
desc = 'Restore Session',
},
{
'<leader>ml',
function()
require('persistence').load({ last = true })
end,
desc = 'Restore Last Session',
},
{
'<leader>md',
function()
require('persistence').stop()
end,
desc = "Don't Save Current Session",
},
{ '<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>q', group = ' Quit' },
{ '<leader>qa', '<cmd>qall<cr>', desc = 'Quit All' },
{ '<leader>qc', '<cmd>bw<cr>', desc = 'Close Buffer' },
{ '<leader>qd', '<cmd>bdelete<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>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>lua require("neotest").output.open({ enter = true, auto_close = true })<cr>',
desc = 'Show Output',
},
{ '<leader>uS', '<cmd>lua require("neotest").summary.toggle<cr>', desc = 'Toggle Summary' },
{ '<leader>ur', '<cmd>lua require("neotest").run.run()', desc = 'Run Nearest Test' },
{ '<leader>us', '<cmd>lua require("neotest").run.stop()<cr>', desc = 'Stop' },
{ '<leader>uO', '<cmd>lua require("neotest").output_panel.toggle<cr>', desc = 'Toggle Output Panel' },
{ '<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>wF', ':SudaWrite<CR>', desc = 'Suda Write' },
{ '<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>wq', '<cmd>wq<cr>', desc = 'Write and Quit' },
{ '<leader>ws', '<cmd>Telescope spell_suggest<cr>', desc = 'Suggestions' },
{ '<leader>wt', '<cmd>Twilight<cr>', desc = 'Twilight' },
{ '<leader>ww', '<cmd>w<cr>', desc = 'Write and Quit' },
{ '<leader>wz', '<cmd>ZenMode<cr>', desc = 'ZenMode' },
{ '<leader>x', '<cmd>x<cr>', desc = ' Save and Quit' },
{ '<leader>x', group = '󰁨 Diagnostics/Quickfix' },
{ '<leader>xx', '<cmd>Trouble diagnostics toggle<cr>', desc = 'Diagnostics (Trouble)' },
{ '<leader>xX', '<cmd>Trouble diagnostics toggle filter.buf=0<cr>', desc = 'Buffer Diagnostics (Trouble)' },
{ '<leader>xs', '<cmd>Trouble symbols toggle<cr>', desc = 'Symbols (Trouble)' },
{ '<leader>xS', '<cmd>Trouble lsp toggle<cr>', desc = 'LSP references/definitions/... (Trouble)' },
{ '<leader>xL', '<cmd>Trouble loclist toggle<cr>', desc = 'Location List (Trouble)' },
{ '<leader>xQ', '<cmd>Trouble qflist toggle<cr>', desc = 'Quickfix List (Trouble)' },
{ '<leader>y', group = ' Yank' },
{
'<leader>yp',
function()
require('telescope').extensions.yank_history.yank_history({})
end,
desc = 'Open Yank History',
},
{ '<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>yp', '<cmd>CopyRelativePath<cr>', desc = 'Relative Path' },
}
local v_mappings = {
mode = 'v',
{ '<leader>c', group = ' Code' },
{ '<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', "<esc><cmd>'<,'>SnipRun<cr>", desc = 'Run Code' },
{ '<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>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>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 +10which_key.add(no_leader_mappings)<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' },
{ '<S-h>', '<cmd>bprevious<cr>', desc = 'Previous Buffer' },
{ '<S-l>', '<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' },
{ '[e', 'g;', desc = 'Edit' },
{ '[g', '<cmd>Gitsigns prev_hunk<cr>', desc = 'Git Hunk' },
{ '[j', '<C-o>', desc = 'Jump' },
{ ']', group = ' Next' },
{ ']B', '<cmd>blast<cr>', desc = 'Buffer' },
{ ']b', '<cmd>bnext<cr>', desc = 'Buffer' },
{ ']d', '<cmd>Lspsaga diagnostic_jump_next<cr>', desc = 'Diagnostic' },
{ ']e', 'g,', desc = 'Edit' },
{ ']g', '<cmd>Gitsigns next_hunk<cr>', desc = 'Git Hunk' },
{ ']j', '<C-i>', desc = 'Jump' },
{ '<C-n>', '<Plug>(YankyCycleForward)' },
{ '<C-p>', '<Plug>(YankyCycleBackward)' },
{ 'y', '<Plug>(YankyYank)', mode = { 'n', 'x' }, desc = 'Yank text' },
{ 'p', '<Plug>(YankyPutAfter)', mode = { 'n', 'x' }, desc = 'Put yanked text after cursor' },
{ 'P', '<Plug>(YankyPutBefore)', mode = { 'n', 'x' }, desc = 'Put yanked text before cursor' },
{ 'gp', '<Plug>(YankyGPutAfter)', mode = { 'n', 'x' }, desc = 'Put yanked text after selection' },
{ 'gP', '<Plug>(YankyGPutBefore)', mode = { 'n', 'x' }, desc = 'Put yanked text before selection' },
{
'<C-S-Down>',
':call vm#commands#add_cursor_down(0, v:count1)<cr>',
desc = 'Add Cursor Down',
mode = { 'n' },
noremap = true,
silent = true,
},
{
'<C-S-Up>',
':call vm#commands#add_cursor_up(0, v:count1)<cr>',
desc = 'Add Cursor Up',
mode = { 'n' },
noremap = true,
silent = true,
},
{
'<M-S-j>',
':call vm#commands#add_cursor_down(0, v:count1)<cr>',
desc = 'Add Cursor Down',
mode = { 'n' },
noremap = true,
silent = true,
},
{
'<M-S-k>',
':call vm#commands#add_cursor_up(0, v:count1)<cr>',
desc = 'Add Cursor Down',
mode = { 'n' },
noremap = true,
silent = true,
},
{
'<M-d>',
':call vm#commands#ctrln(v:count1)<cr>',
desc = 'Multi Edit Next',
mode = { 'n' },
noremap = true,
silent = true,
},
}
which_key.setup(setup)
which_key.add(n_mappings)
which_key.add(v_mappings)
which_key.add(no_leader_mappings)
+41
View File
@@ -0,0 +1,41 @@
local twilight = require('twilight')
twilight.setup({
dimming = { alpha = 0.45, color = { 'Normal', '#ffffff' }, inactive = false },
context = 9,
treesitter = true,
expand = { 'function', 'method', 'table', 'if_statement', 'element' },
exclude = {},
})
local zen = require('zen-mode')
zen.setup({
window = {
backdrop = 0.95,
width = 180,
height = 1,
options = {
signcolumn = 'no',
number = false,
relativenumber = false,
cursorline = false,
cursorcolumn = false,
foldcolumn = '0',
list = false,
},
},
plugins = {
options = { enabled = true, ruler = true, showcmd = true },
twilight = { enabled = true },
gitsigns = { enabled = true },
tmux = { enabled = true },
kitty = { enabled = false, font = '+4' },
},
on_open = function(win)
vim.o.laststatus = 0
end,
on_close = function()
vim.o.laststatus = 2
end,
})