.
This commit is contained in:
1 parent
c07c04692d
commit
170ae42bea
99 files changed
-16116
No files matched your search
@@ -1,35 +0,0 @@
|
||||
local ai = require('mini.ai')
|
||||
|
||||
ai.setup({
|
||||
custom_textobjects = {
|
||||
o = ai.gen_spec.treesitter({
|
||||
a = { '@block.outer', '@conditional.outer', '@loop.outer' },
|
||||
i = { '@block.inner', '@conditional.inner', '@loop.inner' },
|
||||
}, {}),
|
||||
f = ai.gen_spec.treesitter({ a = '@function.outer', i = '@function.inner' }, {}),
|
||||
c = ai.gen_spec.treesitter({ a = '@class.outer', i = '@class.inner' }, {}),
|
||||
t = { '<([%p%w]-)%f[^<%w][^<>]->.-</%1>', '^<.->().*()</[^/]->$' },
|
||||
},
|
||||
|
||||
mappings = {
|
||||
-- Main textobject prefixes
|
||||
around = 'a',
|
||||
inside = 'i',
|
||||
|
||||
-- Next/last variants
|
||||
around_next = 'an',
|
||||
inside_next = 'in',
|
||||
around_last = 'al',
|
||||
inside_last = 'il',
|
||||
|
||||
-- Move cursor to corresponding edge of `a` textobject
|
||||
goto_left = 'g[',
|
||||
goto_right = 'g]',
|
||||
},
|
||||
|
||||
-- How to search for object
|
||||
-- 'cover', 'cover_or_next', 'cover_or_prev','cover_or_nearest', 'next', 'previous', 'nearest'.
|
||||
search_method = 'cover_or_next',
|
||||
n_lines = 500,
|
||||
silent = false,
|
||||
})
|
||||
@@ -1,26 +0,0 @@
|
||||
local npairs = require('nvim-autopairs')
|
||||
|
||||
npairs.setup({
|
||||
check_ts = true,
|
||||
ts_config = {
|
||||
lua = { 'string', 'source' },
|
||||
javascript = { 'string', 'template_string' },
|
||||
java = false,
|
||||
},
|
||||
disable_filetype = { 'TelescopePrompt', 'spectre_panel' },
|
||||
fast_wrap = {
|
||||
map = '<M-s>',
|
||||
chars = { '{', '[', '(', '"', "'" },
|
||||
pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], '%s+', ''),
|
||||
offset = 0,
|
||||
end_key = '$',
|
||||
keys = 'qwertyuiopzxcvbnmasdfghjkl',
|
||||
check_comma = true,
|
||||
highlight = 'PmenuSel',
|
||||
highlight_grey = 'LineNr',
|
||||
},
|
||||
})
|
||||
|
||||
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
|
||||
local cmp = require('cmp')
|
||||
cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done({ map_char = { tex = '' } }))
|
||||
@@ -1,246 +0,0 @@
|
||||
local cmp = require('cmp')
|
||||
local luasnip = require('luasnip')
|
||||
|
||||
require('luasnip/loaders/from_vscode').lazy_load()
|
||||
|
||||
local icons = require('lib.icons')
|
||||
local kind_icons = icons.kind
|
||||
|
||||
local max_count = 15
|
||||
local rounded_border = true
|
||||
|
||||
local function border(hl_name)
|
||||
if rounded_border then
|
||||
return {
|
||||
{ "╭", hl_name },
|
||||
{ "─", hl_name },
|
||||
{ "╮", hl_name },
|
||||
{ "│", hl_name },
|
||||
{ "╯", hl_name },
|
||||
{ "─", hl_name },
|
||||
{ "╰", hl_name },
|
||||
{ "│", hl_name },
|
||||
}
|
||||
else
|
||||
return {
|
||||
{ "┌", hl_name },
|
||||
{ "─", hl_name },
|
||||
{ "┐", hl_name },
|
||||
{ "│", hl_name },
|
||||
{ "┘", hl_name },
|
||||
{ "─", hl_name },
|
||||
{ "└", hl_name },
|
||||
{ "│", hl_name },
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
-- פּ ﯟ some other good icons
|
||||
local kind_icons = {
|
||||
Text = "",
|
||||
Method = " '",
|
||||
Function = "",
|
||||
Constructor = "",
|
||||
Field = "",
|
||||
Variable = "",
|
||||
Class = "",
|
||||
Interface = "",
|
||||
Module = "",
|
||||
Property = "",
|
||||
Unit = "",
|
||||
Value = " ",
|
||||
Enum = " ",
|
||||
Keyword = "",
|
||||
Snippet = "",
|
||||
Color = "",
|
||||
File = " ",
|
||||
Reference = "",
|
||||
Folder = "",
|
||||
EnumMember = "",
|
||||
Constant = "",
|
||||
Struct = "",
|
||||
Event = "",
|
||||
Operator = "",
|
||||
TypeParameter = "",
|
||||
}
|
||||
|
||||
cmp.setup({
|
||||
completion = {
|
||||
completeopt = 'menu,menuone,preview,noselect',
|
||||
},
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
|
||||
mapping = {
|
||||
['<C-k>'] = cmp.mapping.select_prev_item(),
|
||||
['<C-j>'] = cmp.mapping.select_next_item(),
|
||||
['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-1), { 'i', 'c' }),
|
||||
['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(1), { 'i', 'c' }),
|
||||
['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
|
||||
['<C-u>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-d>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-y>'] = cmp.config.disable,
|
||||
['<C-c>'] = cmp.mapping({
|
||||
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' }),
|
||||
},
|
||||
formatting = {
|
||||
fields = { 'kind', 'abbr', 'menu' },
|
||||
expandable_indicator = true,
|
||||
format = function(entry, vim_item)
|
||||
-- Kind icons
|
||||
vim_item.kind = kind_icons[vim_item.kind]
|
||||
vim_item.menu = ({
|
||||
codeium = '[Codeium]',
|
||||
nvim_lsp = '[LSP]',
|
||||
luasnip = '[Snippet]',
|
||||
buffer = '[Buffer]',
|
||||
path = '[Path]',
|
||||
})[entry.source.name]
|
||||
return vim_item
|
||||
end,
|
||||
},
|
||||
sources = {
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'path' },
|
||||
{ name = 'nvim_lua' },
|
||||
{ name = 'luasnip', keyword_length = 2 },
|
||||
{ name = 'buffer', keyword_length = 3 },
|
||||
{ name = 'codeium'},
|
||||
{ name = 'lazydev', group_index = 0 },
|
||||
},
|
||||
confirm_opts = {
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
select = false,
|
||||
},
|
||||
window = {
|
||||
documentation = {
|
||||
border = 'rounded',
|
||||
winhighlight = 'NormalFloat:Pmenu,NormalFloat:Pmenu,CursorLine:PmenuSel,Search:None',
|
||||
max_height = 15,
|
||||
scrollbar = false,
|
||||
},
|
||||
completion = {
|
||||
border = 'rounded',
|
||||
winhighlight = 'NormalFloat:Pmenu,NormalFloat:Pmenu,CursorLine:PmenuSel,Search:None',
|
||||
scrollbar = false,
|
||||
},
|
||||
},
|
||||
experimental = {
|
||||
ghost_text = true
|
||||
}
|
||||
})
|
||||
|
||||
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline({'/','?'}, {
|
||||
formatting = {
|
||||
fields = { "kind", "abbr" },
|
||||
format = function(entry, vim_item)
|
||||
-- Kind icons
|
||||
vim_item.kind = string.format("%s", kind_icons[vim_item.kind])
|
||||
vim_item.menu = ({
|
||||
buffer = "(buffer)"
|
||||
})[entry.source.name]
|
||||
return vim_item
|
||||
end,
|
||||
},
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = {
|
||||
{
|
||||
name = 'buffer',
|
||||
option = { max_item_count = max_count }
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline(':', {
|
||||
formatting = {
|
||||
fields = { "kind", "abbr", "menu" },
|
||||
format = function(entry, vim_item)
|
||||
-- Kind icons
|
||||
vim_item.kind = string.format("%s", kind_icons[vim_item.kind])
|
||||
vim_item.menu = ({
|
||||
buffer = "(buffer)",
|
||||
path = "(path)",
|
||||
})[entry.source.name]
|
||||
return vim_item
|
||||
end,
|
||||
},
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = cmp.config.sources({
|
||||
{
|
||||
name = 'path',
|
||||
option = { max_item_count = 10 }
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
name = 'cmdline',
|
||||
option = { max_item_count = 10 }
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
cmp.setup.filetype("lua", {
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'luasnip' }, -- For luasnip users.
|
||||
{ name = 'nvim_lsp' },
|
||||
{
|
||||
name = "nvim_lua",
|
||||
option = { max_item_count = max_count }
|
||||
},
|
||||
{
|
||||
name = 'buffer',
|
||||
option = { keyword_length = 1 }
|
||||
},
|
||||
{ name = "path" },
|
||||
{ name = "orgmode" },
|
||||
}),
|
||||
})
|
||||
|
||||
cmp.setup.filetype("norg", {
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'luasnip' }, -- For luasnip users.
|
||||
{
|
||||
name = 'neorg',
|
||||
option = { max_item_count = max_count }
|
||||
},
|
||||
{ name = 'buffer', },
|
||||
{ name = "path" },
|
||||
})
|
||||
})
|
||||
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
local snippet_path = vim.fn.stdpath("config") .. "/snippets"
|
||||
require("luasnip.loaders.from_snipmate").load({ path = { snippet_path } })
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
require('codeium').setup({
|
||||
|
||||
})
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
local comment = require('mini.comment')
|
||||
|
||||
require('ts_context_commentstring').setup({
|
||||
enable_autocmd = false,
|
||||
-- languages = { typescript = '// %s' },
|
||||
})
|
||||
|
||||
comment.setup({
|
||||
options = {
|
||||
custom_commentstring = function()
|
||||
return require('ts_context_commentstring.internal').calculate_commentstring() or vim.bo.commentstring
|
||||
end,
|
||||
ignore_blank_line = true,
|
||||
start_of_line = false,
|
||||
pad_comment_parts = true,
|
||||
},
|
||||
|
||||
mappings = {
|
||||
-- Toggle comment (like `gcip` - comment inner paragraph) for both
|
||||
comment = 'gc',
|
||||
comment_line = 'gcc',
|
||||
comment_visual = 'gc',
|
||||
-- Define 'comment' textobject (like `dgc` - delete whole comment block)
|
||||
textobject = 'gc',
|
||||
},
|
||||
})
|
||||
@@ -1,152 +0,0 @@
|
||||
local dap = require('dap')
|
||||
local dapui = require('dapui')
|
||||
local icons = require('lib.icons')
|
||||
|
||||
dapui.setup({
|
||||
icons = { expanded = icons.ui.ArrowClosed, collapsed = icons.ui.ArrowOpen },
|
||||
mappings = {
|
||||
expand = { '<CR>', '<2-LeftMouse>' },
|
||||
open = 'o',
|
||||
remove = 'd',
|
||||
edit = 'e',
|
||||
repl = 'r',
|
||||
toggle = 't',
|
||||
},
|
||||
expand_lines = vim.fn.has('nvim-0.7'),
|
||||
layouts = {
|
||||
{
|
||||
elements = {
|
||||
{ id = 'scopes', size = 0.25 },
|
||||
'breakpoints',
|
||||
'stacks',
|
||||
'watches',
|
||||
},
|
||||
size = 40,
|
||||
position = 'right',
|
||||
},
|
||||
{
|
||||
elements = {
|
||||
'repl',
|
||||
'console',
|
||||
},
|
||||
size = 0.25,
|
||||
position = 'bottom',
|
||||
},
|
||||
},
|
||||
floating = {
|
||||
max_height = nil,
|
||||
max_width = nil,
|
||||
border = 'rounded',
|
||||
mappings = {
|
||||
close = { 'q', '<Esc>' },
|
||||
},
|
||||
},
|
||||
windows = { indent = 1 },
|
||||
render = {
|
||||
max_type_length = nil,
|
||||
},
|
||||
})
|
||||
|
||||
vim.fn.sign_define('DapBreakpoint', { text = icons.ui.Bug, texthl = 'DiagnosticSignError', linehl = '', numhl = '' })
|
||||
|
||||
dap.listeners.after.event_initialized['dapui_config'] = function()
|
||||
dapui.open()
|
||||
end
|
||||
dap.listeners.before.event_terminated['dapui_config'] = function()
|
||||
dapui.close()
|
||||
end
|
||||
dap.listeners.before.event_exited['dapui_config'] = function()
|
||||
dapui.close()
|
||||
end
|
||||
|
||||
dap.adapters.python = {
|
||||
type = 'executable',
|
||||
command = '/usr/bin/python',
|
||||
args = { '-m', 'debugpy.adapter' },
|
||||
}
|
||||
|
||||
dap.configurations.python = {
|
||||
{
|
||||
type = 'python',
|
||||
request = 'launch',
|
||||
name = 'Launch file',
|
||||
|
||||
program = '${file}',
|
||||
pythonPath = function()
|
||||
local cwd = vim.fn.getcwd()
|
||||
if vim.fn.executable(cwd .. '/venv/bin/python') == 1 then
|
||||
return cwd .. '/venv/bin/python'
|
||||
elseif vim.fn.executable(cwd .. '/.venv/bin/python') == 1 then
|
||||
return cwd .. '/.venv/bin/python'
|
||||
else
|
||||
return '/usr/bin/python'
|
||||
end
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
dap.adapters.ruby = {
|
||||
type = 'executable',
|
||||
command = 'bundle',
|
||||
args = { 'exec', 'readapt', 'stdio' },
|
||||
}
|
||||
|
||||
dap.configurations.ruby = {
|
||||
{
|
||||
type = 'ruby',
|
||||
request = 'launch',
|
||||
name = 'Rails',
|
||||
program = 'bundle',
|
||||
programArgs = { 'exec', 'rails', 's' },
|
||||
useBundler = true,
|
||||
},
|
||||
}
|
||||
|
||||
dap.configurations.java = {
|
||||
{
|
||||
name = "Debug Launch (2GB)";
|
||||
type = 'java';
|
||||
request = 'launch';
|
||||
vmArgs = "" ..
|
||||
"-Xmx2g "
|
||||
},
|
||||
{
|
||||
name = "Debug Attach (8000)";
|
||||
type = 'java';
|
||||
request = 'attach';
|
||||
hostName = "127.0.0.1";
|
||||
port = 8000;
|
||||
},
|
||||
{
|
||||
name = "Debug Attach (5005)";
|
||||
type = 'java';
|
||||
request = 'attach';
|
||||
hostName = "127.0.0.1";
|
||||
port = 5005;
|
||||
},
|
||||
{
|
||||
name = "My Custom Java Run Configuration",
|
||||
type = "java",
|
||||
request = "launch",
|
||||
-- You need to extend the classPath to list your dependencies.
|
||||
-- `nvim-jdtls` would automatically add the `classPaths` property if it is missing
|
||||
-- classPaths = {},
|
||||
|
||||
-- If using multi-module projects, remove otherwise.
|
||||
-- projectName = "yourProjectName",
|
||||
|
||||
-- javaExec = "java",
|
||||
mainClass = "replace.with.your.fully.qualified.MainClass",
|
||||
|
||||
-- If using the JDK9+ module system, this needs to be extended
|
||||
-- `nvim-jdtls` would automatically populate this property
|
||||
-- modulePaths = {},
|
||||
vmArgs = "" ..
|
||||
"-Xmx2g "
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
vim.api.nvim_create_user_command('DapUIToggle', function()
|
||||
require('dapui').toggle()
|
||||
end, {})
|
||||
@@ -1,4 +0,0 @@
|
||||
local lsp_lines = require('lsp_lines')
|
||||
|
||||
lsp_lines.setup()
|
||||
vim.diagnostic.config({ virtual_text = false })
|
||||
@@ -1,49 +0,0 @@
|
||||
local lspconfig = require('lspconfig')
|
||||
local cmp_lsp = require('cmp_nvim_lsp')
|
||||
local icons = require('lib.icons').diagnostics
|
||||
|
||||
local auto_install = require('lib.util').get_user_config('auto_install', true)
|
||||
local installed_servers = {}
|
||||
if auto_install then
|
||||
installed_servers = require('plugins.list').lsp_servers
|
||||
end
|
||||
|
||||
local lsp_capabilities = cmp_lsp.default_capabilities()
|
||||
local default_setup = function(server)
|
||||
lspconfig[server].setup({
|
||||
capabilities = lsp_capabilities,
|
||||
})
|
||||
end
|
||||
|
||||
local signs = { Error = icons.Error, Warn = icons.Warning, Hint = icons.Hint, Info = icons.Information }
|
||||
for type, icon in pairs(signs) do
|
||||
local hl = 'DiagnosticSign' .. type
|
||||
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = '' })
|
||||
end
|
||||
|
||||
require('mason-lspconfig').setup({
|
||||
ensure_installed = installed_servers,
|
||||
handlers = {
|
||||
default_setup,
|
||||
lua_ls = function()
|
||||
lspconfig.lua_ls.setup({
|
||||
capabilities = lsp_capabilities,
|
||||
settings = {
|
||||
Lua = {
|
||||
runtime = { version = 'LuaJIT' },
|
||||
diagnostics = { globals = { 'vim' } },
|
||||
workspace = { library = { vim.env.VIMRUNTIME } },
|
||||
format = {
|
||||
enable = true,
|
||||
defaultConfig = {
|
||||
align_continuous_assign_statement = false,
|
||||
align_continuous_rect_table_field = false,
|
||||
align_array_table = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
})
|
||||
@@ -1,21 +0,0 @@
|
||||
local lspsaga = require('lspsaga')
|
||||
|
||||
local icons = require('lib.icons')
|
||||
|
||||
lspsaga.setup({
|
||||
ui = {
|
||||
theme = 'round',
|
||||
border = 'rounded',
|
||||
devicon = true,
|
||||
title = true,
|
||||
winblend = 1,
|
||||
expand = icons.ui.ArrowOpen,
|
||||
collapse = icons.ui.ArrowClosed,
|
||||
preview = icons.ui.List,
|
||||
code_action = icons.diagnostics.Hint,
|
||||
diagnostic = icons.ui.Bug,
|
||||
incoming = icons.ui.Incoming,
|
||||
outgoing = icons.ui.Outgoing,
|
||||
hover = icons.ui.Comment,
|
||||
},
|
||||
})
|
||||
@@ -1,35 +0,0 @@
|
||||
local mason = require('mason')
|
||||
|
||||
local icons = require('lib.icons')
|
||||
mason.setup({
|
||||
-- - "prepend": Use mason binary, "append": Use system binary
|
||||
PATH = 'append',
|
||||
|
||||
log_level = vim.log.levels.INFO,
|
||||
max_concurrent_installers = 8,
|
||||
|
||||
ui = {
|
||||
check_outdated_packages_on_open = true,
|
||||
border = 'rounded',
|
||||
width = 0.8,
|
||||
height = 0.8,
|
||||
|
||||
icons = {
|
||||
package_installed = icons.ui.Gear,
|
||||
package_pending = icons.ui.Download,
|
||||
package_uninstalled = icons.ui.Plus,
|
||||
},
|
||||
|
||||
keymaps = {
|
||||
toggle_package_expand = '<CR>',
|
||||
install_package = 'i',
|
||||
update_package = 'u',
|
||||
check_package_version = 'c',
|
||||
update_all_packages = 'U',
|
||||
check_outdated_packages = 'C',
|
||||
uninstall_package = 'x',
|
||||
cancel_installation = '<C-c>',
|
||||
apply_language_filter = '<C-f>',
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -1,20 +0,0 @@
|
||||
local neotest = require('neotest')
|
||||
|
||||
neotest.setup({
|
||||
adapters = {
|
||||
require('neotest-rspec')({
|
||||
rspec_cmd = function()
|
||||
return vim.tbl_flatten({
|
||||
'bundle',
|
||||
'exec',
|
||||
'rspec',
|
||||
})
|
||||
end,
|
||||
}),
|
||||
require('neotest-jest')({
|
||||
jestCommand = 'npx jest --',
|
||||
jestConfigFile = 'jest.config.js',
|
||||
}),
|
||||
require('neotest-python'),
|
||||
},
|
||||
})
|
||||
@@ -1,51 +0,0 @@
|
||||
local null_ls = require('null-ls')
|
||||
|
||||
local action = null_ls.builtins.code_actions
|
||||
local comp = null_ls.builtins.completion
|
||||
local diag = null_ls.builtins.diagnostics
|
||||
local format = null_ls.builtins.formatting
|
||||
local hover = null_ls.builtins.hover
|
||||
|
||||
-- Buily in sources: https://github.com/nvimtools/none-ls.nvim/blob/main/doc/BUILTINS.md
|
||||
null_ls.setup({
|
||||
debug = false,
|
||||
border = 'rounded',
|
||||
log_level = 'info',
|
||||
diagnostics_format = '#{c} #{m} (#{s})',
|
||||
sources = {
|
||||
action.proselint, -- markdown actions
|
||||
action.refactoring,
|
||||
action.ts_node_action, -- treesitter node actions
|
||||
comp.spell, -- spell completion
|
||||
comp.tags, -- tags completion
|
||||
diag.actionlint, -- github action lint
|
||||
diag.credo, -- elixir diagnostics
|
||||
diag.golangci_lint,
|
||||
diag.hadolint, -- docker lint
|
||||
diag.proselint, -- markdown lint
|
||||
diag.reek, -- ruby code smell
|
||||
diag.rubocop, -- ruby diagnostics
|
||||
diag.todo_comments,
|
||||
diag.trail_space, -- trailing space check
|
||||
diag.vint, -- vim lint
|
||||
diag.write_good, -- english writing style
|
||||
format.mix, -- elixir formatter
|
||||
format.prettier, -- js, md, css, etc formatter
|
||||
format.rubocop, -- ruby formatter
|
||||
format.shfmt, -- shell formatter
|
||||
format.stylua, -- lua formatter
|
||||
hover.dictionary, -- show word dictionary on hover
|
||||
hover.printenv, -- show env on hover
|
||||
},
|
||||
})
|
||||
|
||||
local auto_install = require('lib.util').get_user_config('auto_install', true)
|
||||
local installed_sources = {}
|
||||
if auto_install then
|
||||
installed_sources = require('plugins.list').null_ls_sources
|
||||
end
|
||||
|
||||
require('mason-null-ls').setup({
|
||||
ensure_installed = installed_sources,
|
||||
automatic_installation = auto_install,
|
||||
})
|
||||
@@ -1,25 +0,0 @@
|
||||
local refactoring = require('refactoring')
|
||||
|
||||
refactoring.setup({
|
||||
prompt_func_return_type = {
|
||||
go = false,
|
||||
java = false,
|
||||
cpp = false,
|
||||
c = false,
|
||||
h = false,
|
||||
hpp = false,
|
||||
cxx = false,
|
||||
},
|
||||
prompt_func_param_type = {
|
||||
go = false,
|
||||
java = false,
|
||||
|
||||
cpp = false,
|
||||
c = false,
|
||||
h = false,
|
||||
hpp = false,
|
||||
cxx = false,
|
||||
},
|
||||
printf_statements = {},
|
||||
print_var_statements = {},
|
||||
})
|
||||
@@ -1,20 +0,0 @@
|
||||
local ror = require('ror')
|
||||
local icons = require('lib.icons')
|
||||
|
||||
ror.setup({
|
||||
test = {
|
||||
message = {
|
||||
file = 'Running test file...',
|
||||
line = 'Running single test...',
|
||||
},
|
||||
coverage = {
|
||||
up = 'DiffAdd',
|
||||
down = 'DiffDelete',
|
||||
},
|
||||
notification = {
|
||||
timeout = false,
|
||||
},
|
||||
pass_icon = icons.ui.Check,
|
||||
fail_icon = icons.ui.Close,
|
||||
},
|
||||
})
|
||||
@@ -1,14 +0,0 @@
|
||||
local sniprun = require('sniprun')
|
||||
|
||||
sniprun.setup({
|
||||
display = { 'VirtualTextOk', 'VirtualTextErr' },
|
||||
show_no_output = { 'Classic', 'TempFloatingWindow' },
|
||||
|
||||
display_options = {
|
||||
terminal_width = 45,
|
||||
notification_timeout = 5,
|
||||
},
|
||||
|
||||
inline_messages = 0,
|
||||
borders = 'single',
|
||||
})
|
||||
@@ -1,25 +0,0 @@
|
||||
local surround = require('mini.surround')
|
||||
|
||||
surround.setup({
|
||||
custom_surroundings = nil,
|
||||
mappings = {
|
||||
add = 'gsa',
|
||||
delete = 'gsd',
|
||||
find = 'gsf',
|
||||
find_left = 'gsF',
|
||||
highlight = 'gsh',
|
||||
replace = 'gsr',
|
||||
update_n_lines = 'gsn',
|
||||
|
||||
suffix_last = 'l', -- Suffix to search with "prev" method
|
||||
suffix_next = 'n', -- Suffix to search with "next" method
|
||||
},
|
||||
|
||||
-- How to search for surrounding
|
||||
-- 'cover', 'cover_or_next', 'cover_or_prev','cover_or_nearest', 'next', 'previous', 'nearest'.
|
||||
search_method = 'cover_or_nearest',
|
||||
highlight_duration = 500,
|
||||
n_lines = 20,
|
||||
respect_selection_type = false,
|
||||
silent = false,
|
||||
})
|
||||
@@ -1,115 +0,0 @@
|
||||
local textobjects = {
|
||||
select = {
|
||||
enable = true,
|
||||
lookahead = true,
|
||||
|
||||
keymaps = {
|
||||
['a='] = { query = '@assignment.outer', desc = 'Select outer part of an assignment' },
|
||||
['i='] = { query = '@assignment.inner', desc = 'Select inner part of an assignment' },
|
||||
['al='] = { query = '@assignment.lhs', desc = 'Select left hand side of an assignment' },
|
||||
['ar='] = {
|
||||
query = '@assignment.rhs',
|
||||
desc = 'Select right hand side of an assignment',
|
||||
},
|
||||
|
||||
['a:'] = { query = '@property.outer', desc = 'Select outer part of an object property' },
|
||||
['i:'] = { query = '@property.inner', desc = 'Select inner part of an object property' },
|
||||
['l:'] = { query = '@property.lhs', desc = 'Select left part of an object property' },
|
||||
['r:'] = { query = '@property.rhs', desc = 'Select right part of an object property' },
|
||||
|
||||
['aa'] = {
|
||||
query = '@parameter.outer',
|
||||
desc = 'Select outer part of a parameter/argument',
|
||||
},
|
||||
['ia'] = {
|
||||
query = '@parameter.inner',
|
||||
desc = 'Select inner part of a parameter/argument',
|
||||
},
|
||||
|
||||
['ai'] = { query = '@conditional.outer', desc = 'Select outer part of a conditional' },
|
||||
['ii'] = { query = '@conditional.inner', desc = 'Select inner part of a conditional' },
|
||||
|
||||
['al'] = { query = '@loop.outer', desc = 'Select outer part of a loop' },
|
||||
['il'] = { query = '@loop.inner', desc = 'Select inner part of a loop' },
|
||||
|
||||
['af'] = { query = '@call.outer', desc = 'Select outer part of a function call' },
|
||||
['if'] = { query = '@call.inner', desc = 'Select inner part of a function call' },
|
||||
|
||||
['am'] = {
|
||||
query = '@function.outer',
|
||||
desc = 'Select outer part of a method/function definition',
|
||||
},
|
||||
['im'] = {
|
||||
query = '@function.inner',
|
||||
desc = 'Select inner part of a method/function definition',
|
||||
},
|
||||
|
||||
['ac'] = { query = '@class.outer', desc = 'Select outer part of a class' },
|
||||
['ic'] = { query = '@class.inner', desc = 'Select inner part of a class' },
|
||||
},
|
||||
},
|
||||
swap = {
|
||||
enable = true,
|
||||
swap_next = {
|
||||
['<leader>rna'] = '@parameter.inner', -- swap object property with next
|
||||
['<leader>rn:'] = '@property.outer', -- swap parameters/argument with next
|
||||
['<leader>rnm'] = '@function.outer', -- swap function with next
|
||||
},
|
||||
swap_previous = {
|
||||
['<leader>rpa'] = '@parameter.inner', -- swap parameters/argument with prev
|
||||
['<leader>rp:'] = '@property.outer', -- swap object property with prev
|
||||
['<leader>rpm'] = '@function.outer', -- swap function with previous
|
||||
},
|
||||
},
|
||||
move = {
|
||||
enable = true,
|
||||
set_jumps = true, -- whether to set jumps in the jumplist
|
||||
goto_next_start = {
|
||||
[']f'] = { query = '@call.outer', desc = 'Next function call start' },
|
||||
[']m'] = { query = '@function.outer', desc = 'Next method/function def start' },
|
||||
[']c'] = { query = '@class.outer', desc = 'Next class start' },
|
||||
[']i'] = { query = '@conditional.outer', desc = 'Next conditional start' },
|
||||
[']l'] = { query = '@loop.outer', desc = 'Next loop start' },
|
||||
|
||||
-- You can pass a query group to use query from `queries/<lang>/<query_group>.scm file in your runtime path.
|
||||
-- Below example nvim-treesitter's `locals.scm` and `folds.scm`. They also provide highlights.scm and indent.scm.
|
||||
[']S'] = { query = '@scope', query_group = 'locals', desc = 'Next scope' },
|
||||
[']z'] = { query = '@fold', query_group = 'folds', desc = 'Next fold' },
|
||||
},
|
||||
goto_next_end = {
|
||||
[']F'] = { query = '@call.outer', desc = 'Next function call end' },
|
||||
[']M'] = { query = '@function.outer', desc = 'Next method/function def end' },
|
||||
[']C'] = { query = '@class.outer', desc = 'Next class end' },
|
||||
[']I'] = { query = '@conditional.outer', desc = 'Next conditional end' },
|
||||
[']L'] = { query = '@loop.outer', desc = 'Next loop end' },
|
||||
},
|
||||
goto_previous_start = {
|
||||
['[f'] = { query = '@call.outer', desc = 'Prev function call start' },
|
||||
['[m'] = { query = '@function.outer', desc = 'Prev method/function def start' },
|
||||
['[c'] = { query = '@class.outer', desc = 'Prev class start' },
|
||||
['[i'] = { query = '@conditional.outer', desc = 'Prev conditional start' },
|
||||
['[l'] = { query = '@loop.outer', desc = 'Prev loop start' },
|
||||
},
|
||||
goto_previous_end = {
|
||||
['[F'] = { query = '@call.outer', desc = 'Prev function call end' },
|
||||
['[M'] = { query = '@function.outer', desc = 'Prev method/function def end' },
|
||||
['[C'] = { query = '@class.outer', desc = 'Prev class end' },
|
||||
['[I'] = { query = '@conditional.outer', desc = 'Prev conditional end' },
|
||||
['[L'] = { query = '@loop.outer', desc = 'Prev loop end' },
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
local ts_repeat_move = require('nvim-treesitter.textobjects.repeatable_move')
|
||||
|
||||
-- vim way: ; goes to the direction you were moving.
|
||||
vim.keymap.set({ 'n', 'x', 'o' }, ';', ts_repeat_move.repeat_last_move)
|
||||
vim.keymap.set({ 'n', 'x', 'o' }, ',', ts_repeat_move.repeat_last_move_opposite)
|
||||
|
||||
-- Optionally, make builtin f, F, t, T also repeatable with ; and ,
|
||||
vim.keymap.set({ 'n', 'x', 'o' }, 'f', ts_repeat_move.builtin_f)
|
||||
vim.keymap.set({ 'n', 'x', 'o' }, 'F', ts_repeat_move.builtin_F)
|
||||
vim.keymap.set({ 'n', 'x', 'o' }, 't', ts_repeat_move.builtin_t)
|
||||
vim.keymap.set({ 'n', 'x', 'o' }, 'T', ts_repeat_move.builtin_T)
|
||||
|
||||
return textobjects
|
||||
@@ -1,78 +0,0 @@
|
||||
local treesitter = require('nvim-treesitter.configs')
|
||||
local textobjects = require('plugins.lang.textobjects')
|
||||
|
||||
local auto_install = require('lib.util').get_user_config('auto_install', true)
|
||||
local installed_parsers = {}
|
||||
if auto_install then
|
||||
installed_parsers = require('plugins.list').ts_parsers
|
||||
end
|
||||
|
||||
treesitter.setup({
|
||||
ensure_installed = installed_parsers,
|
||||
sync_install = false,
|
||||
ignore_install = {},
|
||||
auto_install = true,
|
||||
|
||||
textobjects = textobjects,
|
||||
autopairs = { enable = true },
|
||||
endwise = { enable = true },
|
||||
autotag = { enable = true },
|
||||
matchup = { enable = true },
|
||||
indent = { enable = true },
|
||||
|
||||
highlight = {
|
||||
enable = true,
|
||||
disable = {},
|
||||
additional_vim_regex_highlighting = false,
|
||||
},
|
||||
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
init_selection = '<c-space>',
|
||||
node_incremental = '<c-space>',
|
||||
scope_incremental = false,
|
||||
node_decremental = '<bs>',
|
||||
},
|
||||
},
|
||||
|
||||
textsubjects = {
|
||||
enable = true,
|
||||
prev_selection = ',',
|
||||
keymaps = {
|
||||
['.'] = { 'textsubjects-smart', desc = 'Select the current text subject' },
|
||||
['a;'] = {
|
||||
'textsubjects-container-outer',
|
||||
desc = 'Select outer container (class, function, etc.)',
|
||||
},
|
||||
['i;'] = {
|
||||
'textsubjects-container-inner',
|
||||
desc = 'Select inside containers (classes, functions, etc.)',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
refactor = {
|
||||
highlight_definitions = {
|
||||
enable = true,
|
||||
clear_on_cursor_move = true,
|
||||
},
|
||||
highlight_current_scope = { enable = true },
|
||||
smart_rename = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
smart_rename = '<leader>rr',
|
||||
},
|
||||
},
|
||||
navigation = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
goto_definition = '<leader>rd',
|
||||
list_definitions = '<leader>rl',
|
||||
list_definitions_toc = '<leader>rh',
|
||||
goto_next_usage = '<leader>rj',
|
||||
goto_previous_usage = '<leader>rk',
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -1,109 +0,0 @@
|
||||
local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
|
||||
if not vim.loop.fs_stat(lazypath) then
|
||||
vim.fn.system({
|
||||
'git',
|
||||
'clone',
|
||||
'--filter=blob:none',
|
||||
'--single-branch',
|
||||
'https://github.com/folke/lazy.nvim.git',
|
||||
lazypath,
|
||||
})
|
||||
end
|
||||
vim.opt.runtimepath:prepend(lazypath)
|
||||
|
||||
local status_ok, lazy = pcall(require, 'lazy')
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
local icons = require('lib.icons')
|
||||
local plugins = require('plugins.list').plugins
|
||||
|
||||
lazy.setup({
|
||||
root = vim.fn.stdpath('data') .. '/lazy',
|
||||
defaults = { lazy = true },
|
||||
spec = plugins,
|
||||
lockfile = vim.fn.stdpath('config') .. '/lua/plugins/lock.json',
|
||||
concurrency = 8,
|
||||
dev = { path = '~/Projects/GitHub/', patterns = {}, fallback = false },
|
||||
install = { missing = true, colorscheme = { 'onedark' } },
|
||||
|
||||
git = {
|
||||
log = { '--since=3 days ago' },
|
||||
timeout = 120,
|
||||
url_format = 'https://github.com/%s.git',
|
||||
filter = true,
|
||||
},
|
||||
|
||||
ui = {
|
||||
size = { width = 0.9, height = 0.8 },
|
||||
wrap = true,
|
||||
border = 'rounded',
|
||||
icons = {
|
||||
cmd = icons.ui.Terminal,
|
||||
config = icons.ui.Gear,
|
||||
event = icons.ui.Electric,
|
||||
ft = icons.documents.File,
|
||||
init = icons.ui.Rocket,
|
||||
import = icons.documents.Import,
|
||||
keys = icons.ui.Keyboard,
|
||||
lazy = icons.ui.Sleep,
|
||||
loaded = icons.ui.CircleSmall,
|
||||
not_loaded = icons.ui.CircleSmallEmpty,
|
||||
plugin = icons.ui.Package,
|
||||
runtime = icons.ui.Neovim,
|
||||
source = icons.ui.Code,
|
||||
start = icons.ui.Play,
|
||||
task = icons.ui.Check,
|
||||
list = {
|
||||
icons.ui.CircleSmall,
|
||||
icons.ui.Arrow,
|
||||
icons.ui.Star,
|
||||
icons.ui.Minus,
|
||||
},
|
||||
},
|
||||
browser = nil,
|
||||
throttle = 20,
|
||||
custom_keys = {
|
||||
['<localleader>l'] = function(plugin)
|
||||
require('lazy.util').float_term({ 'lazygit', 'log' }, {
|
||||
cwd = plugin.dir,
|
||||
})
|
||||
end,
|
||||
|
||||
['<localleader>t'] = function(plugin)
|
||||
require('lazy.util').float_term(nil, {
|
||||
cwd = plugin.dir,
|
||||
})
|
||||
end,
|
||||
},
|
||||
},
|
||||
|
||||
diff = { cmd = 'git' },
|
||||
checker = { enabled = false, concurrency = nil, notify = true, frequency = 3600 },
|
||||
change_detection = { enabled = true, notify = true },
|
||||
performance = {
|
||||
cache = { enabled = true },
|
||||
reset_packpath = true,
|
||||
rtp = {
|
||||
reset = true,
|
||||
paths = {},
|
||||
disabled_plugins = {
|
||||
'gzip',
|
||||
'tarPlugin',
|
||||
'zipPlugin',
|
||||
'tohtml',
|
||||
-- 'tutor',
|
||||
-- 'matchit',
|
||||
-- 'matchparen',
|
||||
-- 'netrwPlugin',
|
||||
},
|
||||
},
|
||||
},
|
||||
readme = {
|
||||
root = vim.fn.stdpath('state') .. '/lazy/readme',
|
||||
files = { 'README.md', 'lua/**/README.md' },
|
||||
skip_if_doc_exists = true,
|
||||
},
|
||||
state = vim.fn.stdpath('state') .. '/lazy/state.json',
|
||||
})
|
||||
@@ -1,547 +0,0 @@
|
||||
local function load_config(package)
|
||||
return function()
|
||||
require('plugins.' .. package)
|
||||
end
|
||||
end
|
||||
|
||||
local plugins = {
|
||||
-- UI
|
||||
{
|
||||
'navarasu/onedark.nvim',
|
||||
config = load_config('ui.onedark'),
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
'nvim-lualine/lualine.nvim',
|
||||
config = load_config('ui.lualine'),
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
},
|
||||
{
|
||||
'lukas-reineke/indent-blankline.nvim',
|
||||
config = load_config('ui.indentline'),
|
||||
main = 'ibl',
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
},
|
||||
{
|
||||
'HiPhish/rainbow-delimiters.nvim',
|
||||
config = load_config('ui.rainbow'),
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
},
|
||||
{
|
||||
'rcarriga/nvim-notify',
|
||||
config = load_config('ui.notify'),
|
||||
event = 'VeryLazy',
|
||||
cmd = 'Notifications',
|
||||
},
|
||||
{
|
||||
'stevearc/dressing.nvim',
|
||||
config = load_config('ui.dressing'),
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
},
|
||||
{
|
||||
'nvimdev/dashboard-nvim',
|
||||
dependencies = {
|
||||
"rubiin/fortune.nvim",
|
||||
config = true,
|
||||
},
|
||||
config = load_config('ui.dashboard'),
|
||||
-- Only load when no arguments
|
||||
event = function()
|
||||
if vim.fn.argc() == 0 then
|
||||
return 'VimEnter'
|
||||
end
|
||||
end,
|
||||
cmd = 'Dashboard',
|
||||
},
|
||||
{
|
||||
'folke/noice.nvim',
|
||||
event = 'VimEnter',
|
||||
dependencies = {
|
||||
'MunifTanjim/nui.nvim',
|
||||
'rcarriga/nvim-notify',
|
||||
},
|
||||
config = load_config('ui.noice'),
|
||||
},
|
||||
{
|
||||
'folke/zen-mode.nvim',
|
||||
dependencies = {
|
||||
'folke/twilight.nvim',
|
||||
config = load_config('ui.twilight'),
|
||||
},
|
||||
config = load_config('ui.zen-mode'),
|
||||
cmd = { 'ZenMode', 'Twilight' },
|
||||
},
|
||||
|
||||
-- Language
|
||||
{
|
||||
'mfussenegger/nvim-dap',
|
||||
dependencies = {
|
||||
'rcarriga/nvim-dap-ui',
|
||||
},
|
||||
config = load_config('lang.dap'),
|
||||
cmd = { 'DapUIToggle', 'DapToggleRepl', 'DapToggleBreakpoint' },
|
||||
},
|
||||
{
|
||||
'nvim-neotest/neotest',
|
||||
dependencies = {
|
||||
'nvim-neotest/nvim-nio',
|
||||
'olimorris/neotest-rspec',
|
||||
'nvim-neotest/neotest-jest',
|
||||
'nvim-neotest/neotest-python',
|
||||
},
|
||||
config = load_config('lang.neotest'),
|
||||
cmd = 'Neotest',
|
||||
},
|
||||
{
|
||||
'michaelb/sniprun',
|
||||
build = 'bash ./install.sh',
|
||||
config = load_config('lang.sniprun'),
|
||||
cmd = 'SnipRun',
|
||||
},
|
||||
{
|
||||
'ThePrimeagen/refactoring.nvim',
|
||||
config = load_config('lang.refactoring'),
|
||||
},
|
||||
{
|
||||
'windwp/nvim-autopairs',
|
||||
config = load_config('lang.autopairs'),
|
||||
event = 'InsertEnter',
|
||||
},
|
||||
{
|
||||
'echasnovski/mini.comment',
|
||||
version = '*',
|
||||
dependencies = 'JoosepAlviste/nvim-ts-context-commentstring',
|
||||
config = load_config('lang.comment'),
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
},
|
||||
{
|
||||
'echasnovski/mini.surround',
|
||||
version = '*',
|
||||
config = load_config('lang.surround'),
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
},
|
||||
{
|
||||
'echasnovski/mini.ai',
|
||||
version = '*',
|
||||
config = load_config('lang.ai'),
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
},
|
||||
{
|
||||
'alvan/vim-closetag',
|
||||
ft = { "html", "javascriptreact", "typescriptreact" },
|
||||
},
|
||||
-- Tresitter
|
||||
{
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
build = ':TSUpdate',
|
||||
dependencies = {
|
||||
'nvim-treesitter/nvim-treesitter-refactor',
|
||||
'nvim-treesitter/nvim-treesitter-textobjects',
|
||||
'RRethy/nvim-treesitter-endwise',
|
||||
'RRethy/nvim-treesitter-textsubjects',
|
||||
'windwp/nvim-ts-autotag',
|
||||
},
|
||||
config = load_config('lang.treesitter'),
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
},
|
||||
{
|
||||
'ckolkey/ts-node-action',
|
||||
dependencies = { 'nvim-treesitter' },
|
||||
},
|
||||
-- LSP
|
||||
{
|
||||
'neovim/nvim-lspconfig',
|
||||
dependencies = {
|
||||
'williamboman/mason-lspconfig.nvim',
|
||||
'hrsh7th/cmp-nvim-lsp',
|
||||
},
|
||||
config = load_config('lang.lspconfig'),
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
},
|
||||
{
|
||||
'folke/lazydev.nvim',
|
||||
ft = 'lua',
|
||||
},
|
||||
{
|
||||
'nvimdev/lspsaga.nvim',
|
||||
config = load_config('lang.lspsaga'),
|
||||
event = 'LspAttach',
|
||||
},
|
||||
{
|
||||
'Maan2003/lsp_lines.nvim',
|
||||
config = load_config('lang.lsp-lines'),
|
||||
event = 'LspAttach',
|
||||
},
|
||||
{
|
||||
'williamboman/mason.nvim',
|
||||
config = load_config('lang.mason'),
|
||||
cmd = 'Mason',
|
||||
},
|
||||
{
|
||||
'nvimtools/none-ls.nvim',
|
||||
dependencies = { 'neovim/nvim-lspconfig', 'jay-babu/mason-null-ls.nvim' },
|
||||
config = load_config('lang.null-ls'),
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
},
|
||||
|
||||
-- Completion
|
||||
{
|
||||
'hrsh7th/nvim-cmp',
|
||||
dependencies = {
|
||||
'hrsh7th/cmp-buffer',
|
||||
'hrsh7th/cmp-path',
|
||||
'hrsh7th/cmp-cmdline',
|
||||
'hrsh7th/cmp-nvim-lua',
|
||||
'L3MON4D3/LuaSnip',
|
||||
'rafamadriz/friendly-snippets',
|
||||
'saadparwaiz1/cmp_luasnip',
|
||||
},
|
||||
config = load_config('lang.cmp'),
|
||||
event = 'InsertEnter',
|
||||
},
|
||||
{
|
||||
'Exafunction/codeium.vim',
|
||||
event = 'BufEnter',
|
||||
cmd = 'Codeium',
|
||||
build = 'Codeium Auth:',
|
||||
dependencies = {
|
||||
'nvim-lua/plenary.nvim',
|
||||
'hrsh7th/nvim-cmp',
|
||||
},
|
||||
},
|
||||
-- Tools
|
||||
{
|
||||
'sontungexpt/url-open',
|
||||
cmd = 'URLOpenUnderCursor',
|
||||
config = load_config('tools.url-open'),
|
||||
},
|
||||
{
|
||||
'stevearc/conform.nvim',
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
config = load_config('tools.conform'),
|
||||
},
|
||||
{
|
||||
'nvim-tree/nvim-tree.lua',
|
||||
dependencies = {
|
||||
'nvim-tree/nvim-web-devicons',
|
||||
},
|
||||
config = load_config('tools.nvim-tree'),
|
||||
cmd = 'NvimTreeToggle',
|
||||
},
|
||||
{
|
||||
'windwp/nvim-spectre',
|
||||
config = load_config('tools.spectre'),
|
||||
cmd = 'Spectre',
|
||||
},
|
||||
{
|
||||
'abecodes/tabout.nvim',
|
||||
config = load_config('tools.tabout'),
|
||||
event = 'InsertEnter',
|
||||
},
|
||||
{
|
||||
'folke/flash.nvim',
|
||||
config = load_config('tools.flash'),
|
||||
keys = {
|
||||
{
|
||||
's',
|
||||
mode = { 'n', 'x', 'o' },
|
||||
function()
|
||||
require('flash').jump()
|
||||
end,
|
||||
desc = 'Flash',
|
||||
},
|
||||
{
|
||||
'S',
|
||||
mode = { 'n', 'x', 'o' },
|
||||
function()
|
||||
require('flash').treesitter()
|
||||
end,
|
||||
desc = 'Flash Treesitter',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
'numToStr/Navigator.nvim',
|
||||
config = load_config('tools.navigator'),
|
||||
event = function()
|
||||
if vim.fn.exists('$TMUX') == 1 then
|
||||
return 'VeryLazy'
|
||||
end
|
||||
end,
|
||||
},
|
||||
{
|
||||
'm4xshen/hardtime.nvim',
|
||||
dependencies = { 'MunifTanjim/nui.nvim', 'nvim-lua/plenary.nvim' },
|
||||
config = function()
|
||||
require('hardtime').setup({ enabled = true })
|
||||
end,
|
||||
cmd = 'Hardtime',
|
||||
},
|
||||
{
|
||||
'chrisgrieser/nvim-spider',
|
||||
config = load_config('tools.spider'),
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
},
|
||||
{
|
||||
'folke/which-key.nvim',
|
||||
config = load_config('tools.which-key'),
|
||||
event = 'VeryLazy',
|
||||
},
|
||||
{
|
||||
'iamcco/markdown-preview.nvim',
|
||||
build = function()
|
||||
vim.fn['mkdp#util#install']()
|
||||
end,
|
||||
ft = 'markdown',
|
||||
cmd = { 'MarkdownPreviewToggle', 'MarkdownPreview' },
|
||||
},
|
||||
{
|
||||
'uga-rosa/ccc.nvim',
|
||||
config = load_config('tools.ccc'),
|
||||
cmd = { 'CccHighlighterToggle', 'CccConvert', 'CccPick' },
|
||||
},
|
||||
{
|
||||
'2kabhishek/termim.nvim',
|
||||
cmd = { 'Fterm', 'FTerm', 'Sterm', 'STerm', 'Vterm', 'VTerm' },
|
||||
},
|
||||
{
|
||||
'2kabhishek/tdo.nvim',
|
||||
dependencies = 'nvim-telescope/telescope.nvim',
|
||||
cmd = { 'Tdo', 'TdoEntry', 'TdoNote', 'TdoTodos', 'TdoToggle', 'TdoFind', 'TdoFiles' },
|
||||
keys = { '[t', ']t' },
|
||||
},
|
||||
{
|
||||
'kndndrj/nvim-dbee',
|
||||
dependencies = {
|
||||
'MunifTanjim/nui.nvim',
|
||||
},
|
||||
build = function()
|
||||
-- "curl", "wget", "bitsadmin", "go"
|
||||
require('dbee').install('curl')
|
||||
end,
|
||||
config = load_config('tools.dbee'),
|
||||
cmd = 'DBToggle',
|
||||
enabled = false,
|
||||
},
|
||||
{
|
||||
'aurum77/live-server.nvim',
|
||||
build = function()
|
||||
require("live_server.util").install()
|
||||
end,
|
||||
cmd = { "LiveServer", "LiveServerStart", "LiveServerStop" },
|
||||
keys = {
|
||||
{ "<A-F1>", ft = "html", "<cmd>LiveServer<CR>", desc = "Live Server" },
|
||||
{ "<A-F2>", ft = "html", "<cmd>LiveServerStop<CR>", desc = "Live Server Stop" },
|
||||
},
|
||||
},
|
||||
{
|
||||
'Zeioth/compiler.nvim',
|
||||
cmd = { "CompilerOpen", "CompilerToggleResults", "CompilerRedo" },
|
||||
dependencies = { "stevearc/overseer.nvim" },
|
||||
opts = {},
|
||||
keys = {
|
||||
{ "<F3>", "<cmd>CompilerOpen<cr>", desc = "Open Compiler" },
|
||||
{ "<S-F3>", function() vim.cmd("CompilerStop") vim.cmd("CompilerRedo") end, desc = "Redo Compiler" },
|
||||
{ "<F4>", "<cmd>CompilerToggleResults<cr>", desc = "Toggle Compiler Results" },
|
||||
},
|
||||
},
|
||||
{
|
||||
'stevearc/overseer.nvim',
|
||||
cmd = {
|
||||
"OverseerOpen",
|
||||
"OverseerClose",
|
||||
"OverseerToggle",
|
||||
"OverseerSaveBundle",
|
||||
"OverseerLoadBundle",
|
||||
"OverseerDeleteBundle",
|
||||
"OverseerRunCmd",
|
||||
"OverseerRun",
|
||||
"OverseerInfo",
|
||||
"OverseerBuild",
|
||||
"OverseerQuickAction",
|
||||
"OverseerTaskAction ",
|
||||
"OverseerClearCache",
|
||||
},
|
||||
opts = {
|
||||
task_list = {
|
||||
direction = "bottom",
|
||||
min_height = 15,
|
||||
max_height = 15,
|
||||
default_detail = 1,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
'okuuva/auto-save.nvim',
|
||||
event = 'VeryLazy',
|
||||
config = load_config('tools.auto-save'),
|
||||
},
|
||||
-- Telescope
|
||||
{
|
||||
'nvim-telescope/telescope.nvim',
|
||||
branch = '0.1.x',
|
||||
dependencies = {
|
||||
'nvim-lua/plenary.nvim',
|
||||
{
|
||||
'nvim-telescope/telescope-fzf-native.nvim',
|
||||
build = 'make',
|
||||
},
|
||||
'nvim-telescope/telescope-file-browser.nvim',
|
||||
'nvim-telescope/telescope-symbols.nvim',
|
||||
'molecule-man/telescope-menufacture',
|
||||
'debugloop/telescope-undo.nvim',
|
||||
},
|
||||
config = load_config('tools.telescope'),
|
||||
cmd = 'Telescope',
|
||||
},
|
||||
{
|
||||
'ThePrimeagen/harpoon',
|
||||
branch = 'harpoon2',
|
||||
config = load_config('tools.harpoon'),
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
},
|
||||
{
|
||||
'2kabhishek/nerdy.nvim',
|
||||
dependencies = { 'stevearc/dressing.nvim' },
|
||||
cmd = 'Nerdy',
|
||||
},
|
||||
{
|
||||
-- 'chentoast/marks.nvim',
|
||||
'2kabhishek/markit.nvim',
|
||||
config = load_config('tools.marks'),
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
},
|
||||
|
||||
-- Git
|
||||
{
|
||||
'2kabhishek/co-author.nvim',
|
||||
dependencies = { 'stevearc/dressing.nvim' },
|
||||
cmd = 'CoAuthor',
|
||||
},
|
||||
{
|
||||
'ruifm/gitlinker.nvim',
|
||||
config = load_config('tools.gitlinker'),
|
||||
keys = '<leader>yg',
|
||||
},
|
||||
{
|
||||
'lewis6991/gitsigns.nvim',
|
||||
config = load_config('tools.gitsigns'),
|
||||
cmd = 'Gitsigns',
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
},
|
||||
{
|
||||
'tpope/vim-fugitive',
|
||||
cmd = 'Git',
|
||||
},
|
||||
}
|
||||
|
||||
local ts_parsers = {
|
||||
'bash',
|
||||
'c',
|
||||
'css',
|
||||
'dart',
|
||||
'elixir',
|
||||
'gitcommit',
|
||||
'go',
|
||||
'html',
|
||||
'java',
|
||||
'javascript',
|
||||
'json',
|
||||
'kotlin',
|
||||
'lua',
|
||||
'markdown',
|
||||
'markdown_inline', -- markdown code blocks
|
||||
'python',
|
||||
'ruby',
|
||||
'rust',
|
||||
'typescript',
|
||||
'vim',
|
||||
'vimdoc',
|
||||
'yaml',
|
||||
}
|
||||
|
||||
local null_ls_sources = {
|
||||
'shellcheck', -- bash lint
|
||||
}
|
||||
|
||||
local lsp_servers = {
|
||||
'bashls',
|
||||
'jsonls',
|
||||
'lua_ls',
|
||||
'html',
|
||||
'kotlin_language_server',
|
||||
'sqlls',
|
||||
'typos_lsp', -- check typos
|
||||
'vimls',
|
||||
'volar',
|
||||
'yamlls',
|
||||
'tailwindcss',
|
||||
'cmake',
|
||||
'tsserver',
|
||||
'pylsp',
|
||||
}
|
||||
|
||||
local util = require('lib.util')
|
||||
|
||||
if util.is_present('npm') then
|
||||
table.insert(lsp_servers, 'eslint')
|
||||
table.insert(lsp_servers, 'tsserver')
|
||||
end
|
||||
|
||||
if util.is_present('gem') then
|
||||
local ror_nvim = {
|
||||
'weizheheng/ror.nvim',
|
||||
branch = 'main',
|
||||
ft = 'ruby',
|
||||
config = load_config('lang.ror'),
|
||||
keys = {
|
||||
{
|
||||
'<leader>rc',
|
||||
mode = { 'n' },
|
||||
function()
|
||||
vim.cmd('RorCommands')
|
||||
end,
|
||||
desc = 'Rails Commands',
|
||||
},
|
||||
},
|
||||
}
|
||||
local vim_rails = {
|
||||
'tpope/vim-rails',
|
||||
ft = 'ruby',
|
||||
}
|
||||
|
||||
table.insert(lsp_servers, 'solargraph')
|
||||
table.insert(lsp_servers, 'ruby_lsp')
|
||||
table.insert(lsp_servers, 'rubocop')
|
||||
table.insert(plugins, ror_nvim)
|
||||
table.insert(plugins, vim_rails)
|
||||
end
|
||||
|
||||
if util.is_present('dart') then
|
||||
table.insert(lsp_servers, 'dartls')
|
||||
end
|
||||
|
||||
if util.is_present('java') then
|
||||
table.insert(lsp_servers, 'jdtls')
|
||||
end
|
||||
|
||||
if util.is_present('pip') then
|
||||
table.insert(lsp_servers, 'ruff_lsp')
|
||||
table.insert(lsp_servers, 'pylsp')
|
||||
end
|
||||
|
||||
if util.is_present('mix') then
|
||||
table.insert(lsp_servers, 'elixirls')
|
||||
end
|
||||
|
||||
if util.is_present('cargo') then
|
||||
table.insert(lsp_servers, 'rust_analyzer')
|
||||
end
|
||||
|
||||
return {
|
||||
plugins = plugins,
|
||||
lsp_servers = lsp_servers,
|
||||
null_ls_sources = null_ls_sources,
|
||||
ts_parsers = ts_parsers,
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
{
|
||||
"LuaSnip": { "branch": "master", "commit": "7552e6504ee95a9c8cfc6db53e389122ded46cd4" },
|
||||
"Navigator.nvim": { "branch": "master", "commit": "91d86506ac2a039504d5205d32a1d4bc7aa57072" },
|
||||
"auto-save.nvim": { "branch": "main", "commit": "5fe9ab0c42f0457f2a973e814a6352b8eeb04730" },
|
||||
"ccc.nvim": { "branch": "main", "commit": "4fb5abaef2f2e0540fe22d4d74a9841205fff9e4" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
||||
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
|
||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
||||
"co-author.nvim": { "branch": "main", "commit": "db0debbde453c0ce10d1b925cd9f3139e4291c42" },
|
||||
"codeium.vim": { "branch": "main", "commit": "e0342fde9474fdd0a36ff9692fe0031b7611a19f" },
|
||||
"compiler.nvim": { "branch": "main", "commit": "892c1aac059b7df16dc636eea9e34be53f53ff96" },
|
||||
"conform.nvim": { "branch": "master", "commit": "25d48271e3d4404ba017cb92a37d3a681c1ad149" },
|
||||
"dashboard-nvim": { "branch": "master", "commit": "fabf5feec96185817c732d47d363f34034212685" },
|
||||
"dressing.nvim": { "branch": "master", "commit": "6741f1062d3dc6e4755367a7e9b347b553623f04" },
|
||||
"flash.nvim": { "branch": "main", "commit": "34c7be146a91fec3555c33fe89c7d643f6ef5cf1" },
|
||||
"fortune.nvim": { "branch": "master", "commit": "29a99fbf887a2d48693f1eaa1893f84cde60af54" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" },
|
||||
"gitlinker.nvim": { "branch": "master", "commit": "cc59f732f3d043b626c8702cb725c82e54d35c25" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "58bd9e98d8e3c5a1c98af312e85247ee1afd3ed2" },
|
||||
"hardtime.nvim": { "branch": "main", "commit": "91c6be1a54fa057002e21ae209a49436bd215355" },
|
||||
"harpoon": { "branch": "harpoon2", "commit": "0378a6c428a0bed6a2781d459d7943843f374bce" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "3fe94b8034dd5241cb882bb73847303b58857ecf" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "491452cf1ca6f029e90ad0d0368848fac717c6d2" },
|
||||
"live-server.nvim": { "branch": "main", "commit": "f6f00a3f541251f0320910bb0d03c4ae14ee6d10" },
|
||||
"lsp_lines.nvim": { "branch": "main", "commit": "dbfd8e96ec2696e1ceedcd23fd70e842256e3dea" },
|
||||
"lspsaga.nvim": { "branch": "main", "commit": "a751b92b5d765a99fe3a42b9e51c046f81385e15" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "544dd1583f9bb27b393f598475c89809c4d5e86b" },
|
||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||
"markit.nvim": { "branch": "main", "commit": "6a59bcc5140bed8fcf9cec2cba8d442072b1b76d" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "62360f061d45177dda8afc1b0fd1327328540301" },
|
||||
"mason-null-ls.nvim": { "branch": "main", "commit": "de19726de7260c68d94691afb057fa73d3cc53e7" },
|
||||
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
|
||||
"mini.ai": { "branch": "main", "commit": "a7e90f110e6274262616311b93cef12cd2667a2d" },
|
||||
"mini.comment": { "branch": "main", "commit": "c8406379987c321ecdef9f53e1ca741a55002104" },
|
||||
"mini.surround": { "branch": "main", "commit": "3cb5b509ad34f2402df4b977be607a614c8c7524" },
|
||||
"neotest": { "branch": "master", "commit": "32ff2ac21135a372a42b38ae131e531e64833bd3" },
|
||||
"neotest-jest": { "branch": "main", "commit": "514fd4eae7da15fd409133086bb8e029b65ac43f" },
|
||||
"neotest-python": { "branch": "master", "commit": "2e83d2bc00acbcc1fd529dbf0a0e677cabfe6b50" },
|
||||
"neotest-rspec": { "branch": "main", "commit": "53fc108a06ae43d7f873d42ee5189c2301e33623" },
|
||||
"nerdy.nvim": { "branch": "main", "commit": "b467d6609b78d6a5f1e12cbc08fcc1ac87af20f5" },
|
||||
"noice.nvim": { "branch": "main", "commit": "448bb9c524a7601035449210838e374a30153172" },
|
||||
"none-ls.nvim": { "branch": "main", "commit": "cfa65d86e21eeb60544d5e823f6db43941322a53" },
|
||||
"nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "e38c5d837e755ce186ae51d2c48e1b387c4425c6" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
|
||||
"nvim-dap": { "branch": "master", "commit": "dcc85d12d6e2c18c5fa0f9a304d9f5e767e1401a" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "a5606bc5958db86f8d92803bea7400ee26a8d7e4" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "6c505d4220b521f3b0e7b645f6ce45fa914d0eed" },
|
||||
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
|
||||
"nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" },
|
||||
"nvim-spectre": { "branch": "master", "commit": "ba7fb777edff6c1fbbeffd343e113af64c04e90a" },
|
||||
"nvim-spider": { "branch": "main", "commit": "508b3504a350fb9a93bd0b7c0d41b8b5fc732b5e" },
|
||||
"nvim-tree.lua": { "branch": "master", "commit": "48d0e82f9434691cc50d970898142a8c084a49d6" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "1aad04ecde5ebf8f2b3eea5c6f39d38b251757f5" },
|
||||
"nvim-treesitter-endwise": { "branch": "master", "commit": "8b34305ffc28bd75a22f5a0a9928ee726a85c9a6" },
|
||||
"nvim-treesitter-refactor": { "branch": "master", "commit": "65ad2eca822dfaec2a3603119ec3cc8826a7859e" },
|
||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "33a17515b79ddb10d750320fa994098bdc3e93ef" },
|
||||
"nvim-treesitter-textsubjects": { "branch": "master", "commit": "a8d2844bba925d9450ef7ab215f3b054028288ca" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "dc5e1687ab76ee02e0f11c5ce137f530b36e98b3" },
|
||||
"nvim-ts-context-commentstring": { "branch": "main", "commit": "6b5f95aa4d24f2c629a74f2c935c702b08dbde62" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "3722e3d1fb5fe1896a104eb489e8f8651260b520" },
|
||||
"onedark.nvim": { "branch": "master", "commit": "fae34f7c635797f4bf62fb00e7d0516efa8abe37" },
|
||||
"overseer.nvim": { "branch": "master", "commit": "cbcdcbae3704c21d3ff96a1927d952b8a966b08a" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
|
||||
"rainbow-delimiters.nvim": { "branch": "master", "commit": "a727bd368e70808125b7cf589328cc595faf3d5a" },
|
||||
"refactoring.nvim": { "branch": "master", "commit": "c406fc5fb4d7ba5fce7b668637075fad6e75e9f8" },
|
||||
"ror.nvim": { "branch": "main", "commit": "9d31ad3953be83ac8dd542725ca4881c861f64a5" },
|
||||
"sniprun": { "branch": "master", "commit": "a29d7b1c313b00980015ad79fa0ab512a0729940" },
|
||||
"tabout.nvim": { "branch": "master", "commit": "923aea2613c9e7abf81e099d46086f62c7e54896" },
|
||||
"tdo.nvim": { "branch": "main", "commit": "f8d4ee275309c8a696236fcee92d78ecd98971bd" },
|
||||
"telescope-file-browser.nvim": { "branch": "master", "commit": "a46780830b576049c675680650f773bedfa8677a" },
|
||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" },
|
||||
"telescope-menufacture": { "branch": "main", "commit": "8c547e82a703fe90c7f69af04d0b4e47a59cc971" },
|
||||
"telescope-symbols.nvim": { "branch": "master", "commit": "a6d0127a53d39b9fc2af75bd169d288166118aec" },
|
||||
"telescope-undo.nvim": { "branch": "main", "commit": "51be9ae7c42fc27c0b05505e3a0162e0f05fbb6a" },
|
||||
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||
"termim.nvim": { "branch": "main", "commit": "58344167abb97bcef9bf720a762ea653a94e9daa" },
|
||||
"ts-node-action": { "branch": "master", "commit": "6d3b60754fd87963d70eadaa2f77873b447eac26" },
|
||||
"twilight.nvim": { "branch": "main", "commit": "1584c0b0a979b71fd86b18d302ba84e9aba85b1b" },
|
||||
"url-open": { "branch": "main", "commit": "9f8f4a56ac709f26aa17d8ef921b272bf2262a30" },
|
||||
"vim-closetag": { "branch": "master", "commit": "d0a562f8bdb107a50595aefe53b1a690460c3822" },
|
||||
"vim-fugitive": { "branch": "master", "commit": "0444df68cd1cdabc7453d6bd84099458327e5513" },
|
||||
"vim-rails": { "branch": "master", "commit": "2fba7907f585819a8653f0bc7dd7f437a822d9c6" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "6c1584eb76b55629702716995cca4ae2798a9cca" },
|
||||
"zen-mode.nvim": { "branch": "main", "commit": "29b292bdc58b76a6c8f294c961a8bf92c5a6ebd6" }
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
require("auto-save").setup({
|
||||
execution_message = { enabled = false },
|
||||
debounce_delay = 1000,
|
||||
})
|
||||
@@ -1,10 +0,0 @@
|
||||
vim.opt.termguicolors = true
|
||||
|
||||
local ccc = require('ccc')
|
||||
|
||||
ccc.setup({
|
||||
highlighter = {
|
||||
auto_enable = true,
|
||||
lsp = true,
|
||||
},
|
||||
})
|
||||
@@ -1,36 +0,0 @@
|
||||
local conform = require('conform')
|
||||
|
||||
conform.setup({
|
||||
formatters_by_ft = {
|
||||
lua = { "stylua" },
|
||||
svelte = { { "prettierd", "prettier" } },
|
||||
javascript = { { "prettierd", "prettier" } },
|
||||
typescript = { { "prettierd", "prettier" } },
|
||||
javascriptreact = { { "prettierd", "prettier" } },
|
||||
typescriptreact = { { "prettierd", "prettier" } },
|
||||
json = { { "prettierd", "prettier" } },
|
||||
graphql = { { "prettierd", "prettier" } },
|
||||
java = { "google-java-format" },
|
||||
kotlin = { "ktlint" },
|
||||
ruby = { "standardrb" },
|
||||
markdown = { { "prettierd", "prettier" } },
|
||||
erb = { "htmlbeautifier" },
|
||||
html = { "htmlbeautifier" },
|
||||
bash = { "beautysh" },
|
||||
proto = { "buf" },
|
||||
rust = { "rustfmt" },
|
||||
yaml = { "yamlfix" },
|
||||
toml = { "taplo" },
|
||||
css = { { "prettierd", "prettier" } },
|
||||
scss = { { "prettierd", "prettier" } },
|
||||
sh = { { "shellcheck" } },
|
||||
},
|
||||
})
|
||||
|
||||
vim.keymap.set({ "n", "v" }, "<leader>l", function()
|
||||
conform.format({
|
||||
lsp_fallback = true,
|
||||
async = false,
|
||||
timeout_ms = 1000,
|
||||
})
|
||||
end, { desc = "Format file or range (in visual mode)" })
|
||||
@@ -1,19 +0,0 @@
|
||||
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, {})
|
||||
@@ -1,57 +0,0 @@
|
||||
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, {})
|
||||
@@ -1,24 +0,0 @@
|
||||
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',
|
||||
})
|
||||
@@ -1,63 +0,0 @@
|
||||
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', ']c', function()
|
||||
if vim.wo.diff then
|
||||
return ']c'
|
||||
end
|
||||
vim.schedule(function()
|
||||
gs.next_hunk()
|
||||
end)
|
||||
return '<Ignore>'
|
||||
end, { expr = true, desc = 'Next Change' })
|
||||
|
||||
map('n', '[c', function()
|
||||
if vim.wo.diff then
|
||||
return '[c'
|
||||
end
|
||||
vim.schedule(function()
|
||||
gs.prev_hunk()
|
||||
end)
|
||||
return '<Ignore>'
|
||||
end, { expr = true, desc = 'Previous Change' })
|
||||
|
||||
map({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
|
||||
end,
|
||||
})
|
||||
@@ -1,55 +0,0 @@
|
||||
local harpoon = require('harpoon')
|
||||
harpoon:setup({})
|
||||
|
||||
local conf = require('telescope.config').values
|
||||
local function toggle_telescope(harpoon_files)
|
||||
local file_paths = {}
|
||||
for _, item in ipairs(harpoon_files.items) do
|
||||
table.insert(file_paths, item.value)
|
||||
end
|
||||
|
||||
require('telescope.pickers')
|
||||
.new({}, {
|
||||
prompt_title = 'Harpoon',
|
||||
finder = require('telescope.finders').new_table({
|
||||
results = file_paths,
|
||||
}),
|
||||
previewer = conf.file_previewer({}),
|
||||
sorter = conf.generic_sorter({}),
|
||||
})
|
||||
:find()
|
||||
end
|
||||
|
||||
vim.keymap.set('n', '<leader>ha', function()
|
||||
harpoon:list():append()
|
||||
end, { desc = 'Add Mark' })
|
||||
vim.keymap.set('n', '<leader>hh', function()
|
||||
toggle_telescope(harpoon:list())
|
||||
end, { desc = 'Telescope Marks' })
|
||||
vim.keymap.set('n', '<leader>hm', function()
|
||||
harpoon.ui:toggle_quick_menu(harpoon:list())
|
||||
end, { desc = 'Open UI' })
|
||||
vim.keymap.set('n', '<leader>hd', function()
|
||||
harpoon:list():remove(selected_entry)
|
||||
end, { desc = 'Delete Mark' }
|
||||
)
|
||||
vim.keymap.set('n', '[h', function()
|
||||
harpoon:list():prev()
|
||||
end, { desc = 'Prev Mark' })
|
||||
vim.keymap.set('n', ']h', function()
|
||||
harpoon:list():next()
|
||||
end, { desc = 'Next Mark' })
|
||||
|
||||
vim.keymap.set('n', '<leader>hk', function()
|
||||
harpoon:list():prev()
|
||||
end, { desc = 'Prev Mark' })
|
||||
vim.keymap.set('n', '<leader>hj', function()
|
||||
harpoon:list():next()
|
||||
end, { desc = 'Next Mark' })
|
||||
|
||||
for i = 1, 9 do
|
||||
vim.keymap.set('n', '<leader>h' .. i, function()
|
||||
harpoon:list():select(i)
|
||||
end, { desc = 'Mark ' .. i })
|
||||
end
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
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',
|
||||
},
|
||||
})
|
||||
@@ -1,8 +0,0 @@
|
||||
local navigator = require('Navigator')
|
||||
|
||||
navigator.setup({
|
||||
auto_save = 'current',
|
||||
disable_on_zoom = false,
|
||||
mux = 'auto',
|
||||
})
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
local nvim_tree = require('nvim-tree')
|
||||
|
||||
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
|
||||
|
||||
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 = false,
|
||||
number = true,
|
||||
relativenumber = true,
|
||||
},
|
||||
})
|
||||
@@ -1,125 +0,0 @@
|
||||
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,
|
||||
})
|
||||
@@ -1,10 +0,0 @@
|
||||
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' })
|
||||
@@ -1,22 +0,0 @@
|
||||
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' },
|
||||
})
|
||||
@@ -1,67 +0,0 @@
|
||||
local actions = require('telescope.actions')
|
||||
local action_state = require('telescope.actions.state')
|
||||
local transform_mod = require('telescope.actions.mt').transform_mod
|
||||
|
||||
local function multiopen(prompt_bufnr, method)
|
||||
local cmd_map = {
|
||||
vertical = 'vsplit',
|
||||
horizontal = 'split',
|
||||
tab = 'tabe',
|
||||
default = 'edit',
|
||||
}
|
||||
local picker = action_state.get_current_picker(prompt_bufnr)
|
||||
local multi_selection = picker:get_multi_selection()
|
||||
|
||||
if #multi_selection > 0 then
|
||||
require('telescope.pickers').on_close_prompt(prompt_bufnr)
|
||||
pcall(vim.api.nvim_set_current_win, picker.original_win_id)
|
||||
|
||||
for i, entry in ipairs(multi_selection) do
|
||||
local cmd = i == 1 and 'edit' or cmd_map[method]
|
||||
vim.cmd(string.format('%s %s', cmd, entry.value))
|
||||
end
|
||||
else
|
||||
actions['select_' .. method](prompt_bufnr)
|
||||
end
|
||||
end
|
||||
|
||||
local custom_actions = transform_mod({
|
||||
multi_selection_open_vertical = function(prompt_bufnr)
|
||||
multiopen(prompt_bufnr, 'vertical')
|
||||
end,
|
||||
multi_selection_open_horizontal = function(prompt_bufnr)
|
||||
multiopen(prompt_bufnr, 'horizontal')
|
||||
end,
|
||||
multi_selection_open_tab = function(prompt_bufnr)
|
||||
multiopen(prompt_bufnr, 'tab')
|
||||
end,
|
||||
multi_selection_open = function(prompt_bufnr)
|
||||
multiopen(prompt_bufnr, 'default')
|
||||
end,
|
||||
})
|
||||
|
||||
local function stopinsert(callback)
|
||||
return function(prompt_bufnr)
|
||||
vim.cmd.stopinsert()
|
||||
vim.schedule(function()
|
||||
callback(prompt_bufnr)
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
local multi_open_mappings = {
|
||||
i = {
|
||||
['<C-v>'] = stopinsert(custom_actions.multi_selection_open_vertical),
|
||||
['<C-x>'] = stopinsert(custom_actions.multi_selection_open_horizontal),
|
||||
['<C-t>'] = stopinsert(custom_actions.multi_selection_open_tab),
|
||||
['<CR>'] = stopinsert(custom_actions.multi_selection_open),
|
||||
},
|
||||
n = {
|
||||
['<C-v>'] = custom_actions.multi_selection_open_vertical,
|
||||
['<C-x>'] = custom_actions.multi_selection_open_horizontal,
|
||||
['<C-t>'] = custom_actions.multi_selection_open_tab,
|
||||
['<CR>'] = custom_actions.multi_selection_open,
|
||||
},
|
||||
}
|
||||
|
||||
return multi_open_mappings
|
||||
@@ -1,170 +0,0 @@
|
||||
local telescope = require('telescope')
|
||||
local actions = require('telescope.actions')
|
||||
local icons = require('lib.icons')
|
||||
|
||||
local function flash(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
|
||||
|
||||
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>'] = actions.select_default,
|
||||
['<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>'] = actions.select_default,
|
||||
['<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',
|
||||
},
|
||||
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,
|
||||
},
|
||||
},
|
||||
},
|
||||
menufacture = { mappings = { main_menu = { [{ 'i', 'n' }] = '<C-e>' } } },
|
||||
},
|
||||
})
|
||||
|
||||
require('telescope').load_extension('fzf')
|
||||
require('telescope').load_extension('menufacture')
|
||||
require('telescope').load_extension('undo')
|
||||
telescope.load_extension('marks_nvim')
|
||||
require('telescope').load_extension('harpoon')
|
||||
require('telescope').load_extension('notify')
|
||||
require('telescope').load_extension('noice')
|
||||
require('telescope').load_extension('refactoring')
|
||||
require('telescope').load_extension('file_browser')
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
require("url-open").setup({
|
||||
-- default will open url with default browser of your system or you can choose your browser like this
|
||||
-- open_app = "micorsoft-edge-stable",
|
||||
-- google-chrome, firefox, micorsoft-edge-stable, opera, brave, vivaldi
|
||||
open_app = "default",
|
||||
open_only_when_cursor_on_url = true,
|
||||
highlight_url = {
|
||||
all_urls = {
|
||||
enabled = true,
|
||||
fg = "#21d5ff", -- nil will use default color
|
||||
bg = nil, -- transparent
|
||||
underline = true,
|
||||
},
|
||||
cursor_move = {
|
||||
enabled = true,
|
||||
fg = "#199eff", -- nil will use default color
|
||||
bg = nil, -- transparent
|
||||
underline = true,
|
||||
},
|
||||
},
|
||||
deep_pattern = false,
|
||||
extra_patterns = { },
|
||||
})
|
||||
@@ -1,522 +0,0 @@
|
||||
local which_key = require('which-key')
|
||||
local icons = require('lib.icons')
|
||||
|
||||
local setup = {
|
||||
preset = 'modern',
|
||||
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
|
||||
},
|
||||
win = {
|
||||
no_overlap = true,
|
||||
border = 'rounded',
|
||||
width = 0.8,
|
||||
height = { min = 5, max = 25 },
|
||||
padding = { 1, 2 },
|
||||
title = true,
|
||||
title_pos = 'center',
|
||||
zindex = 1000,
|
||||
wo = {
|
||||
winblend = 10,
|
||||
},
|
||||
},
|
||||
layout = {
|
||||
width = { min = 20 },
|
||||
spacing = 6,
|
||||
align = 'center',
|
||||
},
|
||||
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', '<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>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>cx', '<cmd>%SnipRun<cr>', desc = 'Run File' },
|
||||
|
||||
{ '<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', '<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', '<cmd>NvimTreeToggle<cr>', desc = 'Explorer' },
|
||||
{ '<leader>ef', 'gf', desc = 'File Under Cursor' },
|
||||
{ '<leader>el', '<cmd>e ~/.config/shell/local.sh<cr>', desc = 'Local Config' },
|
||||
{ '<leader>em', '<cmd>e README.md<cr>', desc = 'Readme' },
|
||||
{ '<leader>en', '<cmd>enew<cr>', desc = 'New File' },
|
||||
{ '<leader>ez', '<cmd>e $ZDOTDIR/.zshrc<cr>', desc = 'Zsh Config' },
|
||||
|
||||
{ '<leader>f', group = ' Find' },
|
||||
{ '<leader>fa', '<cmd>lua require("telescope").extensions.menufacture.find_files()<cr>', desc = 'All Files' },
|
||||
{ '<leader>fb', '<cmd>Telescope buffers<cr>', desc = 'Buffers' },
|
||||
{ '<leader>fc', '<cmd>Telescope git_bcommits<cr>', desc = 'File Commits' },
|
||||
{ '<leader>ff', '<cmd>lua require("telescope").extensions.menufacture.git_files()<cr>', desc = 'Find files' },
|
||||
{ '<leader>fg', '<cmd>lua require("telescope").extensions.menufacture.live_grep()<cr>', desc = 'Find Text' },
|
||||
{ '<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>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>lua require("telescope").extensions.menufacture.grep_string()<cr>', desc = 'Find Word' },
|
||||
|
||||
{ '<leader>g', group = ' Git' },
|
||||
{ '<leader>gA', '<cmd>Gitsigns stage_buffer<cr>', desc = 'Stage Buffer' },
|
||||
{ '<leader>gC', '<cmd>CoAuthor<cr>', desc = 'Co-Authors' },
|
||||
{ '<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>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>Fterm 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>Git log<cr>', desc = 'Log' },
|
||||
{ '<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>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>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>n', group = ' Notes' },
|
||||
{ '<leader>nd', '<cmd>Tdo<cr>', desc = "Today's Todo" },
|
||||
{ '<leader>ne', '<cmd>TdoEntry<cr>', desc = "Today's Entry" },
|
||||
{ '<leader>nf', '<cmd>TdoFiles<cr>', desc = 'All Notes' },
|
||||
{ '<leader>ng', '<cmd>TdoFind<cr>', desc = 'Find Notes' },
|
||||
{ '<leader>nh', '<cmd>Tdo -1<cr>', desc = "Yesterday's Todo" },
|
||||
{ '<leader>nl', '<cmd>Tdo 1<cr>', desc = "Tomorrow's Todo" },
|
||||
{ '<leader>nn', '<cmd>TdoNote<cr>', desc = 'New Note' },
|
||||
{
|
||||
'<leader>ns',
|
||||
'<cmd>lua require("tdo").run_with("commit " .. vim.fn.expand("%:p")) vim.notify("Committed!")<cr>',
|
||||
desc = 'Commit Note',
|
||||
},
|
||||
{ '<leader>nt', '<cmd>TdoTodos<cr>', desc = 'Incomplete Todos' },
|
||||
{ '<leader>nx', '<cmd>TdoToggle<cr>', desc = 'Toggle Todo' },
|
||||
|
||||
{ '<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>pP', '<cmd>Lazy profile<cr>', desc = 'Profile' },
|
||||
{ '<leader>pc', '<cmd>Lazy check<cr>', desc = 'Check' },
|
||||
{ '<leader>pd', '<cmd>Lazy debug<cr>', desc = 'Debug' },
|
||||
{ '<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>pr', '<cmd>Lazy restore<cr>', desc = 'Restore' },
|
||||
{ '<leader>ps', '<cmd>Lazy sync<cr>', desc = 'Sync' },
|
||||
{ '<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>qb', '<cmd>bw<cr>', desc = 'Close Buffer' },
|
||||
{ '<leader>qd', '<cmd>bdelete<cr>', desc = 'Delete Buffer' },
|
||||
{ '<leader>qf', '<cmd>qall!<cr>', desc = 'Force Quit' },
|
||||
{ '<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>t`', '<cmd>Sterm<cr>', desc = 'Horizontal Terminal' },
|
||||
{ '<leader>tc', '<cmd>Sterm bundle exec rails console<cr>', desc = 'Rails Console' },
|
||||
{ '<leader>td', '<cmd>Sterm dexe<cr>', desc = 'Exe Launcher' },
|
||||
{ '<leader>tn', '<cmd>Sterm node<cr>', desc = 'Node' },
|
||||
{ '<leader>tp', '<cmd>Sterm bpython<cr>', desc = 'Python' },
|
||||
{ '<leader>tr', '<cmd>Sterm irb<cr>', desc = 'Ruby' },
|
||||
{ '<leader>ts', '<cmd>Sterm<cr>', desc = 'Horizontal Terminal' },
|
||||
{ '<leader>tt', '<cmd>Fterm<cr>', desc = 'Terminal' },
|
||||
{ '<leader>tv', '<cmd>Vterm<cr>', desc = 'Vertical Terminal' },
|
||||
{ '<leader>tw', '<cmd>Sterm dexe --wait-before-exit<cr>', desc = 'Exe Launcher, Wait' },
|
||||
|
||||
{ '<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>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>y', group = ' Yank' },
|
||||
{ '<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>g', group = ' Git' },
|
||||
{ '<leader>ga', '<cmd>Gitsigns stage_hunk<cr>', desc = 'Stage Hunk' },
|
||||
{ '<leader>gr', '<cmd>Gitsigns reset_hunk<cr>', desc = 'Reset 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>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-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' },
|
||||
}
|
||||
|
||||
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(n_mappings)
|
||||
which_key.add(v_mappings)
|
||||
which_key.add(no_leader_mappings)
|
||||
|
||||
if vim.fn.exists('$TMUX') == 1 then
|
||||
which_key.add(tmux_mappings)
|
||||
end
|
||||
@@ -1,87 +0,0 @@
|
||||
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 = {
|
||||
header = { '',
|
||||
|
||||
' ███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗ ',
|
||||
' ████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║ ',
|
||||
' ██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║ ',
|
||||
' ██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║ ',
|
||||
' ██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║ ',
|
||||
' ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ',
|
||||
'',},
|
||||
week_header = {
|
||||
enable = false,
|
||||
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 = 'lua require("telescope").extensions.menufacture.find_files()',
|
||||
key = 'f',
|
||||
},
|
||||
{
|
||||
desc = icons.ui.Search .. 'Search',
|
||||
group = 'Label',
|
||||
action = 'lua require("telescope").extensions.menufacture.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 = function()
|
||||
local info = {}
|
||||
local fortune = require("fortune").get_fortune()
|
||||
local footer = vim.list_extend(info, fortune)
|
||||
return footer
|
||||
end,
|
||||
},
|
||||
})
|
||||
|
||||
-- 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
|
||||
@@ -1,27 +0,0 @@
|
||||
local dressing = require('dressing')
|
||||
|
||||
dressing.setup({
|
||||
win_options = {
|
||||
winblend = 10,
|
||||
winhighlight = 'Normal:DressingInputNormalFloat,NormalFloat:DressingInputNormalFloat,FloatBorder:DressingInputFloatBorder',
|
||||
},
|
||||
input = {
|
||||
enabled = true,
|
||||
default_prompt = 'Input:',
|
||||
prompt_align = 'center',
|
||||
insert_only = true,
|
||||
start_in_insert = true,
|
||||
border = 'rounded',
|
||||
relative = 'editor',
|
||||
prefer_width = 40,
|
||||
width = nil,
|
||||
max_width = { 140, 0.9 },
|
||||
min_width = { 20, 0.2 },
|
||||
get_config = nil,
|
||||
},
|
||||
select = {
|
||||
enabled = true,
|
||||
backend = { 'telescope', 'fzf_lua', 'fzf', 'nui', 'builtin'},
|
||||
trim_prompt = true,
|
||||
},
|
||||
})
|
||||
@@ -1,27 +0,0 @@
|
||||
local highlight = {
|
||||
'RainbowRed',
|
||||
'RainbowYellow',
|
||||
'RainbowBlue',
|
||||
'RainbowOrange',
|
||||
'RainbowGreen',
|
||||
'RainbowViolet',
|
||||
'RainbowCyan',
|
||||
}
|
||||
local hooks = require('ibl.hooks')
|
||||
hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
|
||||
vim.api.nvim_set_hl(0, 'RainbowRed', { fg = '#E06C75' })
|
||||
vim.api.nvim_set_hl(0, 'RainbowYellow', { fg = '#E5C07B' })
|
||||
vim.api.nvim_set_hl(0, 'RainbowBlue', { fg = '#61AFEF' })
|
||||
vim.api.nvim_set_hl(0, 'RainbowOrange', { fg = '#D19A66' })
|
||||
vim.api.nvim_set_hl(0, 'RainbowGreen', { fg = '#98C379' })
|
||||
vim.api.nvim_set_hl(0, 'RainbowViolet', { fg = '#C678DD' })
|
||||
vim.api.nvim_set_hl(0, 'RainbowCyan', { fg = '#56B6C2' })
|
||||
end)
|
||||
|
||||
vim.g.rainbow_delimiters = { highlight = highlight }
|
||||
require('ibl').setup({
|
||||
scope = { highlight = highlight },
|
||||
exclude = { filetypes = { 'dashboard', 'toggleterm' } },
|
||||
})
|
||||
|
||||
hooks.register(hooks.type.SCOPE_HIGHLIGHT, hooks.builtin.scope_highlight_from_extmark)
|
||||
@@ -1,196 +0,0 @@
|
||||
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 = {},
|
||||
},
|
||||
})
|
||||
@@ -1,265 +0,0 @@
|
||||
local border_style = {
|
||||
top_left = "┌", top = "─", top_right = "┐",
|
||||
left = "│", right = "│",
|
||||
bottom_left = "└", bottom = "─", bottom_right = "┘",
|
||||
}
|
||||
local rounded_border_style = {
|
||||
top_left = "╭", top = "─", top_right = "╮",
|
||||
left = "│", right = "│",
|
||||
bottom_left = "╰", bottom = "─", bottom_right = "╯",
|
||||
}
|
||||
require("noice").setup({
|
||||
cmdline = {
|
||||
enabled = true, -- enables the Noice cmdline UI
|
||||
view = "cmdline_popup", -- view for rendering the cmdline. Change to `cmdline` to get a classic cmdline at the bottom
|
||||
opts = {}, -- global options for the cmdline. See section on views
|
||||
---@type table<string, CmdlineFormat>
|
||||
format = {
|
||||
-- conceal: (default=true) This will hide the text in the cmdline that matches the pattern.
|
||||
-- view: (default is cmdline view)
|
||||
-- opts: any options passed to the view
|
||||
-- icon_hl_group: optional hl_group for the icon
|
||||
-- title: set to anything or empty string to hide
|
||||
cmdline = { pattern = "^:", icon = " ", lang = "vim", title = " Cmdline " },
|
||||
search_down = { kind = "search", pattern = "^/", icon = " ", lang = "regex", title = " Search Down " },
|
||||
search_up = { kind = "search", pattern = "^%?", icon = " ", lang = "regex" , title = " Search Up " },
|
||||
filter = { pattern = "^:%s*!", icon = " ", lang = "bash" , title = "Filter" },
|
||||
lua = { pattern = { "^:%s*lua%s+", "^:%s*lua%s*=%s*", "^:%s*=%s*" }, icon = " ", lang = "lua", title = " Lua " },
|
||||
help = { pattern = "^:%s*he?l?p?%s+", icon = " ", title = " Help " },
|
||||
input = {}, -- Used by input()
|
||||
-- lua = false, -- to disable a format, set to `false`
|
||||
},
|
||||
},
|
||||
messages = {
|
||||
-- NOTE: If you enable messages, then the cmdline is enabled automatically.
|
||||
-- This is a current Neovim limitation.
|
||||
enabled = true, -- enables the Noice messages UI
|
||||
view = "mini", -- default view for messages
|
||||
view_error = "notify", -- view for errors
|
||||
view_warn = "notify", -- view for warnings
|
||||
view_history = "messages", -- view for :messages
|
||||
-- view_search = false,
|
||||
view_search = "virtualtext", -- view for search count messages. Set to `false` to disable
|
||||
},
|
||||
popupmenu = {
|
||||
enabled = true, -- enables the Noice popupmenu UI
|
||||
---@type 'nui'|'cmp'
|
||||
backend = "cmp", -- backend to use to show regular cmdline completions
|
||||
---@type NoicePopupmenuItemKind|false
|
||||
-- Icons for completion item kinds (see defaults at noice.config.icons.kinds)
|
||||
kind_icons = {}, -- set to `false` to disable icons
|
||||
},
|
||||
-- default options for require('noice').redirect
|
||||
-- see the section on Command Redirection
|
||||
---@type NoiceRouteConfig
|
||||
redirect = {
|
||||
view = "popup",
|
||||
filter = { event = "msg_show" },
|
||||
},
|
||||
-- You can add any custom commands below that will be available with `:Noice command`
|
||||
---@type table<string, NoiceCommand>
|
||||
commands = {
|
||||
history = {
|
||||
-- options for the message history that you get with `:Noice`
|
||||
view = "split",
|
||||
opts = { enter = true, format = "details" },
|
||||
filter = {
|
||||
any = {
|
||||
{ event = "notify" },
|
||||
{ error = true },
|
||||
{ warning = true },
|
||||
{ event = "msg_show", kind = { "" } },
|
||||
{ event = "lsp", kind = "message" },
|
||||
},
|
||||
},
|
||||
},
|
||||
-- :Noice last
|
||||
last = {
|
||||
view = "popup",
|
||||
opts = { enter = true, format = "details" },
|
||||
filter = {
|
||||
any = {
|
||||
{ event = "notify" },
|
||||
{ error = true },
|
||||
{ warning = true },
|
||||
{ event = "msg_show", kind = { "" } },
|
||||
{ event = "lsp", kind = "message" },
|
||||
},
|
||||
},
|
||||
filter_opts = { count = 1 },
|
||||
},
|
||||
-- :Noice errors
|
||||
errors = {
|
||||
-- options for the message history that you get with `:Noice`
|
||||
view = "popup",
|
||||
opts = { enter = true, format = "details" },
|
||||
filter = { error = true },
|
||||
filter_opts = { reverse = true },
|
||||
},
|
||||
},
|
||||
notify = {
|
||||
-- Noice can be used as `vim.notify` so you can route any notification like other messages
|
||||
-- Notification messages have their level and other properties set.
|
||||
-- event is always "notify" and kind can be any log level as a string
|
||||
-- The default routes will forward notifications to nvim-notify
|
||||
-- Benefit of using Noice for this is the routing and consistent history view
|
||||
enabled = true,
|
||||
view = "notify",
|
||||
},
|
||||
lsp = {
|
||||
progress = {
|
||||
enabled = true,
|
||||
-- Lsp Progress is formatted using the builtins for lsp_progress. See config.format.builtin
|
||||
-- See the section on formatting for more details on how to customize.
|
||||
--- @type NoiceFormat|string
|
||||
format = "lsp_progress",
|
||||
--- @type NoiceFormat|string
|
||||
format_done = "lsp_progress_done",
|
||||
throttle = 1000 / 30, -- frequency to update lsp progress message
|
||||
view = "mini",
|
||||
},
|
||||
override = {
|
||||
-- override the default lsp markdown formatter with Noice
|
||||
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
||||
-- override the lsp markdown formatter with Noice
|
||||
["vim.lsp.util.stylize_markdown"] = true,
|
||||
-- override cmp documentation with Noice (needs the other options to work)
|
||||
["cmp.entry.get_documentation"] = true,
|
||||
},
|
||||
hover = {
|
||||
enabled = true,
|
||||
view = nil, -- when nil, use defaults from documentation
|
||||
---@type NoiceViewOptions
|
||||
opts = {}, -- merged with defaults from documentation
|
||||
},
|
||||
signature = {
|
||||
enabled = true,
|
||||
auto_open = {
|
||||
enabled = true,
|
||||
trigger = true, -- Automatically show signature help when typing a trigger character from the LSP
|
||||
luasnip = true, -- Will open signature help when jumping to Luasnip insert nodes
|
||||
throttle = 50, -- Debounce lsp signature help request by 50ms
|
||||
},
|
||||
view = nil, -- when nil, use defaults from documentation
|
||||
---@type NoiceViewOptions
|
||||
opts = {}, -- merged with defaults from documentation
|
||||
},
|
||||
message = {
|
||||
-- Messages shown by lsp servers
|
||||
enabled = true,
|
||||
view = "mini",
|
||||
opts = {},
|
||||
},
|
||||
-- defaults for hover and signature help
|
||||
documentation = {
|
||||
view = "hover",
|
||||
---@type NoiceViewOptions
|
||||
opts = {
|
||||
lang = "markdown",
|
||||
replace = true,
|
||||
render = "plain",
|
||||
format = { "{message}" },
|
||||
win_options = { concealcursor = "n", conceallevel = 3 },
|
||||
},
|
||||
},
|
||||
},
|
||||
markdown = {
|
||||
hover = {
|
||||
["|(%S-)|"] = vim.cmd.help, -- vim help links
|
||||
["%[.-%]%((%S-)%)"] = require("noice.util").open, -- markdown links
|
||||
},
|
||||
highlights = {
|
||||
["|%S-|"] = "@text.reference",
|
||||
["@%S+"] = "@parameter",
|
||||
["^%s*(Parameters:)"] = "@text.title",
|
||||
["^%s*(Return:)"] = "@text.title",
|
||||
["^%s*(See also:)"] = "@text.title",
|
||||
["{%S-}"] = "@parameter",
|
||||
},
|
||||
},
|
||||
health = {
|
||||
checker = true, -- Disable if you don't want health checks to run
|
||||
},
|
||||
smart_move = {
|
||||
-- noice tries to move out of the way of existing floating windows.
|
||||
enabled = true, -- you can disable this behaviour here
|
||||
-- add any filetypes here, that shouldn't trigger smart move.
|
||||
excluded_filetypes = { "cmp_menu", "cmp_docs", "notify" },
|
||||
},
|
||||
---@type NoicePresets
|
||||
presets = {
|
||||
-- you can enable a preset by setting it to true, or a table that will override the preset config
|
||||
-- you can also add custom presets that you can enable/disable with enabled=true
|
||||
bottom_search = false, -- use a classic bottom cmdline for search
|
||||
command_palette = false, -- position the cmdline and popupmenu together
|
||||
long_message_to_split = true, -- long messages will be sent to a split
|
||||
inc_rename = true, -- enables an input dialog for inc-rename.nvim
|
||||
lsp_doc_border = true, -- add a border to hover docs and signature help
|
||||
},
|
||||
throttle = 1000 / 30, -- how frequently does Noice need to check for ui updates? This has no effect when in blocking mode.
|
||||
---@type NoiceConfigViews
|
||||
views = {
|
||||
cmdline_popup = {
|
||||
position = {
|
||||
row = "50%",
|
||||
col = "50%",
|
||||
},
|
||||
size = {
|
||||
width = "40%",
|
||||
height = "auto",
|
||||
},
|
||||
border = {
|
||||
style = rounded_border_style,
|
||||
-- style = "none",
|
||||
},
|
||||
filter_options = {},
|
||||
win_options = {
|
||||
winhighlight = { Normal = "TelescopePromptNormal", FloatBorder = "DiagnosticInfo" },
|
||||
},
|
||||
},
|
||||
split = {
|
||||
enter = true,
|
||||
},
|
||||
notify = {
|
||||
size = {
|
||||
width = 30
|
||||
}
|
||||
},
|
||||
mini = {
|
||||
win_options = {
|
||||
winblend = 0,
|
||||
-- winhighlight = {}
|
||||
}
|
||||
},
|
||||
popupmenu = {
|
||||
relative = "editor",
|
||||
position = {
|
||||
row = 8,
|
||||
col = "50%",
|
||||
},
|
||||
size = {
|
||||
width = 60,
|
||||
height = 10,
|
||||
},
|
||||
border = {
|
||||
style = rounded_border_style,
|
||||
padding = { 0, 1 },
|
||||
},
|
||||
win_options = {
|
||||
winhighlight = { Normal = "TelescopePromptNormal", FloatBorder = "DiagnosticInfo" },
|
||||
},
|
||||
},
|
||||
}, ---@see section on views
|
||||
---@type NoiceRouteConfig[]
|
||||
routes = {
|
||||
{
|
||||
filter = {
|
||||
event = "msg_show",
|
||||
-- kind = "search_count",
|
||||
find = "written"
|
||||
},
|
||||
opts = { skip = true },
|
||||
},
|
||||
}, --- @see section on routes
|
||||
})
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
vim.notify = require("notify")
|
||||
|
||||
require("notify").setup({
|
||||
background_colour = "Normal",
|
||||
fps = 30,
|
||||
icons = {
|
||||
DEBUG = " ",
|
||||
ERROR = " ",
|
||||
INFO = " ",
|
||||
TRACE = "✎",
|
||||
WARN = " "
|
||||
},
|
||||
level = 2,
|
||||
minimum_width = 30,
|
||||
maximum_width = 30,
|
||||
render = "wrapped-compact",
|
||||
stages = "slide",
|
||||
timeout = 2000
|
||||
})
|
||||
@@ -1,26 +0,0 @@
|
||||
local onedark = require('onedark')
|
||||
local util = require('lib.util')
|
||||
|
||||
onedark.setup({
|
||||
style = 'deep',
|
||||
transparent = true,
|
||||
term_colors = false,
|
||||
ending_tildes = false,
|
||||
cmp_itemkind_reverse = false,
|
||||
|
||||
toggle_style_key = '<leader>ot',
|
||||
toggle_style_list = { 'dark', 'darker', 'cool', 'warm', 'warmer', 'deep', 'light' },
|
||||
|
||||
-- Options are italic, bold, underline, none and combos 'italic,bold'
|
||||
code_style = {
|
||||
comments = 'italic',
|
||||
keywords = 'none',
|
||||
functions = 'none',
|
||||
strings = 'none',
|
||||
variables = 'none',
|
||||
},
|
||||
|
||||
lualine = { transparent = true },
|
||||
diagnostics = { darker = true, undercurl = true, background = false },
|
||||
})
|
||||
onedark.load()
|
||||
@@ -1,19 +0,0 @@
|
||||
local rainbow_delimiters = require('rainbow-delimiters')
|
||||
|
||||
vim.g.rainbow_delimiters = {
|
||||
strategy = {
|
||||
[''] = rainbow_delimiters.strategy['global'],
|
||||
commonlisp = rainbow_delimiters.strategy['local'],
|
||||
},
|
||||
query = { [''] = 'rainbow-delimiters', lua = 'rainbow-blocks' },
|
||||
highlight = {
|
||||
'RainbowDelimiterRed',
|
||||
'RainbowDelimiterYellow',
|
||||
'RainbowDelimiterBlue',
|
||||
'RainbowDelimiterOrange',
|
||||
'RainbowDelimiterGreen',
|
||||
'RainbowDelimiterViolet',
|
||||
'RainbowDelimiterCyan',
|
||||
},
|
||||
blacklist = {},
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
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 = {},
|
||||
})
|
||||
@@ -1,70 +0,0 @@
|
||||
local wilder = require('wilder')
|
||||
|
||||
wilder.setup({ modes = { ':', '/', '?' } })
|
||||
|
||||
wilder.set_option('pipeline', {
|
||||
wilder.branch(
|
||||
wilder.python_file_finder_pipeline({
|
||||
file_command = { 'rg', '--files', '--hidden' },
|
||||
dir_command = { 'fd', '-td' },
|
||||
filters = { 'fuzzy_filter', 'difflib_sorter' },
|
||||
}),
|
||||
wilder.cmdline_pipeline({
|
||||
fuzzy = 2,
|
||||
}),
|
||||
wilder.vim_search_pipeline({
|
||||
fuzzy = 2,
|
||||
}),
|
||||
wilder.python_search_pipeline()
|
||||
),
|
||||
})
|
||||
|
||||
local accent = wilder.make_hl('WilderAccent', 'Pmenu', { { a = 1 }, { a = 1 }, { foreground = '#00AAFF' } })
|
||||
local icons = require('lib.icons')
|
||||
|
||||
local popupmenu_renderer = wilder.popupmenu_renderer(wilder.popupmenu_palette_theme({
|
||||
border = 'rounded',
|
||||
max_height = '75%',
|
||||
min_height = 0,
|
||||
prompt_position = 'top',
|
||||
reverse = 0,
|
||||
empty_message = wilder.popupmenu_empty_message_with_spinner(),
|
||||
highlighter = wilder.basic_highlighter(),
|
||||
highlights = {
|
||||
accent = accent,
|
||||
},
|
||||
left = {
|
||||
' ',
|
||||
wilder.popupmenu_devicons(),
|
||||
wilder.popupmenu_buffer_flags({
|
||||
flags = ' a + ',
|
||||
icons = {
|
||||
['+'] = icons.ui.Pencil,
|
||||
a = icons.documents.File,
|
||||
h = icons.documents.FileEmpty,
|
||||
},
|
||||
}),
|
||||
},
|
||||
right = {
|
||||
' ',
|
||||
wilder.popupmenu_scrollbar(),
|
||||
},
|
||||
}))
|
||||
|
||||
local wildmenu_renderer = wilder.wildmenu_renderer({
|
||||
highlighter = wilder.basic_highlighter(),
|
||||
highlights = { accent = accent },
|
||||
separator = ' | ',
|
||||
left = { ' ', wilder.wildmenu_spinner(), ' ' },
|
||||
right = { ' ', wilder.wildmenu_index() },
|
||||
})
|
||||
|
||||
wilder.set_option(
|
||||
'renderer',
|
||||
wilder.renderer_mux({
|
||||
[':'] = popupmenu_renderer,
|
||||
['/'] = popupmenu_renderer,
|
||||
['?'] = popupmenu_renderer,
|
||||
substitute = wildmenu_renderer,
|
||||
})
|
||||
)
|
||||
@@ -1,31 +0,0 @@
|
||||
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,
|
||||
})
|
||||
Reference in new issue
Block a user