wip
This commit is contained in:
1 parent
9604e54bc6
commit
cd2fa35a4f
31 files changed
+1745
-1617
No files matched your search
+194
-278
@@ -1,289 +1,205 @@
|
||||
--Coding related
|
||||
|
||||
return {
|
||||
{
|
||||
"max397574/better-escape.nvim",
|
||||
event = "InsertEnter",
|
||||
opts = {
|
||||
k = function()
|
||||
vim.api.nvim_input("<esc>")
|
||||
local current_line = vim.api.nvim_get_current_line()
|
||||
if current_line:match("^%s+j$") then
|
||||
vim.schedule(function()
|
||||
vim.api.nvim_set_current_line("")
|
||||
end)
|
||||
end
|
||||
end,
|
||||
},
|
||||
},
|
||||
{
|
||||
"mg979/vim-visual-multi",
|
||||
event = "BufReadPre",
|
||||
keys = {
|
||||
{
|
||||
"<C-S-Down>",
|
||||
":call vm#commands#add_cursor_down(0, v:count1)<cr>",
|
||||
desc = "Add Cursor Down",
|
||||
mode = { "n" },
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
"<C-S-Up>",
|
||||
":call vm#commands#add_cursor_up(0, v:count1)<cr>",
|
||||
desc = "Add Cursor Up",
|
||||
mode = { "n" },
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
"<M-S-j>",
|
||||
":call vm#commands#add_cursor_down(0, v:count1)<cr>",
|
||||
desc = "Add Cursor Down",
|
||||
mode = { "n" },
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
"<M-S-k>",
|
||||
":call vm#commands#add_cursor_up(0, v:count1)<cr>",
|
||||
desc = "Add Cursor Down",
|
||||
mode = { "n" },
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
"<M-d>",
|
||||
":call vm#commands#ctrln(v:count1)<cr>",
|
||||
desc = "Multi Edit Next",
|
||||
mode = { "n" },
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
vim.g.VM_default_mappings = 0
|
||||
vim.g.VM_silent_exit = 1
|
||||
vim.g.VM_set_statusline = 0
|
||||
vim.g.VM_maps = {
|
||||
["Find Under"] = "",
|
||||
}
|
||||
{
|
||||
'max397574/better-escape.nvim',
|
||||
event = 'InsertEnter',
|
||||
opts = {
|
||||
k = function()
|
||||
vim.api.nvim_input('<esc>')
|
||||
local current_line = vim.api.nvim_get_current_line()
|
||||
if current_line:match('^%s+j$') then
|
||||
vim.schedule(function()
|
||||
vim.api.nvim_set_current_line('')
|
||||
end)
|
||||
end
|
||||
end,
|
||||
},
|
||||
},
|
||||
{
|
||||
'mg979/vim-visual-multi',
|
||||
event = 'BufReadPre',
|
||||
config = function()
|
||||
vim.g.VM_default_mappings = 0
|
||||
vim.g.VM_silent_exit = 1
|
||||
vim.g.VM_set_statusline = 0
|
||||
vim.g.VM_maps = {
|
||||
['Find Under'] = '',
|
||||
}
|
||||
|
||||
vim.g.VM_maps["I BS"] = ""
|
||||
vim.g.VM_maps["I CtrlC"] = ""
|
||||
vim.g.VM_maps["I CtrlN"] = ""
|
||||
end,
|
||||
},
|
||||
{
|
||||
"CRAG666/code_runner.nvim",
|
||||
config = true,
|
||||
vim.keymap.set("n", "<leader>rc", "<cmd>RunCode<CR>", { desc = "Run Code " }),
|
||||
vim.keymap.set("n", "<leader>rf", "<cmd>RunFile<CR>", { desc = "Run Code File " }),
|
||||
vim.keymap.set("n", "<leader>rp", "<cmd>RunProject<CR>", { desc = "Run Code Project " }),
|
||||
vim.keymap.set("n", "<leader>rx", "<cmd>RunClose<CR>", { desc = "Close Code Run " }),
|
||||
opts = {
|
||||
filetype = {
|
||||
python = "python3 -u",
|
||||
c = "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir/$fileNameWithoutExt",
|
||||
cpp = "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir/$fileNameWithoutExt",
|
||||
sh = "bash",
|
||||
go = "go run",
|
||||
lua = "lua",
|
||||
julia = "julia",
|
||||
typescript = "ts-node",
|
||||
javascript = "node",
|
||||
rust = "cd $dir && cargo run",
|
||||
php = "php",
|
||||
java = "cd $dir && javac $fileName && java $fileNameWithoutExt",
|
||||
kotlin = "cd $dir && kotlinc $fileName -include-runtime -d $fileNameWithoutExt.jar && java -jar $fileNameWithoutExt.jar",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
event = { "BufReadPost", "BufNewFile" },
|
||||
dependencies = {
|
||||
"rafamadriz/friendly-snippets",
|
||||
"mstuttgart/odoo-snippets",
|
||||
},
|
||||
opts = {
|
||||
history = true,
|
||||
updateevents = "TextChanged,TextChangedI",
|
||||
},
|
||||
keys = function()
|
||||
return {}
|
||||
end,
|
||||
config = function()
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
end,
|
||||
},
|
||||
{
|
||||
"altermo/ultimate-autopair.nvim",
|
||||
event = { "InsertEnter", "CmdlineEnter" },
|
||||
branch = "v0.6", --recommended as each new version will have breaking changes
|
||||
opts = {},
|
||||
},
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
event = { "InsertEnter", "CmdlineEnter" },
|
||||
dependencies = {
|
||||
"hrsh7th/cmp-buffer", -- source for text in buffer
|
||||
"hrsh7th/cmp-path", -- source for file system paths
|
||||
"hrsh7th/cmp-cmdline",
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
"hrsh7th/cmp-nvim-lua",
|
||||
"saadparwaiz1/cmp_luasnip", --for autocomplete
|
||||
"hrsh7th/cmp-nvim-lsp-signature-help",
|
||||
"onsails/lspkind.nvim", -- vs-code like pictograms
|
||||
"L3MON4D3/LuaSnip", -- snippets
|
||||
"rafamadriz/friendly-snippets", -- useful snippets
|
||||
},
|
||||
config = function()
|
||||
require("configs.cmp")
|
||||
end,
|
||||
},
|
||||
{
|
||||
"Exafunction/codeium.vim",
|
||||
event = "InsertEnter",
|
||||
config = function()
|
||||
local cmp = require("cmp")
|
||||
cmp.event:on("menu_opened", function()
|
||||
vim.g.codeium_manual = true
|
||||
vim.fn["codeium#Clear"]()
|
||||
end)
|
||||
cmp.event:on("menu_closed", function()
|
||||
vim.g.codeium_manual = false
|
||||
vim.fn["codeium#Complete"]()
|
||||
end)
|
||||
vim.g.VM_maps['I BS'] = ''
|
||||
vim.g.VM_maps['I CtrlC'] = ''
|
||||
vim.g.VM_maps['I CtrlN'] = ''
|
||||
end,
|
||||
},
|
||||
{
|
||||
'michaelb/sniprun',
|
||||
build = 'bash ./install.sh',
|
||||
cmd = 'SnipRun',
|
||||
config = function()
|
||||
local sniprun = require('sniprun')
|
||||
sniprun.setup({
|
||||
display = { 'VirtualTextOk', 'VirtualTextErr' },
|
||||
show_no_output = { 'Classic', 'TempFloatingWindow' },
|
||||
display_options = {
|
||||
terminal_width = 45,
|
||||
notification_timeout = 5,
|
||||
},
|
||||
|
||||
vim.g.codeium_filetypes = {
|
||||
TelescopePrompt = false,
|
||||
DressingInput = false,
|
||||
["neo-tree-popup"] = false,
|
||||
["dap-repl"] = false,
|
||||
}
|
||||
inline_messages = 0,
|
||||
borders = 'single',
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
'L3MON4D3/LuaSnip',
|
||||
event = { 'BufReadPost', 'BufNewFile' },
|
||||
dependencies = {
|
||||
'rafamadriz/friendly-snippets',
|
||||
'mstuttgart/odoo-snippets',
|
||||
},
|
||||
opts = {
|
||||
history = true,
|
||||
updateevents = 'TextChanged,TextChangedI',
|
||||
},
|
||||
keys = function()
|
||||
return {}
|
||||
end,
|
||||
config = function()
|
||||
require('luasnip.loaders.from_vscode').lazy_load()
|
||||
end,
|
||||
},
|
||||
{
|
||||
'altermo/ultimate-autopair.nvim',
|
||||
event = { 'InsertEnter', 'CmdlineEnter' },
|
||||
branch = 'v0.6', --recommended as each new version will have breaking changes
|
||||
opts = {},
|
||||
},
|
||||
{
|
||||
'hrsh7th/nvim-cmp',
|
||||
event = { 'InsertEnter', 'CmdlineEnter' },
|
||||
dependencies = {
|
||||
'hrsh7th/cmp-buffer', -- source for text in buffer
|
||||
'hrsh7th/cmp-path', -- source for file system paths
|
||||
'hrsh7th/cmp-cmdline',
|
||||
'hrsh7th/cmp-nvim-lsp',
|
||||
'hrsh7th/cmp-nvim-lua',
|
||||
'saadparwaiz1/cmp_luasnip', --for autocomplete
|
||||
'hrsh7th/cmp-nvim-lsp-signature-help',
|
||||
'onsails/lspkind.nvim', -- vs-code like pictograms
|
||||
'L3MON4D3/LuaSnip', -- snippets
|
||||
'rafamadriz/friendly-snippets', -- useful snippets
|
||||
},
|
||||
config = function()
|
||||
require('plugins.configs.cmp')
|
||||
end,
|
||||
},
|
||||
{
|
||||
'Exafunction/codeium.vim',
|
||||
event = 'InsertEnter',
|
||||
config = function()
|
||||
local cmp = require('cmp')
|
||||
cmp.event:on('menu_opened', function()
|
||||
vim.g.codeium_manual = true
|
||||
vim.fn['codeium#Clear']()
|
||||
end)
|
||||
cmp.event:on('menu_closed', function()
|
||||
vim.g.codeium_manual = false
|
||||
vim.fn['codeium#Complete']()
|
||||
end)
|
||||
|
||||
local opts = { expr = true, silent = true }
|
||||
vim.g.codeium_disable_bindings = 1
|
||||
vim.g.codeium_filetypes = {
|
||||
TelescopePrompt = false,
|
||||
DressingInput = false,
|
||||
['neo-tree-popup'] = false,
|
||||
['dap-repl'] = false,
|
||||
}
|
||||
|
||||
vim.keymap.set("i", "<M-CR>", function()
|
||||
return vim.fn["codeium#Accept"]()
|
||||
end, opts)
|
||||
local opts = { expr = true, silent = true }
|
||||
vim.g.codeium_disable_bindings = 1
|
||||
|
||||
vim.keymap.set("n", "<leader>ch", function()
|
||||
return vim.fn["codeium#Chat"]()
|
||||
end, { desc = "Chat with IA (Codeium)" })
|
||||
vim.keymap.set('i', '<M-CR>', function()
|
||||
return vim.fn['codeium#Accept']()
|
||||
end, opts)
|
||||
|
||||
vim.keymap.set("i", "<M-]>", function()
|
||||
return vim.fn["codeium#CycleCompletions"](1)
|
||||
end, opts)
|
||||
-- vim.keymap.set('n', '<leader>ch', function()
|
||||
-- return vim.fn['codeium#Chat']()
|
||||
-- end, { desc = 'Chat with IA (Codeium)' })
|
||||
|
||||
vim.keymap.set("i", "<M-[>", function()
|
||||
return vim.fn["codeium#CycleCompletions"](-1)
|
||||
end, opts)
|
||||
vim.keymap.set('i', '<M-]>', function()
|
||||
return vim.fn['codeium#CycleCompletions'](1)
|
||||
end, opts)
|
||||
|
||||
vim.keymap.set("i", "<M-c>", function()
|
||||
return vim.fn["codeium#Clear"]()
|
||||
end, opts)
|
||||
vim.keymap.set('i', '<M-[>', function()
|
||||
return vim.fn['codeium#CycleCompletions'](-1)
|
||||
end, opts)
|
||||
|
||||
vim.keymap.set("n", "<leader>cI", "<cmd>CodeiumToggle<cr>", { desc = "Toggle IA (Codeium)" })
|
||||
end,
|
||||
},
|
||||
{
|
||||
"nacro90/numb.nvim",
|
||||
event = "CmdlineEnter",
|
||||
config = function()
|
||||
require("numb").setup({
|
||||
show_numbers = true, -- Enable 'number' for the window while peeking
|
||||
show_cursorline = true, -- Enable 'cursorline' for the window while peeking
|
||||
hide_relativenumbers = true, -- Enable turning off 'relativenumber' for the window while peeking
|
||||
number_only = false, -- Peek only when the command is only a number instead of when it starts with a number
|
||||
centered_peeking = true, -- Peeked line will be centered relative to window
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"NStefan002/screenkey.nvim",
|
||||
cmd = "Screenkey",
|
||||
version = "*",
|
||||
vim.keymap.set("n", "<leader>kt", "<cmd>Screenkey<CR>", { desc = "Toggle keys" }),
|
||||
config = function()
|
||||
require("screenkey").setup({
|
||||
win_opts = {
|
||||
relative = "editor",
|
||||
anchor = "SE",
|
||||
width = 40,
|
||||
height = 1,
|
||||
border = "single",
|
||||
},
|
||||
compress_after = 3,
|
||||
clear_after = 3,
|
||||
disable = {
|
||||
filetypes = {}, -- for example: "toggleterm"
|
||||
buftypes = {}, -- for example: "terminal"
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"gbprod/yanky.nvim",
|
||||
event = "BufReadPost",
|
||||
keys = {
|
||||
{ "<C-n>", "<Plug>(YankyCycleForward)" },
|
||||
{ "<C-p>", "<Plug>(YankyCycleBackward)" },
|
||||
{
|
||||
"<leader>yp",
|
||||
function()
|
||||
require("telescope").extensions.yank_history.yank_history({})
|
||||
end,
|
||||
desc = "Open Yank History",
|
||||
},
|
||||
{ "y", "<Plug>(YankyYank)", mode = { "n", "x" }, desc = "Yank text" },
|
||||
{ "p", "<Plug>(YankyPutAfter)", mode = { "n", "x" }, desc = "Put yanked text after cursor" },
|
||||
{ "P", "<Plug>(YankyPutBefore)", mode = { "n", "x" }, desc = "Put yanked text before cursor" },
|
||||
{ "gp", "<Plug>(YankyGPutAfter)", mode = { "n", "x" }, desc = "Put yanked text after selection" },
|
||||
{ "gP", "<Plug>(YankyGPutBefore)", mode = { "n", "x" }, desc = "Put yanked text before selection" },
|
||||
-- This is not plugin keymaps
|
||||
{ "<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" },
|
||||
},
|
||||
opts = {
|
||||
highlight = {
|
||||
timer = 150,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
{
|
||||
"LudoPinelli/comment-box.nvim",
|
||||
opts = {},
|
||||
vscode = true,
|
||||
keys = {
|
||||
{ "<leader>Cb", "<cmd>CBccbox<CR>", mode = { "n", "v" }, desc = "Comment Box" },
|
||||
{ "<leader>Ct", "<cmd>CBllline<CR>", mode = { "n", "v" }, desc = "Tiled line" },
|
||||
{ "<leader>Cl", "<cmd>CBline<CR>", desc = "Line" },
|
||||
{ "<leader>Cm", "<cmd>CBllbox14<CR>", mode = { "n", "v" }, desc = "Marked" },
|
||||
{ "<leader>Cc", "<cmd>CBcatalog<CR>", desc = "Catalog" },
|
||||
{ "<leader>Cd", "<cmd>CBd<CR>", mode = { "n", "v" }, desc = "Delete Comment Style" },
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"m-demare/hlargs.nvim",
|
||||
event = { "BufReadPost", "BufNewFile" },
|
||||
},
|
||||
{
|
||||
"numToStr/Navigator.nvim",
|
||||
keys = {
|
||||
{ "<C-h>", "<cmd>NavigatorLeft<cr>" },
|
||||
{ "<C-j>", "<cmd>NavigatorDown<cr>" },
|
||||
{ "<C-k>", "<cmd>NavigatorUp<cr>" },
|
||||
{ "<C-l>", "<cmd>NavigatorRight<cr>" },
|
||||
{ "<C-\\>", "<cmd>NavigatorPrevious<cr>" },
|
||||
},
|
||||
config = function()
|
||||
require("Navigator").setup()
|
||||
end,
|
||||
},
|
||||
vim.keymap.set('i', '<M-c>', function()
|
||||
return vim.fn['codeium#Clear']()
|
||||
end, opts)
|
||||
|
||||
vim.keymap.set('n', '<leader>cI', '<cmd>CodeiumToggle<cr>', { desc = 'Toggle IA (Codeium)' })
|
||||
end,
|
||||
},
|
||||
{
|
||||
'nacro90/numb.nvim',
|
||||
event = 'CmdlineEnter',
|
||||
config = function()
|
||||
require('numb').setup({
|
||||
show_numbers = true, -- Enable 'number' for the window while peeking
|
||||
show_cursorline = true, -- Enable 'cursorline' for the window while peeking
|
||||
hide_relativenumbers = true, -- Enable turning off 'relativenumber' for the window while peeking
|
||||
number_only = false, -- Peek only when the command is only a number instead of when it starts with a number
|
||||
centered_peeking = true, -- Peeked line will be centered relative to window
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
'NStefan002/screenkey.nvim',
|
||||
cmd = 'Screenkey',
|
||||
version = '*',
|
||||
config = function()
|
||||
require('screenkey').setup({
|
||||
win_opts = {
|
||||
relative = 'editor',
|
||||
anchor = 'SE',
|
||||
width = 40,
|
||||
height = 1,
|
||||
border = 'single',
|
||||
},
|
||||
compress_after = 3,
|
||||
clear_after = 3,
|
||||
disable = {
|
||||
filetypes = {}, -- for example: "toggleterm"
|
||||
buftypes = {}, -- for example: "terminal"
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
'gbprod/yanky.nvim',
|
||||
event = 'BufReadPost',
|
||||
opts = {
|
||||
highlight = {
|
||||
timer = 150,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
'LudoPinelli/comment-box.nvim',
|
||||
event = 'BufReadPre',
|
||||
opts = {
|
||||
box_width = 70,
|
||||
},
|
||||
},
|
||||
{
|
||||
'm-demare/hlargs.nvim',
|
||||
event = { 'BufReadPost', 'BufNewFile' },
|
||||
},
|
||||
{
|
||||
'numToStr/Navigator.nvim',
|
||||
config = function()
|
||||
require('Navigator').setup()
|
||||
end,
|
||||
},
|
||||
}
|
||||
+29
-29
@@ -1,35 +1,35 @@
|
||||
return {
|
||||
{
|
||||
"navarasu/onedark.nvim",
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
config = function()
|
||||
local onedark = require("onedark")
|
||||
local util = require("lib.util")
|
||||
{
|
||||
'navarasu/onedark.nvim',
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
config = function()
|
||||
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,
|
||||
onedark.setup({
|
||||
style = 'deep',
|
||||
transparent = true,
|
||||
term_colors = false,
|
||||
ending_tildes = false,
|
||||
cmp_itemkind_reverse = false,
|
||||
|
||||
toggle_style_key = "<leader>mt",
|
||||
toggle_style_list = { "dark", "darker", "cool", "warm", "warmer", "deep", "light" },
|
||||
toggle_style_key = '<leader>mt',
|
||||
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",
|
||||
},
|
||||
-- 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()
|
||||
end,
|
||||
},
|
||||
lualine = { transparent = true },
|
||||
diagnostics = { darker = true, undercurl = true, background = false },
|
||||
})
|
||||
onedark.load()
|
||||
end,
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
local cmp = require("cmp")
|
||||
local luasnip = require("luasnip")
|
||||
local lspkind = require("lspkind")
|
||||
require("luasnip/loaders/from_vscode").lazy_load()
|
||||
|
||||
cmp.setup({
|
||||
completion = {
|
||||
completeopt = "menu,menuone,preview,noselect",
|
||||
},
|
||||
window = { -- making ui stuff for completion bordered
|
||||
completion = cmp.config.window.bordered(),
|
||||
documentation = cmp.config.window.bordered(),
|
||||
},
|
||||
-- configure lspkind for vs-code like pictograms in completion menu
|
||||
formatting = {
|
||||
format = lspkind.cmp_format({
|
||||
maxwidth = 50,
|
||||
ellipsis_char = "...",
|
||||
}),
|
||||
},
|
||||
snippet = { -- configure how nvim-cmp interacts with snippet engine
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
mapping = {
|
||||
["<C-k>"] = cmp.mapping.select_prev_item(), -- previous suggestion
|
||||
["<C-j>"] = cmp.mapping.select_next_item(), -- next suggestion
|
||||
["<C-b>"] = cmp.mapping.scroll_docs(-4),
|
||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||
["<C-Space>"] = cmp.mapping.complete(), -- show completion suggestions
|
||||
["<C-y>"] = cmp.config.disable,
|
||||
["<C-c>"] = cmp.mapping({ -- close completion window
|
||||
i = cmp.mapping.abort(),
|
||||
c = cmp.mapping.close(),
|
||||
}),
|
||||
["<CR>"] = cmp.mapping.confirm({
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
select = false,
|
||||
}),
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif luasnip.expandable() then
|
||||
luasnip.expand()
|
||||
elseif luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
},
|
||||
cmp.setup.cmdline(":", {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = {
|
||||
{ name = "cmdline" },
|
||||
},
|
||||
}),
|
||||
-- cmp.setup.cmdline("/", {
|
||||
-- mapping = cmp.mapping.preset.cmdline(),
|
||||
-- sources = {
|
||||
-- { name = "buffer" },
|
||||
-- },
|
||||
-- }),
|
||||
-- sources for autocompletion
|
||||
sources = {
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "nvim_lsp_signature_help" }, -- parameter hints
|
||||
{ name = "luasnip" }, -- snippets
|
||||
{ name = "buffer" }, -- text within current buffer
|
||||
{ name = "path" }, -- file system paths
|
||||
{ name = "codeium" }, -- AI for autocompletion
|
||||
-- { name = "calc" }, --for maths calculations
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,73 @@
|
||||
local dashboard = require('dashboard')
|
||||
local icons = require('lib.icons')
|
||||
|
||||
dashboard.setup({
|
||||
theme = 'hyper',
|
||||
disable_move = false,
|
||||
shortcut_type = 'letter',
|
||||
change_to_vcs_root = true,
|
||||
hide = {
|
||||
statusline = true,
|
||||
tabline = false,
|
||||
winbar = false,
|
||||
},
|
||||
config = {
|
||||
week_header = {
|
||||
enable = true,
|
||||
append = { '', icons.ui.Circle .. ' Learn, Make, Explore! ' .. icons.ui.Circle },
|
||||
},
|
||||
packages = { enable = true },
|
||||
project = { enable = true, limit = 8 },
|
||||
mru = { limit = 8 },
|
||||
shortcut = {
|
||||
{
|
||||
desc = icons.ui.Package .. 'Mason',
|
||||
group = '@property',
|
||||
action = 'Mason',
|
||||
key = 'm',
|
||||
},
|
||||
{
|
||||
desc = icons.ui.Sleep .. 'Lazy',
|
||||
group = '@property',
|
||||
action = 'Lazy',
|
||||
key = 'l',
|
||||
},
|
||||
{
|
||||
desc = icons.documents.OpenFolder .. 'Files',
|
||||
group = 'Label',
|
||||
action = 'Telescope find_files',
|
||||
key = 'f',
|
||||
},
|
||||
{
|
||||
desc = icons.ui.Search .. 'Search',
|
||||
group = 'Label',
|
||||
action = 'Telescope live_grep',
|
||||
key = 'g',
|
||||
},
|
||||
{
|
||||
desc = icons.ui.Note .. 'Todo',
|
||||
group = 'Label',
|
||||
action = 'Tdo',
|
||||
key = 'd',
|
||||
},
|
||||
{
|
||||
desc = icons.ui.Power,
|
||||
group = 'Action',
|
||||
action = 'quit',
|
||||
key = 'q',
|
||||
},
|
||||
},
|
||||
footer = { '', icons.ui.Heart .. ' Happiness is a state of mind. ' .. icons.ui.Heart },
|
||||
},
|
||||
})
|
||||
|
||||
-- Show dashboard when lazy closes
|
||||
if vim.o.filetype == 'lazy' then
|
||||
vim.cmd.close()
|
||||
vim.api.nvim_create_autocmd('User', {
|
||||
pattern = 'DashboardLoaded',
|
||||
callback = function()
|
||||
require('lazy').show()
|
||||
end,
|
||||
})
|
||||
end
|
||||
@@ -0,0 +1,57 @@
|
||||
local flash = require('flash')
|
||||
local icons = require('lib.icons')
|
||||
|
||||
flash.setup({
|
||||
-- exact, fuzzy, regex, custom function
|
||||
mode = 'fuzzy',
|
||||
-- behave like `incsearch`
|
||||
incremental = true,
|
||||
|
||||
jump = {
|
||||
-- save location in the jumplist
|
||||
jumplist = true,
|
||||
-- automatically jump when there is only one match
|
||||
autojump = true,
|
||||
},
|
||||
label = {
|
||||
rainbow = {
|
||||
enabled = true,
|
||||
-- number between 1 and 9
|
||||
shade = 4,
|
||||
},
|
||||
},
|
||||
prompt = {
|
||||
enabled = true,
|
||||
prefix = { { icons.ui.Separator .. icons.ui.Rocket .. icons.ui.ChevronRight .. ' ', 'FlashPromptIcon' } },
|
||||
win_config = { relative = 'editor', width = 1, height = 1, row = 1, col = 0, zindex = 1000 },
|
||||
},
|
||||
modes = {
|
||||
search = {
|
||||
enabled = true,
|
||||
},
|
||||
char = {
|
||||
enabled = false,
|
||||
jump_labels = false,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
vim.api.nvim_create_user_command('FlashDiagnostics', function()
|
||||
require('flash').jump({
|
||||
matcher = function(win)
|
||||
return vim.tbl_map(function(diag)
|
||||
return {
|
||||
pos = { diag.lnum + 1, diag.col },
|
||||
end_pos = { diag.end_lnum + 1, diag.end_col - 1 },
|
||||
}
|
||||
end, vim.diagnostic.get(vim.api.nvim_win_get_buf(win)))
|
||||
end,
|
||||
action = function(match, state)
|
||||
vim.api.nvim_win_call(match.win, function()
|
||||
vim.api.nvim_win_set_cursor(match.win, match.pos)
|
||||
vim.diagnostic.open_float()
|
||||
end)
|
||||
state:restore()
|
||||
end,
|
||||
})
|
||||
end, {})
|
||||
@@ -0,0 +1,143 @@
|
||||
-- Define nvim-lspconfig LSP servers here
|
||||
local lsp_servers = {
|
||||
'basedpyright',
|
||||
'lua_ls',
|
||||
'tsserver',
|
||||
'tailwindcss',
|
||||
'emmet_ls',
|
||||
'bashls',
|
||||
'jdtls',
|
||||
'clangd',
|
||||
}
|
||||
|
||||
local lspconfig = require('lspconfig')
|
||||
|
||||
-- import cmp-nvim-lsp plugin
|
||||
local cmp_nvim_lsp = require('cmp_nvim_lsp')
|
||||
|
||||
-- import mason_lspconfig plugin
|
||||
local mason_lspconfig = require('mason-lspconfig')
|
||||
|
||||
local keymap = vim.keymap -- for conciseness
|
||||
|
||||
-- vim.api.nvim_create_autocmd('LspAttach', {
|
||||
-- group = vim.api.nvim_create_augroup('UserLspConfig', {}),
|
||||
-- callback = function(ev)
|
||||
-- -- Buffer local mappings.
|
||||
-- -- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||
-- local opts = { buffer = ev.buf, silent = true }
|
||||
--
|
||||
-- -- set keybinds
|
||||
-- opts.desc = 'Show LSP references'
|
||||
-- keymap.set('n', 'lR', '<cmd>Telescope lsp_references<CR>', opts) -- show definition, references
|
||||
--
|
||||
-- opts.desc = 'Go to declaration'
|
||||
-- keymap.set('n', 'lD', vim.lsp.buf.declaration, opts) -- go to declaration
|
||||
--
|
||||
-- opts.desc = 'Inlay hint'
|
||||
-- keymap.set(
|
||||
-- 'n',
|
||||
-- '<leader>lh',
|
||||
-- '<cmd>lua vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())<CR>',
|
||||
-- opts
|
||||
-- )
|
||||
--
|
||||
-- opts.desc = 'Show LSP definitions'
|
||||
-- keymap.set('n', 'ld', '<cmd>Telescope lsp_definitions<CR>', opts) -- show lsp definitions
|
||||
--
|
||||
-- opts.desc = 'Show LSP implementations'
|
||||
-- keymap.set('n', 'li', '<cmd>Telescope lsp_implementations<CR>', opts) -- show lsp implementations
|
||||
--
|
||||
-- opts.desc = 'Show LSP type definitions'
|
||||
-- keymap.set('n', 'lt', '<cmd>Telescope lsp_type_definitions<CR>', opts) -- show lsp type definitions
|
||||
--
|
||||
-- opts.desc = 'See available code actions'
|
||||
-- keymap.set({ 'n', 'v' }, '<leader>ca', vim.lsp.buf.code_action, opts) -- see available code actions, in visual mode will apply to selection
|
||||
--
|
||||
-- opts.desc = 'Smart rename'
|
||||
-- keymap.set('n', '<leader>mR', vim.lsp.buf.rename, opts) -- smart rename
|
||||
--
|
||||
-- opts.desc = 'Show buffer diagnostics'
|
||||
-- keymap.set('n', '<leader>lD', '<cmd>Telescope diagnostics bufnr=0<CR>', opts) -- show diagnostics for file
|
||||
--
|
||||
-- opts.desc = 'Show line diagnostics'
|
||||
-- keymap.set('n', '<leader>ld', vim.diagnostic.open_float, opts) -- show diagnostics for line
|
||||
--
|
||||
-- opts.desc = 'Show documentation for what is under cursor'
|
||||
-- keymap.set('n', 'K', vim.lsp.buf.hover, opts) -- show documentation for what is under cursor
|
||||
--
|
||||
-- opts.desc = 'Restart LSP'
|
||||
-- keymap.set('n', '<leader>ls', ':LspRestart<CR>', opts) -- mapping to restart lsp if necessary
|
||||
-- end,
|
||||
-- })
|
||||
|
||||
-- used to enable autocompletion (assign to every lsp server config)
|
||||
local capabilities = cmp_nvim_lsp.default_capabilities()
|
||||
|
||||
-- Change the Diagnostic symbols in the sign column (gutter)
|
||||
local signs = { Error = ' ', Warn = ' ', Hint = ' ', Info = ' ' }
|
||||
for type, icon in pairs(signs) do
|
||||
local hl = 'DiagnosticSign' .. type
|
||||
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = '' })
|
||||
end
|
||||
|
||||
-- Set Mason LSPs Here
|
||||
mason_lspconfig.setup({
|
||||
ensure_installed = lsp_servers,
|
||||
automatic_installation = true,
|
||||
handlers = {
|
||||
-- default handler for installed servers
|
||||
function(server_name)
|
||||
lspconfig[server_name].setup({
|
||||
capabilities = capabilities,
|
||||
})
|
||||
end,
|
||||
['lua_ls'] = function()
|
||||
-- configure lua server (with special settings)
|
||||
lspconfig['lua_ls'].setup({
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
Lua = {
|
||||
-- make the language server recognize "vim" global
|
||||
diagnostics = {
|
||||
globals = { 'vim' },
|
||||
},
|
||||
hint = { enable = true },
|
||||
completion = {
|
||||
callSnippet = 'Replace',
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
['basedpyright'] = function()
|
||||
-- configure pyright server (with special settings)
|
||||
lspconfig['basedpyright'].setup({
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
python = {
|
||||
hint = { enable = true },
|
||||
},
|
||||
},
|
||||
handlers = {
|
||||
['textDocument/publishDiagnostics'] = function() end,
|
||||
},
|
||||
})
|
||||
end,
|
||||
['emmet_ls'] = function()
|
||||
-- configure emmet language server
|
||||
lspconfig['emmet_ls'].setup({
|
||||
capabilities = capabilities,
|
||||
filetypes = {
|
||||
'html',
|
||||
'javascript',
|
||||
'typescript',
|
||||
'javascriptreact',
|
||||
'typescriptreact',
|
||||
'css',
|
||||
'less',
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,196 @@
|
||||
local lualine = require('lualine')
|
||||
local icons = require('lib.icons')
|
||||
|
||||
local colors = {
|
||||
bg = '#202328',
|
||||
fg = '#bbc2cf',
|
||||
yellow = '#ECBE7B',
|
||||
cyan = '#008080',
|
||||
darkblue = '#081633',
|
||||
green = '#98be65',
|
||||
orange = '#FF8800',
|
||||
violet = '#a9a1e1',
|
||||
magenta = '#c678dd',
|
||||
blue = '#51afef',
|
||||
red = '#ec5f67',
|
||||
}
|
||||
|
||||
local mode_color = {
|
||||
n = colors.green,
|
||||
i = colors.blue,
|
||||
v = colors.magenta,
|
||||
[''] = colors.magenta,
|
||||
V = colors.magenta,
|
||||
c = colors.yellow,
|
||||
t = colors.red,
|
||||
R = colors.orange,
|
||||
Rv = colors.orange,
|
||||
no = colors.fg,
|
||||
s = colors.violet,
|
||||
S = colors.violet,
|
||||
[''] = colors.violet,
|
||||
ic = colors.yellow,
|
||||
cv = colors.red,
|
||||
ce = colors.red,
|
||||
r = colors.cyan,
|
||||
rm = colors.cyan,
|
||||
['r?'] = colors.cyan,
|
||||
['!'] = colors.red,
|
||||
}
|
||||
|
||||
local conditions = {
|
||||
buffer_not_empty = function()
|
||||
return vim.fn.empty(vim.fn.expand('%:t')) ~= 1
|
||||
end,
|
||||
buffer_is_file = function()
|
||||
return vim.bo.buftype == ''
|
||||
end,
|
||||
hide_in_width = function()
|
||||
return vim.fn.winwidth(0) > 80
|
||||
end,
|
||||
check_git_workspace = function()
|
||||
local filepath = vim.fn.expand('%:p:h')
|
||||
local gitdir = vim.fn.finddir('.git', filepath .. ';')
|
||||
return gitdir and #gitdir > 0 and #gitdir < #filepath
|
||||
end,
|
||||
}
|
||||
local searchcount = { 'searchcount', color = { fg = colors.fg, gui = 'bold' } }
|
||||
local selectioncount = { 'selectioncount', color = { fg = colors.fg, gui = 'bold' } }
|
||||
local progress = { 'progress', color = { fg = colors.fg, gui = 'bold' } }
|
||||
local filetype = { 'filetype', color = { fg = colors.blue, gui = 'bold' } }
|
||||
local filesize = { 'filesize', color = { fg = colors.fg, gui = 'bold' }, cond = conditions.buffer_not_empty }
|
||||
local fileformat = { 'fileformat', icons_enabled = true, color = { fg = colors.white, gui = 'bold' } }
|
||||
|
||||
local filename = {
|
||||
'filename',
|
||||
cond = conditions.buffer_not_empty and conditions.buffer_is_file,
|
||||
color = { fg = colors.magenta, gui = 'bold' },
|
||||
}
|
||||
|
||||
local buffers = {
|
||||
'buffers',
|
||||
filetype_names = {
|
||||
TelescopePrompt = icons.ui.Telescope .. 'Telescope',
|
||||
dashboard = icons.ui.Dashboard .. 'Dashboard',
|
||||
lazy = icons.ui.Sleep .. 'Lazy',
|
||||
mason = icons.ui.Package .. 'Mason',
|
||||
NvimTree = icons.documents.OpenFolder .. 'Files',
|
||||
spectre_panel = icons.ui.Search .. 'Spectre',
|
||||
},
|
||||
use_mode_colors = true,
|
||||
}
|
||||
|
||||
local branch = {
|
||||
'branch',
|
||||
icon = icons.git.Branch,
|
||||
fmt = function(str)
|
||||
return str:sub(1, 32)
|
||||
end,
|
||||
color = { fg = colors.green, gui = 'bold' },
|
||||
}
|
||||
|
||||
local diff_icons = {
|
||||
'diff',
|
||||
symbols = { added = icons.git.AddAlt, modified = icons.git.DiffAlt, removed = icons.git.RemoveAlt },
|
||||
diff_color = {
|
||||
added = { fg = colors.green },
|
||||
modified = { fg = colors.orange },
|
||||
removed = { fg = colors.red },
|
||||
},
|
||||
cond = conditions.hide_in_width,
|
||||
}
|
||||
|
||||
local diagnostics = {
|
||||
'diagnostics',
|
||||
sources = { 'nvim_lsp', 'nvim_diagnostic', 'nvim_workspace_diagnostic' },
|
||||
symbols = {
|
||||
error = icons.diagnostics.Error,
|
||||
warn = icons.diagnostics.Warning,
|
||||
info = icons.diagnostics.Information,
|
||||
hint = icons.diagnostics.Hint,
|
||||
},
|
||||
diagnostics_color = {
|
||||
color_error = { fg = colors.red },
|
||||
color_warn = { fg = colors.yellow },
|
||||
color_info = { fg = colors.blue },
|
||||
color_hint = { fg = colors.yellow },
|
||||
},
|
||||
}
|
||||
|
||||
local lsp = {
|
||||
function()
|
||||
local msg = 'No LSP'
|
||||
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
|
||||
local clients = vim.lsp.get_active_clients()
|
||||
if next(clients) == nil then
|
||||
return msg
|
||||
end
|
||||
for _, client in ipairs(clients) do
|
||||
local filetypes = client.config.filetypes
|
||||
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
|
||||
return client.name
|
||||
end
|
||||
end
|
||||
return msg
|
||||
end,
|
||||
icon = icons.ui.Gear,
|
||||
color = { fg = colors.fg, gui = 'bold' },
|
||||
}
|
||||
|
||||
local encoding = {
|
||||
'o:encoding',
|
||||
fmt = string.upper,
|
||||
cond = conditions.hide_in_width,
|
||||
color = { fg = colors.green, gui = 'bold' },
|
||||
}
|
||||
|
||||
local separator = {
|
||||
function()
|
||||
return icons.ui.Separator
|
||||
end,
|
||||
color = function()
|
||||
return { fg = mode_color[vim.fn.mode()] }
|
||||
end,
|
||||
padding = { left = 0, right = 0 },
|
||||
}
|
||||
|
||||
local function mode(icon)
|
||||
icon = icon or icons.ui.Neovim
|
||||
return {
|
||||
function()
|
||||
return icon
|
||||
end,
|
||||
color = function()
|
||||
return { fg = mode_color[vim.fn.mode()] }
|
||||
end,
|
||||
padding = { left = 1, right = 0 },
|
||||
}
|
||||
end
|
||||
|
||||
lualine.setup({
|
||||
options = {
|
||||
component_separators = '',
|
||||
-- section_separators = '',
|
||||
theme = 'onedark',
|
||||
disabled_filetypes = {
|
||||
'dashboard',
|
||||
},
|
||||
},
|
||||
-- extensions = { 'quickfix', 'man', 'mason', 'lazy', 'toggleterm', 'nvim-tree' },
|
||||
tabline = {
|
||||
lualine_a = {},
|
||||
lualine_b = { mode(), buffers },
|
||||
lualine_c = {},
|
||||
lualine_x = { diff_icons, branch },
|
||||
lualine_y = { searchcount, selectioncount },
|
||||
lualine_z = {},
|
||||
},
|
||||
sections = {
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_c = { separator, mode(icons.ui.Heart), 'location', progress, filename },
|
||||
lualine_x = { diagnostics, lsp, filetype, filesize, fileformat, encoding, separator },
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,125 @@
|
||||
local spectre = require('spectre')
|
||||
|
||||
spectre.setup({
|
||||
color_devicons = true,
|
||||
highlight = {
|
||||
ui = 'String',
|
||||
search = 'DiffChange',
|
||||
replace = 'DiffDelete',
|
||||
},
|
||||
mapping = {
|
||||
['toggle_line'] = {
|
||||
map = 't',
|
||||
cmd = "<cmd>lua require('spectre').toggle_line()<CR>",
|
||||
desc = 'toggle current item',
|
||||
},
|
||||
['enter_file'] = {
|
||||
map = '<cr>',
|
||||
cmd = "<cmd>lua require('spectre.actions').select_entry()<CR>",
|
||||
desc = 'goto current file',
|
||||
},
|
||||
['send_to_qf'] = {
|
||||
map = 'Q',
|
||||
cmd = "<cmd>lua require('spectre.actions').send_to_qf()<CR>",
|
||||
desc = 'send all item to quickfix',
|
||||
},
|
||||
['replace_cmd'] = {
|
||||
map = 'c',
|
||||
cmd = "<cmd>lua require('spectre.actions').replace_cmd()<CR>",
|
||||
desc = 'input replace vim command',
|
||||
},
|
||||
['show_option_menu'] = {
|
||||
map = 'o',
|
||||
cmd = "<cmd>lua require('spectre').show_options()<CR>",
|
||||
desc = 'show option',
|
||||
},
|
||||
['run_replace'] = {
|
||||
map = 'R',
|
||||
cmd = "<cmd>lua require('spectre.actions').run_replace()<CR>",
|
||||
desc = 'replace all',
|
||||
},
|
||||
['change_view_mode'] = {
|
||||
map = 'm',
|
||||
cmd = "<cmd>lua require('spectre').change_view()<CR>",
|
||||
desc = 'change result view mode',
|
||||
},
|
||||
['toggle_ignore_case'] = {
|
||||
map = 'I',
|
||||
cmd = "<cmd>lua require('spectre').change_options('ignore-case')<CR>",
|
||||
desc = 'toggle ignore case',
|
||||
},
|
||||
['toggle_ignore_hidden'] = {
|
||||
map = 'H',
|
||||
cmd = "<cmd>lua require('spectre').change_options('hidden')<CR>",
|
||||
desc = 'toggle search hidden',
|
||||
},
|
||||
},
|
||||
find_engine = {
|
||||
['rg'] = {
|
||||
cmd = 'rg',
|
||||
args = {
|
||||
'--color=never',
|
||||
'--no-heading',
|
||||
'--with-filename',
|
||||
'--line-number',
|
||||
'--column',
|
||||
},
|
||||
options = {
|
||||
['ignore-case'] = {
|
||||
value = '--ignore-case',
|
||||
icon = '[I]',
|
||||
desc = 'ignore case',
|
||||
},
|
||||
['hidden'] = {
|
||||
value = '--hidden',
|
||||
desc = 'hidden file',
|
||||
icon = '[H]',
|
||||
},
|
||||
},
|
||||
},
|
||||
['ag'] = {
|
||||
cmd = 'ag',
|
||||
args = {
|
||||
'--vimgrep',
|
||||
'-s',
|
||||
},
|
||||
options = {
|
||||
['ignore-case'] = {
|
||||
value = '-i',
|
||||
icon = '[I]',
|
||||
desc = 'ignore case',
|
||||
},
|
||||
['hidden'] = {
|
||||
value = '--hidden',
|
||||
desc = 'hidden file',
|
||||
icon = '[H]',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
replace_engine = {
|
||||
['sed'] = {
|
||||
cmd = 'sed',
|
||||
args = nil,
|
||||
},
|
||||
options = {
|
||||
['ignore-case'] = {
|
||||
value = '--ignore-case',
|
||||
icon = '[I]',
|
||||
desc = 'ignore case',
|
||||
},
|
||||
},
|
||||
},
|
||||
default = {
|
||||
find = {
|
||||
cmd = 'rg',
|
||||
options = { 'ignore-case' },
|
||||
},
|
||||
replace = {
|
||||
cmd = 'sed',
|
||||
},
|
||||
},
|
||||
replace_vim_cmd = 'cdo',
|
||||
is_open_target_win = true,
|
||||
is_insert_mode = true,
|
||||
})
|
||||
@@ -0,0 +1,67 @@
|
||||
local telescope = require('telescope')
|
||||
local fb_actions = require('telescope').extensions.file_browser.actions
|
||||
telescope.setup({
|
||||
file_ignore_patterns = { '%.git/.' },
|
||||
defaults = {
|
||||
preview = {
|
||||
treesitter = false,
|
||||
},
|
||||
},
|
||||
extensions = {
|
||||
fzf = {
|
||||
fuzzy = true, -- false will only do exact matching
|
||||
override_generic_sorter = true, -- override the generic sorter
|
||||
override_file_sorter = true, -- override the file sorter
|
||||
case_mode = 'smart_case', -- or "ignore_case" or "respect_case"
|
||||
},
|
||||
file_browser = {
|
||||
theme = 'ivy',
|
||||
hijack_netrw = true,
|
||||
mapping = {
|
||||
['i'] = {
|
||||
['<A-c>'] = fb_actions.create,
|
||||
['<A-r>'] = fb_actions.rename,
|
||||
['<A-d>'] = fb_actions.remove,
|
||||
['<A-h>'] = fb_actions.toggle_hidden,
|
||||
},
|
||||
['n'] = {
|
||||
['<A-c>'] = fb_actions.create,
|
||||
['<A-r'] = fb_actions.rename,
|
||||
['<A-d'] = fb_actions.remove,
|
||||
['<A-h'] = fb_actions.toggle_hidden,
|
||||
},
|
||||
},
|
||||
},
|
||||
undo = {
|
||||
use_delta = true,
|
||||
use_custom_command = nil,
|
||||
side_by_side = true,
|
||||
vim_diff_opts = {
|
||||
ctxlen = vim.o.scrolloff * 2,
|
||||
},
|
||||
entry_format = 'state #$ID, $STAT, $TIME',
|
||||
-- time_format = '%d %b %H:%M',
|
||||
saved_only = false,
|
||||
layout_strategy = 'vertical',
|
||||
layout_config = {
|
||||
preview_height = 0.7,
|
||||
},
|
||||
mapping = {
|
||||
i = {
|
||||
['<S-cr>'] = require('telescope-undo.actions').yank_additions,
|
||||
['<C-cr>'] = require('telescope-undo.actions').yank_deletions,
|
||||
['<cr>'] = require('telescope-undo.actions').restore,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
borderchars = {
|
||||
prompt = { '─', '│', '─', '│', '╭', '╮', '╯', '╰' },
|
||||
results = { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' },
|
||||
},
|
||||
})
|
||||
telescope.load_extension('ui-select')
|
||||
telescope.load_extension('file_browser')
|
||||
-- telescope.load_extension("refactoring")
|
||||
telescope.load_extension('notify')
|
||||
telescope.load_extension('undo')
|
||||
@@ -0,0 +1,23 @@
|
||||
require('toggleterm').setup({
|
||||
size = 10,
|
||||
open_mapping = [[<c-\>]],
|
||||
hide_numbers = true,
|
||||
shade_filetypes = {},
|
||||
shade_terminals = true,
|
||||
shading_factor = '2',
|
||||
start_in_insert = true,
|
||||
insert_mappings = true,
|
||||
terminal_mappings = true,
|
||||
persist_size = true,
|
||||
direction = 'float', -- Use 'float' for floating terminal windows
|
||||
close_on_exit = true,
|
||||
shell = vim.o.shell,
|
||||
float_opts = {
|
||||
border = 'curved', -- or 'single', 'double', 'shadow', etc.
|
||||
winblend = 0, -- Set to 0 for full transparency
|
||||
highlights = {
|
||||
border = 'Normal',
|
||||
background = 'Normal',
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,508 @@
|
||||
local which_key = require('which-key')
|
||||
local icons = require('lib.icons')
|
||||
|
||||
local setup = {
|
||||
preset = 'helix',
|
||||
plugins = {
|
||||
marks = true,
|
||||
registers = true,
|
||||
spelling = {
|
||||
enabled = true,
|
||||
suggestions = 30,
|
||||
},
|
||||
presets = {
|
||||
operators = true,
|
||||
motions = true,
|
||||
text_objects = true,
|
||||
windows = true,
|
||||
nav = true,
|
||||
z = true,
|
||||
g = true,
|
||||
},
|
||||
},
|
||||
icons = {
|
||||
breadcrumb = icons.ui.ArrowOpen,
|
||||
separator = icons.ui.Arrow,
|
||||
group = '',
|
||||
keys = {
|
||||
Space = icons.ui.Rocket,
|
||||
},
|
||||
rules = false, -- enable auto icon rules
|
||||
},
|
||||
show_help = false,
|
||||
show_keys = true,
|
||||
triggers = {
|
||||
{ '<auto>', mode = 'nixsotc' },
|
||||
{ '<leader>', mode = { 'n', 'v' } },
|
||||
},
|
||||
}
|
||||
|
||||
local n_mappings = {
|
||||
mode = 'n',
|
||||
|
||||
{ '<leader>b', group = ' Debug' },
|
||||
{ '<leader>bO', '<cmd>DapStepOut<cr>', desc = 'Out' },
|
||||
{ '<leader>bR', '<cmd>DapRestartFrame<cr>', desc = 'Restart Frame' },
|
||||
{ '<leader>bb', '<cmd>DapToggleBreakpoint<cr>', desc = 'Breakpoint' },
|
||||
{ '<leader>bc', '<cmd>DapContinue<cr>', desc = 'Continue' },
|
||||
{ '<leader>bi', '<cmd>DapStepInto<cr>', desc = 'Into' },
|
||||
{ '<leader>bl', "<cmd>lua require'dap'.run_last()<cr>", desc = 'Last' },
|
||||
{ '<leader>bo', '<cmd>DapStepOver<cr>', desc = 'Over' },
|
||||
{ '<leader>br', '<cmd>DapToggleRepl<cr>', desc = 'Repl' },
|
||||
{ '<leader>bt', '<cmd>DapUIToggle<cr>', desc = 'Debugger' },
|
||||
{ '<leader>bx', '<cmd>DapTerminate<cr>', desc = 'Exit' },
|
||||
|
||||
{ '<leader>c', group = ' Code' },
|
||||
{ '<leader>cF', '<cmd>retab<cr>', desc = 'Fix Tabs' },
|
||||
{ '<leader>cP', '<cmd>CccConvert<cr>', desc = 'Convert Color' },
|
||||
{ '<leader>cR', '<cmd>ReloadConfig<cr>', desc = 'Reload Configs' },
|
||||
{ '<leader>cc', '<cmd>CccHighlighterToggle<cr>', desc = 'Highlight Colors' },
|
||||
{ '<leader>cd', '<cmd>RootDir<cr>', desc = 'Root Directory' },
|
||||
{ '<leader>cf', group = 'Formate File' },
|
||||
{ '<leader>ch', '<cmd>Hardtime toggle<cr>', desc = 'Hardtime' },
|
||||
{ '<leader>cl', '<cmd>:g/^\\s*$/d<cr>', desc = 'Clean Empty Lines' },
|
||||
{ '<leader>cm', '<cmd>MarkdownPreviewToggle<cr>', desc = 'Markdown Preview' },
|
||||
{ '<leader>cn', '<cmd>Telescope notify<cr>', desc = 'Notifications' },
|
||||
{ '<leader>co', '<cmd>Dashboard<cr>', desc = 'Dashboard' },
|
||||
{ '<leader>cp', '<cmd>CccPick<cr>', desc = 'Pick Color' },
|
||||
{ '<leader>cr', '<cmd>Telescope reloader<cr>', desc = 'Reload Module' },
|
||||
|
||||
{ '<leader>C', group = ' Comment' },
|
||||
{ '<leader>Cb', '<cmd>CBccbox<CR>', desc = 'Comment Box' },
|
||||
{ '<leader>Ct', '<cmd>CBllline<CR>', desc = 'Tiled line' },
|
||||
{ '<leader>Cl', '<cmd>CBline<CR>', desc = 'Line' },
|
||||
{ '<leader>Cm', '<cmd>CBllbox14<CR>', desc = 'Marked' },
|
||||
{ '<leader>Cc', '<cmd>CBcatalog<CR>', desc = 'Catalog' },
|
||||
{ '<leader>Cd', '<cmd>CBd<CR>', desc = 'Delete Comment Style' },
|
||||
|
||||
{ '<leader>d', group = ' Database' },
|
||||
{ '<leader>du', '<cmd>DBUIToggle<cr>', desc = 'Toggle DB UI' },
|
||||
{ '<leader>db', '<cmd>DBUIFindBuffer<cr>', desc = 'DB Find buffer' },
|
||||
{ '<leader>dr', '<cmd>DBUIRenameBuffer<cr>', desc = 'DB Rename buffer' },
|
||||
{ '<leader>dl', '<cmd>DBUILastQueryInfo<cr>', desc = 'DB Last query' },
|
||||
|
||||
{ '<leader>e', group = ' Edit' },
|
||||
{ '<leader>ea', '<cmd>b#<cr>', desc = 'Alternate File' },
|
||||
{ '<leader>ec', '<cmd>e $MYVIMRC<cr>', desc = 'Config' },
|
||||
{
|
||||
'<leader>ed',
|
||||
'<cmd>lua require("telescope.builtin").find_files({cwd = vim.fn.stdpath("config")})<cr>',
|
||||
desc = 'Config Dir',
|
||||
},
|
||||
{ '<leader>ee', ':Neotree toggle float<CR>', silent = true, desc = 'Float File Explorer' },
|
||||
{ '<leader>eE', ':Neotree toggle left<CR>', silent = true, desc = 'Left File Explorer' },
|
||||
{ '<leader>ef', '<cmd>Telescope file_browser<cr>', desc = 'File Browser' },
|
||||
{ '<leader>em', '<cmd>e README.md<cr>', desc = 'Readme' },
|
||||
{ '<leader>en', '<cmd>new<cr>', desc = 'New File' },
|
||||
|
||||
{ '<leader>f', group = ' Find' },
|
||||
{ '<leader>ff', '<cmd>Telescope find_files<cr>', desc = 'Find Files (CWD)' },
|
||||
{ '<leader>fg', '<cmd>Telescope live_grep<cr>', desc = 'Live Grep' },
|
||||
{ '<leader>fb', '<cmd>Telescope buffers<cr>', desc = 'Buffers' },
|
||||
{ '<leader>fh', '<cmd>Telescope help_tags<cr>', desc = 'Find Help' },
|
||||
{ '<leader>fo', '<cmd>Telescope oldfiles<cr>', desc = 'Old Recent Files' },
|
||||
{ '<leader>fm', '<cmd>Telescope marks<cr>', desc = 'Marks' },
|
||||
{ '<leader>fH', '<cmd>Telescope highlights<cr>', desc = 'Find Highlight Groups' },
|
||||
{ '<leader>fG', '<cmd>Telescope grep_string<cr>', desc = 'Grep String' },
|
||||
{ '<leader>kk', '<cmd>Telescope keymaps<cr>', desc = 'Keymaps' },
|
||||
{ '<leader>kc', '<cmd>Telescope commands<cr>', desc = 'Commands' },
|
||||
{ '<leader>kh', '<cmd>Telescope command_history<cr>', desc = 'Command History' },
|
||||
{ '<leader>ks', '<cmd>Telescope search_history<cr>', desc = 'Search History' },
|
||||
{ '<leader>fd', '<cmd>Telescope diagnostics<cr>', desc = 'Diagnostics' },
|
||||
{ '<leader>fu', '<cmd>Telescope undo<cr>', desc = 'Undo History' },
|
||||
{ '<leader>fb', '<cmd>Telescope buffers<cr>', desc = 'Buffers' },
|
||||
{ '<leader>fq', '<cmd>Telescope quickfix<cr>', desc = 'Quickfix' },
|
||||
{ '<leader>fs', '<cmd>Telescope current_buffer_fuzzy_find<cr>', desc = 'Fuzzy Find in File' },
|
||||
|
||||
{ '<leader>h', group = ' Help' },
|
||||
{ '<leader>hh', '<cmd>Telescope help_tags<cr>', desc = 'Help Pages' },
|
||||
{ '<leader>hi', 'vim.show_pos', desc = 'Inspect Position' },
|
||||
{ '<leader>hk', '<cmd>Lspsaga hover_doc<cr>', desc = 'Hover Doc' },
|
||||
{ '<leader>hm', '<cmd>Telescope man_pages<cr>', desc = 'Man Pages' },
|
||||
|
||||
{ '<leader>i', group = ' Insert' },
|
||||
{ '<leader>iP', '<cmd>put %:p<cr>', desc = 'Absolute Path' },
|
||||
{ '<leader>id', "<cmd>put =strftime('## %a, %d %b, %Y, %r')<cr>", desc = 'Date' },
|
||||
{ '<leader>ie', '<cmd>Telescope symbols<cr>', desc = 'Emojis' },
|
||||
{ '<leader>if', "<cmd>put =expand('%:t')<cr>", desc = 'File Name' },
|
||||
{ '<leader>in', '<cmd>Nerdy<cr>', desc = 'Nerd Glyphs' },
|
||||
{ '<leader>ip', '<cmd>put %<cr>', desc = 'Relative Path' },
|
||||
{ '<leader>ir', '<cmd>Telescope registers<cr>', desc = 'Registers' },
|
||||
{ '<leader>it', "<cmd>put =strftime('## %r')<cr>", desc = 'Time' },
|
||||
|
||||
{ '<leader>j', group = ' Jump' },
|
||||
{
|
||||
'<leader>jN',
|
||||
"<cmd>lua require('flash').jump({search = { forward = false, wrap = false, multi_window = false },})<cr>",
|
||||
desc = 'Search Backward',
|
||||
},
|
||||
{ '<leader>jc', '*', desc = 'Word' },
|
||||
{ '<leader>jd', '<cmd>FlashDiagnostics<cr>', desc = 'Diagnostics' },
|
||||
{ '<leader>jf', '<cmd>Telescope jumplist<cr>', desc = 'Jumplist' },
|
||||
{ '<leader>jh', '<C-o>', desc = 'Backward' },
|
||||
{ '<leader>jj', "<cmd>lua require('flash').remote()<cr>", desc = 'Remote' },
|
||||
{ '<leader>jk', "<cmd>lua require('flash').treesitter()<cr>", desc = 'Treesitter' },
|
||||
{ '<leader>jl', '<C-i>', desc = 'Forward' },
|
||||
{
|
||||
'<leader>jn',
|
||||
"<cmd>lua require('flash').jump({search = { forward = true, wrap = false, multi_window = false },})<cr>",
|
||||
desc = 'Search Forward',
|
||||
},
|
||||
{ '<leader>jp', "<cmd>lua require('flash').jump({continue = true})<cr>", desc = 'Previous Jump' },
|
||||
{ '<leader>js', "<cmd>lua require('flash').jump()<cr>", desc = 'Search' },
|
||||
{ '<leader>jt', "<cmd>lua require('flash').treesitter_search()<cr>", desc = 'Remote Treesitter' },
|
||||
{
|
||||
'<leader>jw',
|
||||
'<cmd>lua require("flash").jump({ pattern = vim.fn.expand("<cword>")})<cr>',
|
||||
desc = 'Current Word',
|
||||
},
|
||||
|
||||
{ '<leader>k', group = ' Keys' },
|
||||
{ '<leader>kc', '<cmd>Telescope commands<cr>', desc = 'Commands' },
|
||||
{ '<leader>kh', '<cmd>Telescope command_history<cr>', desc = 'Command History' },
|
||||
{ '<leader>kk', '<cmd>Telescope keymaps<cr>', desc = 'Keymaps' },
|
||||
{ '<leader>ks', '<cmd>Telescope search_history<cr>', desc = 'Search History' },
|
||||
{ '<leader>kt', '<cmd>Screenkey<CR>', desc = 'Toggle keys' },
|
||||
|
||||
{ '<leader>l', group = ' LSP' },
|
||||
{ '<leader>lF', '<cmd>Telescope lsp_references layout_strategy=vertical<cr>', desc = 'References' },
|
||||
{ '<leader>lL', '<cmd>Lspsaga show_workspace_diagnostics<cr>', desc = 'Workspace Diagnostics' },
|
||||
{ '<leader>lP', '<cmd>Telescope lsp_outgoing_calls<cr>', desc = 'Outgoing Calls' },
|
||||
{ '<leader>lQ', '<cmd>LspRestart<cr>', desc = 'Restart LSP' },
|
||||
{ '<leader>lR', '<cmd>Lspsaga project_replace<cr>', desc = 'Replace' },
|
||||
{ '<leader>lS', '<cmd>Telescope lsp_dynamic_workspace_symbols<cr>', desc = 'Workspace Symbols' },
|
||||
{ '<leader>lT', '<cmd>Lspsaga goto_type_definition<cr>', desc = 'Goto Type Definition' },
|
||||
{ '<leader>la', '<cmd>Lspsaga code_action<cr>', desc = 'Code Action' },
|
||||
{ '<leader>ld', '<cmd>Lspsaga peek_definition<cr>', desc = 'Peek Definition' },
|
||||
{ '<leader>lf', '<cmd>Lspsaga finder<cr>', desc = 'Finder' },
|
||||
{ '<leader>lg', '<cmd>Lspsaga goto_definition<cr>', desc = 'Goto Definition' },
|
||||
{ '<leader>lh', '<cmd>Lspsaga hover_doc<cr>', desc = 'Hover' },
|
||||
{ '<leader>li', '<cmd>LspInfo<cr>', desc = 'LSP Info' },
|
||||
{ '<leader>lj', '<cmd>Lspsaga diagnostic_jump_next<cr>', desc = 'Next Diagnostic' },
|
||||
{ '<leader>lk', '<cmd>Lspsaga diagnostic_jump_prev<cr>', desc = 'Prev Diagnostic' },
|
||||
{ '<leader>ll', '<cmd>Telescope diagnostics layout_strategy=vertical<cr>', desc = 'File Diagnostics' },
|
||||
{ '<leader>lo', '<cmd>Lspsaga outline<cr>', desc = 'Outline' },
|
||||
{ '<leader>lp', '<cmd>Telescope lsp_incoming_calls<cr>', desc = 'Incoming Calls' },
|
||||
{ '<leader>lq', '<cmd>LspStop<cr>', desc = 'Stop LSP' },
|
||||
{ '<leader>lr', '<cmd>Lspsaga rename<cr>', desc = 'Rename' },
|
||||
{ '<leader>ls', '<cmd>Telescope lsp_document_symbols theme=get_ivy<cr>', desc = 'Document Symbols' },
|
||||
{ '<leader>lt', '<cmd>Lspsaga peek_type_definition<cr>', desc = 'Peek Type Definition' },
|
||||
|
||||
{ '<leader>m', group = ' Misc' },
|
||||
{
|
||||
'<leader>ms',
|
||||
function()
|
||||
require('persistence').load()
|
||||
end,
|
||||
desc = 'Restore Session',
|
||||
},
|
||||
{
|
||||
'<leader>ml',
|
||||
function()
|
||||
require('persistence').load({ last = true })
|
||||
end,
|
||||
desc = 'Restore Last Session',
|
||||
},
|
||||
{
|
||||
'<leader>md',
|
||||
function()
|
||||
require('persistence').stop()
|
||||
end,
|
||||
desc = "Don't Save Current Session",
|
||||
},
|
||||
|
||||
{ '<leader>o', group = ' Options' },
|
||||
{ '<leader>oc', '<cmd>Telescope colorscheme<cr>', desc = 'Colorscheme' },
|
||||
{ '<leader>oh', '<cmd>Telescope highlights<cr>', desc = 'Highlight Colors' },
|
||||
{ '<leader>on', '<cmd>set relativenumber!<cr>', desc = 'Relative Numbers' },
|
||||
{ '<leader>oo', '<cmd>Telescope vim_options<cr>', desc = 'All Options' },
|
||||
|
||||
{ '<leader>q', group = ' Quit' },
|
||||
{ '<leader>qa', '<cmd>qall<cr>', desc = 'Quit All' },
|
||||
{ '<leader>qc', '<cmd>bw<cr>', desc = 'Close Buffer' },
|
||||
{ '<leader>qd', '<cmd>bdelete<cr>', desc = 'Delete Buffer' },
|
||||
{ '<leader>qf', '<cmd>qall!<cr>', desc = 'Force Quit' },
|
||||
{ '<leader>qo', ':%bdelete|b#|bdelete#<cr>', desc = 'Close Others' },
|
||||
{ '<leader>qq', '<cmd>q<cr>', desc = 'Quit' },
|
||||
{ '<leader>qs', '<C-w>c', desc = 'Close Split' },
|
||||
{ '<leader>qw', '<cmd>wq<cr>', desc = 'Write and Quit' },
|
||||
|
||||
{ '<leader>r', group = ' Refactor' },
|
||||
{
|
||||
'<leader>rR',
|
||||
"<Esc><cmd>lua require('telescope').extensions.refactoring.refactors()<CR>",
|
||||
desc = 'Refactor Commands',
|
||||
},
|
||||
{ '<leader>rS', "<cmd>lua require('spectre').open()<cr>", desc = 'Replace' },
|
||||
{ '<leader>rb', "<cmd>lua require('spectre').open_file_search()<cr>", desc = 'Replace Buffer' },
|
||||
{ '<leader>rd', '', desc = 'Go To Definition' },
|
||||
{ '<leader>re', "<cmd>lua require('refactoring').refactor('Extract Block')<CR>", desc = 'Extract Block' },
|
||||
{
|
||||
'<leader>rf',
|
||||
"<cmd>lua require('refactoring').refactor('Extract Block To File')<CR>",
|
||||
desc = 'Extract To File',
|
||||
},
|
||||
{ '<leader>rh', '', desc = 'List Definition Head' },
|
||||
{ '<leader>ri', "<cmd>lua require('refactoring').refactor('Inline Variable')<CR>", desc = 'Inline Variable' },
|
||||
{ '<leader>rj', '', desc = 'Next Usage' },
|
||||
{ '<leader>rk', '', desc = 'Previous Usage' },
|
||||
{ '<leader>rl', '', desc = 'List Definition' },
|
||||
{ '<leader>rn', '', desc = 'Swap Next' },
|
||||
{ '<leader>rp', '', desc = 'Swap Previous' },
|
||||
{ '<leader>rr', '', desc = 'Smart Rename' },
|
||||
{ '<leader>rs', ':%s/\\<<C-r><C-w>\\>/<C-r><C-w>/gI<Left><Left><Left>', desc = 'Replace Word' },
|
||||
{ '<leader>rv', "<cmd>lua require('refactoring').refactor('Extract Variable')<CR>", desc = 'Extract Variable' },
|
||||
{ '<leader>rw', "<cmd>lua require('spectre').open_visual({select_word=true})<cr>", desc = 'Replace Word' },
|
||||
|
||||
{ '<leader>s', group = ' Split' },
|
||||
{ '<leader>s+', '<cmd>resize +10<cr>', desc = 'Increase window height' },
|
||||
{ '<leader>s-', '<cmd>vertical resize -20<cr>', desc = 'Decrease window width' },
|
||||
{ '<leader>s/', '<C-w>s', desc = 'Split Below' },
|
||||
{ '<leader>s=', '<cmd>vertical resize +20<cr>', desc = 'Increase window width' },
|
||||
{ '<leader>sH', '<cmd>vertical resize -10<cr>', desc = 'Decrease window width' },
|
||||
{ '<leader>sJ', '<cmd>resize -5<cr>', desc = 'Decrease window height' },
|
||||
{ '<leader>sK', '<cmd>resize +5<cr>', desc = 'Increase window height' },
|
||||
{ '<leader>sL', '<cmd>vertical resize +10<cr>', desc = 'Increase window width' },
|
||||
{ '<leader>s\\', '<C-w>v', desc = 'Split Right' },
|
||||
{ '<leader>s_', '<cmd>resize -10<cr>', desc = 'Decrease window height' },
|
||||
{ '<leader>s`', '<C-w>p', desc = 'Previous Window' },
|
||||
{ '<leader>sa', '<cmd>split<cr>', desc = 'Horizontal Split' },
|
||||
{ '<leader>sc', '<cmd>tabclose<cr>', desc = 'Close Tab' },
|
||||
{ '<leader>sf', '<cmd>tabfirst<cr>', desc = 'First Tab' },
|
||||
{ '<leader>sh', '<C-w>h', desc = 'Move Left' },
|
||||
{ '<leader>sj', '<C-w>j', desc = 'Move Down' },
|
||||
{ '<leader>sk', '<C-w>k', desc = 'Move Up' },
|
||||
{ '<leader>sl', '<C-w>l', desc = 'Move Right' },
|
||||
{ '<leader>sp', '<cmd>NavigatorPrevious<cr>', desc = 'Previous Pane' },
|
||||
{ '<leader>sq', '<C-w>c', desc = 'Close Split' },
|
||||
{ '<leader>ss', '<cmd>vsplit<cr>', desc = 'Vertical Split' },
|
||||
|
||||
{ '<leader>t', group = ' Terminal' },
|
||||
{ '<leader>t1', '<cmd>1ToggleTerm<cr>', desc = 'Toggle Terminal' },
|
||||
{ '<leader>t2', '<cmd>2ToggleTerm<cr>', desc = 'Toggle Terminal' },
|
||||
{ '<leader>th', '<cmd>Sterm<cr>', desc = 'Horizontal Terminal' },
|
||||
{ '<leader>tv', '<cmd>Vterm<cr>', desc = 'Vertical Terminal' },
|
||||
|
||||
{ '<leader>u', group = ' Test' },
|
||||
{ '<leader>uc', '<cmd>lua require("neotest").run.run()<cr>', desc = 'Run Current Test' },
|
||||
{ '<leader>uf', '<cmd>lua require("neotest").run.run(vim.fn.expand("%"))<cr>', desc = 'Run Test File' },
|
||||
{
|
||||
'<leader>uo',
|
||||
'<cmd>lua require("neotest").output.open({ enter = true, auto_close = true })<cr>',
|
||||
desc = 'Show Output',
|
||||
},
|
||||
{ '<leader>uS', '<cmd>lua require("neotest").summary.toggle<cr>', desc = 'Toggle Summary' },
|
||||
{ '<leader>ur', '<cmd>lua require("neotest").run.run()', desc = 'Run Nearest Test' },
|
||||
{ '<leader>us', '<cmd>lua require("neotest").run.stop()<cr>', desc = 'Stop' },
|
||||
{ '<leader>uO', '<cmd>lua require("neotest").output_panel.toggle<cr>', desc = 'Toggle Output Panel' },
|
||||
|
||||
{ '<leader>v', group = ' Select' },
|
||||
{ '<leader>vB', 'vab', desc = 'Around Bracket' },
|
||||
{ '<leader>vP', 'vap', desc = 'Around Para' },
|
||||
{ '<leader>vQ', 'vaq', desc = 'Around Quote' },
|
||||
{ '<leader>vb', 'vib', desc = 'Bracket' },
|
||||
{ '<leader>vp', 'vip', desc = 'Paragraph' },
|
||||
{ '<leader>vq', 'viq', desc = 'Quote' },
|
||||
|
||||
{ '<leader>w', group = ' Writing' },
|
||||
{ '<leader>wc', '<cmd>set spell!<cr>', desc = 'Spellcheck' },
|
||||
{ '<leader>wF', ':SudaWrite<CR>', desc = 'Suda Write' },
|
||||
{ '<leader>wf', "<cmd>lua require'utils'.sudo_write()<cr>", desc = 'Force Write' },
|
||||
{ '<leader>wj', ']s', desc = 'Next Misspell' },
|
||||
{ '<leader>wk', '[s', desc = 'Prev Misspell' },
|
||||
{ '<leader>wq', '<cmd>wq<cr>', desc = 'Write and Quit' },
|
||||
{ '<leader>ws', '<cmd>Telescope spell_suggest<cr>', desc = 'Suggestions' },
|
||||
{ '<leader>wt', '<cmd>Twilight<cr>', desc = 'Twilight' },
|
||||
{ '<leader>ww', '<cmd>w<cr>', desc = 'Write and Quit' },
|
||||
{ '<leader>wz', '<cmd>ZenMode<cr>', desc = 'ZenMode' },
|
||||
{ '<leader>x', '<cmd>x<cr>', desc = ' Save and Quit' },
|
||||
|
||||
{ '<leader>x', group = ' Diagnostics/Quickfix' },
|
||||
{ '<leader>xx', '<cmd>Trouble diagnostics toggle<cr>', desc = 'Diagnostics (Trouble)' },
|
||||
{ '<leader>xX', '<cmd>Trouble diagnostics toggle filter.buf=0<cr>', desc = 'Buffer Diagnostics (Trouble)' },
|
||||
{ '<leader>xs', '<cmd>Trouble symbols toggle<cr>', desc = 'Symbols (Trouble)' },
|
||||
{ '<leader>xS', '<cmd>Trouble lsp toggle<cr>', desc = 'LSP references/definitions/... (Trouble)' },
|
||||
{ '<leader>xL', '<cmd>Trouble loclist toggle<cr>', desc = 'Location List (Trouble)' },
|
||||
{ '<leader>xQ', '<cmd>Trouble qflist toggle<cr>', desc = 'Quickfix List (Trouble)' },
|
||||
|
||||
{ '<leader>y', group = ' Yank' },
|
||||
{
|
||||
'<leader>yp',
|
||||
function()
|
||||
require('telescope').extensions.yank_history.yank_history({})
|
||||
end,
|
||||
desc = 'Open Yank History',
|
||||
},
|
||||
|
||||
{ '<leader>yP', '<cmd>CopyAbsolutePath<cr>', desc = 'Absolute Path' },
|
||||
{ '<leader>ya', '<cmd>%y+<cr>', desc = 'Copy Whole File' },
|
||||
{ '<leader>yf', '<cmd>CopyFileName<cr>', desc = 'File Name' },
|
||||
{ '<leader>yg', '<cmd>lua require"gitlinker".get_buf_range_url()<cr>', desc = 'Copy Git URL' },
|
||||
{ '<leader>yp', '<cmd>CopyRelativePath<cr>', desc = 'Relative Path' },
|
||||
}
|
||||
|
||||
local v_mappings = {
|
||||
mode = 'v',
|
||||
|
||||
{ '<leader>c', group = ' Code' },
|
||||
{ '<leader>cS', ':sort!<cr>', desc = 'Sort Desc' },
|
||||
{ '<leader>ci', ':sort i<cr>', desc = 'Sort Case Insensitive' },
|
||||
{ '<leader>cs', ':sort<cr>', desc = 'Sort Asc' },
|
||||
{ '<leader>cu', ':!uniq<cr>', desc = 'Unique' },
|
||||
{ '<leader>cx', "<esc><cmd>'<,'>SnipRun<cr>", desc = 'Run Code' },
|
||||
|
||||
{ '<leader>C', group = ' Comment' },
|
||||
{ '<leader>Cb', '<cmd>CBccbox<CR>', desc = 'Comment Box' },
|
||||
{ '<leader>Ct', '<cmd>CBllline<CR>', desc = 'Tiled line' },
|
||||
{ '<leader>Cl', '<cmd>CBline<CR>', desc = 'Line' },
|
||||
{ '<leader>Cm', '<cmd>CBllbox14<CR>', desc = 'Marked' },
|
||||
{ '<leader>Cc', '<cmd>CBcatalog<CR>', desc = 'Catalog' },
|
||||
{ '<leader>Cd', '<cmd>CBd<CR>', desc = 'Delete Comment Style' },
|
||||
|
||||
{ '<leader>j', group = ' Jump' },
|
||||
{
|
||||
'<leader>jN',
|
||||
"<cmd>lua require('flash').jump({search = { forward = false, wrap = false, multi_window = false },})<cr>",
|
||||
desc = 'Search Backward',
|
||||
},
|
||||
{ '<leader>jd', '<cmd>FlashDiagnostics<cr>', desc = 'Diagnostics' },
|
||||
{ '<leader>jj', "<cmd>lua require('flash').remote()<cr>", desc = 'Remote' },
|
||||
{ '<leader>jk', "<cmd>lua require('flash').treesitter()<cr>", desc = 'Treesitter' },
|
||||
{
|
||||
'<leader>jn',
|
||||
"<cmd>lua require('flash').jump({search = { forward = true, wrap = false, multi_window = false },})<cr>",
|
||||
desc = 'Search Forward',
|
||||
},
|
||||
{ '<leader>jp', "<cmd>lua require('flash').jump({continue = true})<cr>", desc = 'Previous Jump' },
|
||||
{ '<leader>js', "<cmd>lua require('flash').jump()<cr>", desc = 'Search' },
|
||||
{ '<leader>jt', "<cmd>lua require('flash').treesitter_search()<cr>", desc = 'Remote Treesitter' },
|
||||
{
|
||||
'<leader>jw',
|
||||
'<cmd>lua require("flash").jump({ pattern = vim.fn.expand("<cword>")})<cr>',
|
||||
desc = 'Current Word',
|
||||
},
|
||||
|
||||
{ '<leader>l', group = ' LSP' },
|
||||
{ '<leader>la', desc = '<cmd><C-U>Lspsaga range_code_action<CR>' },
|
||||
|
||||
{ '<leader>r', group = ' Refactor' },
|
||||
{
|
||||
'<leader>re',
|
||||
"<esc><cmd>lua require('refactoring').refactor('Extract Function')<CR>",
|
||||
desc = 'Extract Function',
|
||||
},
|
||||
{
|
||||
'<leader>rf',
|
||||
"<esc><cmd>lua require('refactoring').refactor('Extract Function To File')<CR>",
|
||||
desc = 'Extract To File',
|
||||
},
|
||||
{ '<leader>ri', "<esc><cmd>lua require('refactoring').refactor('Inline Variable')<CR>", desc = 'Inline Variable' },
|
||||
{
|
||||
'<leader>rr',
|
||||
"<Esc><cmd>lua require('telescope').extensions.refactoring.refactors()<CR>",
|
||||
desc = 'Refactor Commands',
|
||||
},
|
||||
{
|
||||
'<leader>rv',
|
||||
"<esc><cmd>lua require('refactoring').refactor('Extract Variable')<CR>",
|
||||
desc = 'Extract Variable',
|
||||
},
|
||||
|
||||
{ '<leader>y', group = ' Yank' },
|
||||
{ '<leader>yg', '<cmd>lua require"gitlinker".get_buf_range_url("v")<cr>', desc = 'Copy Git URL' },
|
||||
}
|
||||
|
||||
local no_leader_mappings = {
|
||||
mode = 'n',
|
||||
{ '<C-Down>', '<cmd>resize -10<cr>', desc = 'Decrease window height' },
|
||||
{ '<C-Left>', '<cmd>vertical resize -10<cr>', desc = 'Decrease window width' },
|
||||
{ '<C-Right>', '<cmd>vertical resize +10<cr>', desc = 'Increase window width' },
|
||||
{ '<C-Up>', '<cmd>resize +10which_key.add(no_leader_mappings)<cr>', desc = 'Increase window height' },
|
||||
{ '<C-f>', '<cmd>Telescope find_files<cr>', desc = 'Find Files' },
|
||||
{ '<C-g>', '<cmd>Fterm lazygit<cr>', desc = 'Lazygit' },
|
||||
|
||||
{ '<C-h>', '<C-w>h', desc = 'Move Left' },
|
||||
{ '<C-j>', '<C-w>j', desc = 'Move Down' },
|
||||
{ '<C-k>', '<C-w>k', desc = 'Move Up' },
|
||||
{ '<C-l>', '<C-w>l', desc = 'Move Right' },
|
||||
{ '<C-\\>', '<C-w>p', desc = 'Previous Pane' },
|
||||
|
||||
{ '<S-tab>', '<cmd>bprevious<cr>', desc = 'Previous Buffer' },
|
||||
{ '<tab>', '<cmd>bnext<cr>', desc = 'Next Buffer' },
|
||||
{ '<S-h>', '<cmd>bprevious<cr>', desc = 'Previous Buffer' },
|
||||
{ '<S-l>', '<cmd>bnext<cr>', desc = 'Next Buffer' },
|
||||
|
||||
{ 'K', '<cmd>Lspsaga hover_doc<cr>', desc = 'LSP Hover' },
|
||||
{ 'Q', '<cmd>qall!<cr>', desc = 'Force Quit!' },
|
||||
{ 'U', '<cmd>redo<cr>', desc = 'Redo' },
|
||||
|
||||
{ '[', group = ' Previous' },
|
||||
{ '[B', '<cmd>bfirst<cr>', desc = 'First Buffer' },
|
||||
{ '[b', '<cmd>bprevious<cr>', desc = 'Buffer' },
|
||||
{ '[d', '<cmd>Lspsaga diagnostic_jump_prev<cr>', desc = 'Diagnostic' },
|
||||
{ '[e', 'g;', desc = 'Edit' },
|
||||
{ '[g', '<cmd>Gitsigns prev_hunk<cr>', desc = 'Git Hunk' },
|
||||
{ '[j', '<C-o>', desc = 'Jump' },
|
||||
|
||||
{ ']', group = ' Next' },
|
||||
{ ']B', '<cmd>blast<cr>', desc = 'Buffer' },
|
||||
{ ']b', '<cmd>bnext<cr>', desc = 'Buffer' },
|
||||
{ ']d', '<cmd>Lspsaga diagnostic_jump_next<cr>', desc = 'Diagnostic' },
|
||||
{ ']e', 'g,', desc = 'Edit' },
|
||||
{ ']g', '<cmd>Gitsigns next_hunk<cr>', desc = 'Git Hunk' },
|
||||
{ ']j', '<C-i>', desc = 'Jump' },
|
||||
|
||||
{ '<C-n>', '<Plug>(YankyCycleForward)' },
|
||||
{ '<C-p>', '<Plug>(YankyCycleBackward)' },
|
||||
{ 'y', '<Plug>(YankyYank)', mode = { 'n', 'x' }, desc = 'Yank text' },
|
||||
{ 'p', '<Plug>(YankyPutAfter)', mode = { 'n', 'x' }, desc = 'Put yanked text after cursor' },
|
||||
{ 'P', '<Plug>(YankyPutBefore)', mode = { 'n', 'x' }, desc = 'Put yanked text before cursor' },
|
||||
{ 'gp', '<Plug>(YankyGPutAfter)', mode = { 'n', 'x' }, desc = 'Put yanked text after selection' },
|
||||
{ 'gP', '<Plug>(YankyGPutBefore)', mode = { 'n', 'x' }, desc = 'Put yanked text before selection' },
|
||||
|
||||
{
|
||||
'<C-S-Down>',
|
||||
':call vm#commands#add_cursor_down(0, v:count1)<cr>',
|
||||
desc = 'Add Cursor Down',
|
||||
mode = { 'n' },
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
'<C-S-Up>',
|
||||
':call vm#commands#add_cursor_up(0, v:count1)<cr>',
|
||||
desc = 'Add Cursor Up',
|
||||
mode = { 'n' },
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
'<M-S-j>',
|
||||
':call vm#commands#add_cursor_down(0, v:count1)<cr>',
|
||||
desc = 'Add Cursor Down',
|
||||
mode = { 'n' },
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
'<M-S-k>',
|
||||
':call vm#commands#add_cursor_up(0, v:count1)<cr>',
|
||||
desc = 'Add Cursor Down',
|
||||
mode = { 'n' },
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
{
|
||||
'<M-d>',
|
||||
':call vm#commands#ctrln(v:count1)<cr>',
|
||||
desc = 'Multi Edit Next',
|
||||
mode = { 'n' },
|
||||
noremap = true,
|
||||
silent = true,
|
||||
},
|
||||
}
|
||||
|
||||
which_key.setup(setup)
|
||||
which_key.add(n_mappings)
|
||||
which_key.add(v_mappings)
|
||||
which_key.add(no_leader_mappings)
|
||||
@@ -0,0 +1,41 @@
|
||||
local twilight = require('twilight')
|
||||
|
||||
twilight.setup({
|
||||
dimming = { alpha = 0.45, color = { 'Normal', '#ffffff' }, inactive = false },
|
||||
context = 9,
|
||||
treesitter = true,
|
||||
expand = { 'function', 'method', 'table', 'if_statement', 'element' },
|
||||
exclude = {},
|
||||
})
|
||||
|
||||
local zen = require('zen-mode')
|
||||
|
||||
zen.setup({
|
||||
window = {
|
||||
backdrop = 0.95,
|
||||
width = 180,
|
||||
height = 1,
|
||||
options = {
|
||||
signcolumn = 'no',
|
||||
number = false,
|
||||
relativenumber = false,
|
||||
cursorline = false,
|
||||
cursorcolumn = false,
|
||||
foldcolumn = '0',
|
||||
list = false,
|
||||
},
|
||||
},
|
||||
plugins = {
|
||||
options = { enabled = true, ruler = true, showcmd = true },
|
||||
twilight = { enabled = true },
|
||||
gitsigns = { enabled = true },
|
||||
tmux = { enabled = true },
|
||||
kitty = { enabled = false, font = '+4' },
|
||||
},
|
||||
on_open = function(win)
|
||||
vim.o.laststatus = 0
|
||||
end,
|
||||
on_close = function()
|
||||
vim.o.laststatus = 2
|
||||
end,
|
||||
})
|
||||
@@ -5,18 +5,6 @@ return {
|
||||
'rcarriga/nvim-dap-ui',
|
||||
},
|
||||
cmd = { 'DapUIToggle', 'DapToggleRepl', 'DapToggleBreakpoint' },
|
||||
keys = {
|
||||
{ '<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' },
|
||||
},
|
||||
config = function()
|
||||
local dap = require('dap')
|
||||
local dapui = require('dapui')
|
||||
|
||||
@@ -5,16 +5,6 @@ return {
|
||||
'kristijanhusak/vim-dadbod-ui',
|
||||
'kristijanhusak/vim-dadbod-completion',
|
||||
},
|
||||
keys = {
|
||||
{ '<leader>du', ':DBUIToggle<cr>', desc = 'Toggle DB UI' },
|
||||
{ '<leader>db', ':DBUIFindBuffer<cr>', desc = 'DB Find buffer' },
|
||||
{
|
||||
'<leader>dr',
|
||||
':DBUIRenameBuffer<cr>',
|
||||
desc = 'DB Rename buffer',
|
||||
},
|
||||
{ '<leader>dl', ':DBUILastQueryInfo<cr>', desc = 'DB Last query' },
|
||||
},
|
||||
config = function()
|
||||
local function db_completion()
|
||||
require('plugins.completion.cmp').setup.buffer({
|
||||
|
||||
+162
-271
@@ -1,278 +1,169 @@
|
||||
return {
|
||||
{
|
||||
"nvim-neo-tree/neo-tree.nvim",
|
||||
keys = {
|
||||
{ "<leader>ee", ":Neotree toggle float<CR>", silent = true, desc = "Float File Explorer" },
|
||||
{ "<leader><tab>", ":Neotree toggle left<CR>", silent = true, desc = " Left File Explorer" },
|
||||
},
|
||||
cmd = { "Neotree" },
|
||||
opts = {
|
||||
filesystem = {
|
||||
filtered_items = {
|
||||
visible = true,
|
||||
show_hidden_count = true,
|
||||
hide_dotfiles = false,
|
||||
hide_gitignored = true,
|
||||
hide_by_name = {
|
||||
".git",
|
||||
".DS_Store",
|
||||
"thumbs.db",
|
||||
".venv",
|
||||
},
|
||||
never_show = {},
|
||||
},
|
||||
},
|
||||
window = {
|
||||
position = "right",
|
||||
width = 35,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"folke/flash.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
modes = {
|
||||
char = {
|
||||
jump_labels = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
-- stylua: ignore
|
||||
keys = {
|
||||
{
|
||||
'<leader>jN',
|
||||
"<cmd>lua require('flash').jump({search = { forward = false, wrap = false, multi_window = false },})<cr>", mode = { "n", "v" },
|
||||
desc = 'Search Backward',
|
||||
},
|
||||
{ '<leader>jc', '*', desc = 'Word' },
|
||||
{ '<leader>jd', '<cmd>FlashDiagnostics<cr>', mode = { "n", "v" }, desc = 'Diagnostics' },
|
||||
{ '<leader>jf', '<cmd>Telescope jumplist<cr>', desc = 'Jumplist' },
|
||||
{ '<leader>jh', '<C-o>', desc = 'Backward' },
|
||||
{ '<leader>jj', "<cmd>lua require('flash').remote()<cr>", mode = { "n", "v" }, desc = 'Remote' },
|
||||
{ '<leader>jk', "<cmd>lua require('flash').treesitter()<cr>", mode = { "n", "v" }, desc = 'Treesitter' },
|
||||
{ '<leader>jl', '<C-i>', desc = 'Forward' },
|
||||
{
|
||||
'<leader>jn',
|
||||
"<cmd>lua require('flash').jump({search = { forward = true, wrap = false, multi_window = false },})<cr>", mode = { "n", "v" },
|
||||
desc = 'Search Forward',
|
||||
'nvim-neo-tree/neo-tree.nvim',
|
||||
cmd = { 'Neotree' },
|
||||
opts = {
|
||||
filesystem = {
|
||||
filtered_items = {
|
||||
visible = true,
|
||||
show_hidden_count = true,
|
||||
hide_dotfiles = false,
|
||||
hide_gitignored = true,
|
||||
hide_by_name = {
|
||||
'.git',
|
||||
'.DS_Store',
|
||||
'thumbs.db',
|
||||
'.venv',
|
||||
},
|
||||
never_show = {},
|
||||
},
|
||||
},
|
||||
window = {
|
||||
position = 'right',
|
||||
width = 35,
|
||||
},
|
||||
},
|
||||
},
|
||||
{ '<leader>jp', "<cmd>lua require('flash').jump({continue = true})<cr>", mode = { "n", "v" }, desc = 'Previous Jump' },
|
||||
{ '<leader>js', "<cmd>lua require('flash').jump()<cr>", mode = { "n", "v" }, desc = 'Search' },
|
||||
{ '<leader>jt', "<cmd>lua require('flash').treesitter_search()<cr>", mode = { "n", "v" }, desc = 'Remote Treesitter' },
|
||||
{
|
||||
'<leader>jw',
|
||||
'<cmd>lua require("flash").jump({ pattern = vim.fn.expand("<cword>")})<cr>', mode = { "n", "v" },
|
||||
desc = 'Current Word',
|
||||
'folke/flash.nvim',
|
||||
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',
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require('plugins.configs.jump')
|
||||
end,
|
||||
},
|
||||
{
|
||||
'folke/trouble.nvim',
|
||||
lazy = true,
|
||||
cmd = { 'Trouble', 'TroubleToggle', 'TroubleRefresh' },
|
||||
opts = {
|
||||
modes = {
|
||||
lsp = {
|
||||
win = { position = 'right' },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
'nvim-telescope/telescope.nvim',
|
||||
cmd = 'Telescope',
|
||||
version = false,
|
||||
lazy = true,
|
||||
dependencies = {
|
||||
{ 'nvim-tree/nvim-web-devicons' },
|
||||
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'zig' },
|
||||
{ 'nvim-telescope/telescope-ui-select.nvim' },
|
||||
{ 'nvim-telescope/telescope-symbols.nvim' },
|
||||
{ 'nvim-telescope/telescope-file-browser.nvim' },
|
||||
{ 'debugloop/telescope-undo.nvim' },
|
||||
},
|
||||
config = function()
|
||||
require('plugins.configs.telescope')
|
||||
end,
|
||||
},
|
||||
{
|
||||
'smjonas/inc-rename.nvim',
|
||||
cmd = 'IncRename',
|
||||
config = true,
|
||||
},
|
||||
{
|
||||
|
||||
},
|
||||
},
|
||||
{
|
||||
"folke/trouble.nvim",
|
||||
lazy = true,
|
||||
cmd = { "Trouble", "TroubleToggle", "TroubleRefresh" },
|
||||
opts = {
|
||||
modes = {
|
||||
lsp = {
|
||||
win = { position = "right" },
|
||||
},
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>xx", "<cmd>Trouble diagnostics toggle<cr>", desc = "Diagnostics (Trouble)" },
|
||||
{ "<leader>xX", "<cmd>Trouble diagnostics toggle filter.buf=0<cr>", desc = "Buffer Diagnostics (Trouble)" },
|
||||
{ "<leader>xs", "<cmd>Trouble symbols toggle<cr>", desc = "Symbols (Trouble)" },
|
||||
{ "<leader>xS", "<cmd>Trouble lsp toggle<cr>", desc = "LSP references/definitions/... (Trouble)" },
|
||||
{ "<leader>xL", "<cmd>Trouble loclist toggle<cr>", desc = "Location List (Trouble)" },
|
||||
{ "<leader>xQ", "<cmd>Trouble qflist toggle<cr>", desc = "Quickfix List (Trouble)" },
|
||||
{
|
||||
"[q",
|
||||
function()
|
||||
if require("trouble").is_open() then
|
||||
require("trouble").prev({ skip_groups = true, jump = true })
|
||||
else
|
||||
local ok, err = pcall(vim.cmd.cprev)
|
||||
if not ok then
|
||||
vim.notify(err, vim.log.levels.ERROR)
|
||||
end
|
||||
end
|
||||
end,
|
||||
desc = "Previous Trouble/Quickfix Item",
|
||||
},
|
||||
{
|
||||
"]q",
|
||||
function()
|
||||
if require("trouble").is_open() then
|
||||
require("trouble").next({ skip_groups = true, jump = true })
|
||||
else
|
||||
local ok, err = pcall(vim.cmd.cnext)
|
||||
if not ok then
|
||||
vim.notify(err, vim.log.levels.ERROR)
|
||||
end
|
||||
end
|
||||
end,
|
||||
desc = "Next Trouble/Quickfix Item",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
cmd = "Telescope",
|
||||
version = false,
|
||||
lazy = true,
|
||||
dependencies = {
|
||||
{ "nvim-tree/nvim-web-devicons" },
|
||||
{ "nvim-telescope/telescope-fzf-native.nvim", build = "zig" },
|
||||
{ "nvim-telescope/telescope-ui-select.nvim" },
|
||||
{ "nvim-telescope/telescope-symbols.nvim" },
|
||||
{ "nvim-telescope/telescope-file-browser.nvim" },
|
||||
{ "debugloop/telescope-undo.nvim" },
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>ff", "<cmd>Telescope find_files<cr>", desc = "Find Files (CWD)" },
|
||||
{ "<leader>fg", "<cmd>Telescope live_grep<cr>", desc = "Live Grep" },
|
||||
{ "<leader>fb", "<cmd>Telescope buffers<cr>", desc = "Buffers" },
|
||||
{ "<leader>fh", "<cmd>Telescope help_tags<cr>", desc = "Find Help" },
|
||||
{ "<leader>fo", "<cmd>Telescope oldfiles<cr>", desc = "Old Recent Files" },
|
||||
{ "<leader>fm", "<cmd>Telescope marks<cr>", desc = "Marks" },
|
||||
{ "<leader>fH", "<cmd>Telescope highlights<cr>", desc = "Find Highlight Groups" },
|
||||
{ "<leader>fG", "<cmd>Telescope grep_string<cr>", desc = "Grep String" },
|
||||
{ "<leader>kk", "<cmd>Telescope keymaps<cr>", desc = "Keymaps" },
|
||||
{ "<leader>kc", "<cmd>Telescope commands<cr>", desc = "Commands" },
|
||||
{ "<leader>kh", "<cmd>Telescope command_history<cr>", desc = "Command History" },
|
||||
{ "<leader>ks", "<cmd>Telescope search_history<cr>", desc = "Search History" },
|
||||
{ "<leader>fd", "<cmd>Telescope diagnostics<cr>", desc = "Diagnostics" },
|
||||
{ "<leader>ef", "<cmd>Telescope file_browser<cr>", desc = "File Browser" },
|
||||
{ "<leader>cr", "<cmd>Telescope reloader<cr>", desc = "Reload Module" },
|
||||
{ "<leader>cn", "<cmd>Telescope notify<cr>", desc = "Notifications" },
|
||||
{ "<leader>fu", "<cmd>Telescope undo<cr>", desc = "Undo History" },
|
||||
{ "<leader>fb", "<cmd>Telescope buffers<cr>", desc = "Buffers" },
|
||||
{ "<leader>fq", "<cmd>Telescope quickfix<cr>", desc = "Quickfix" },
|
||||
{ "<leader>fs", "<cmd>Telescope current_buffer_fuzzy_find<cr>", desc = "Fuzzy Find in File" },
|
||||
},
|
||||
|
||||
config = function()
|
||||
require("configs.telescope")
|
||||
end,
|
||||
},
|
||||
{
|
||||
"smjonas/inc-rename.nvim",
|
||||
cmd = "IncRename",
|
||||
config = true,
|
||||
},
|
||||
{
|
||||
|
||||
"akinsho/toggleterm.nvim",
|
||||
cmd = { "ToggleTerm" },
|
||||
version = "v2.*",
|
||||
keys = {
|
||||
{ "<leader>t1", "<cmd>1ToggleTerm<cr>", desc = "Toggle Terminal", mode = "n" },
|
||||
{ "<leader>t2", "<cmd>2ToggleTerm<cr>", desc = "Toggle Terminal", mode = "n" },
|
||||
},
|
||||
config = function()
|
||||
require("configs.toggleterm")
|
||||
end,
|
||||
},
|
||||
{
|
||||
"2kabhishek/termim.nvim",
|
||||
cmd = { "Fterm", "FTerm", "Sterm", "STerm", "Vterm", "VTerm" },
|
||||
keys = {
|
||||
{ "<leader>th", "<cmd>Sterm<cr>", desc = "Horizontal Terminal" },
|
||||
{ "<leader>tv", "<cmd>Vterm<cr>", desc = "Vertical Terminal" },
|
||||
},
|
||||
},
|
||||
{
|
||||
"nvimdev/lspsaga.nvim",
|
||||
lazy = true,
|
||||
event = "LspAttach",
|
||||
config = function()
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"<leader>lo",
|
||||
"<cmd>Lspsaga outline<cr>",
|
||||
{ desc = "Lspsaga | Code Outline", silent = true }
|
||||
)
|
||||
local icons = require("lib.icons")
|
||||
require("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,
|
||||
},
|
||||
lightbulb = {
|
||||
enable = false,
|
||||
enable_in_insert = true,
|
||||
sign = true,
|
||||
sign_priority = 40,
|
||||
virtual_text = true,
|
||||
},
|
||||
symbol_in_winbar = {
|
||||
enable = false,
|
||||
separator = " ",
|
||||
hide_keyword = true,
|
||||
show_file = true,
|
||||
folder_level = 0,
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"HiPhish/rainbow-delimiters.nvim",
|
||||
event = { "BufReadPost", "BufNewFile" },
|
||||
config = function()
|
||||
local rainbow_delimiters = require("rainbow-delimiters")
|
||||
require("rainbow-delimiters.setup").setup({
|
||||
{
|
||||
strategy = {
|
||||
[""] = rainbow_delimiters.strategy["global"],
|
||||
vim = rainbow_delimiters.strategy["local"],
|
||||
},
|
||||
query = {
|
||||
[""] = "rainbow-delimiters",
|
||||
lua = "rainbow-blocks",
|
||||
},
|
||||
priority = {
|
||||
[""] = 110,
|
||||
lua = 210,
|
||||
},
|
||||
highlight = {
|
||||
"RainbowDelimiterRed",
|
||||
"RainbowDelimiterYellow",
|
||||
"RainbowDelimiterBlue",
|
||||
"RainbowDelimiterOrange",
|
||||
"RainbowDelimiterGreen",
|
||||
"RainbowDelimiterViolet",
|
||||
"RainbowDelimiterCyan",
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"2kabhishek/tdo.nvim",
|
||||
dependencies = "nvim-telescope/telescope.nvim",
|
||||
cmd = { "Tdo", "TdoEntry", "TdoNote", "TdoTodos", "TdoToggle", "TdoFind", "TdoFiles" },
|
||||
keys = {
|
||||
{ "<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>nt", "<cmd>TdoTodos<cr>", desc = "Incomplete Todos" },
|
||||
{ "<leader>nx", "<cmd>TdoToggle<cr>", desc = "Toggle Todo" },
|
||||
},
|
||||
},
|
||||
'akinsho/toggleterm.nvim',
|
||||
cmd = { 'ToggleTerm' },
|
||||
version = 'v2.*',
|
||||
config = function()
|
||||
require('plugins.configs.toggleterm')
|
||||
end,
|
||||
},
|
||||
{
|
||||
'2kabhishek/termim.nvim',
|
||||
cmd = { 'Fterm', 'FTerm', 'Sterm', 'STerm', 'Vterm', 'VTerm' },
|
||||
},
|
||||
{
|
||||
'nvimdev/lspsaga.nvim',
|
||||
lazy = true,
|
||||
event = 'LspAttach',
|
||||
config = function()
|
||||
local icons = require('lib.icons')
|
||||
require('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,
|
||||
},
|
||||
lightbulb = {
|
||||
enable = false,
|
||||
enable_in_insert = true,
|
||||
sign = true,
|
||||
sign_priority = 40,
|
||||
virtual_text = true,
|
||||
},
|
||||
symbol_in_winbar = {
|
||||
enable = false,
|
||||
separator = ' ',
|
||||
hide_keyword = true,
|
||||
show_file = true,
|
||||
folder_level = 0,
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
'HiPhish/rainbow-delimiters.nvim',
|
||||
event = { 'BufReadPost', 'BufNewFile' },
|
||||
config = function()
|
||||
local rainbow_delimiters = require('rainbow-delimiters')
|
||||
require('rainbow-delimiters.setup').setup({
|
||||
{
|
||||
strategy = {
|
||||
[''] = rainbow_delimiters.strategy['global'],
|
||||
vim = rainbow_delimiters.strategy['local'],
|
||||
},
|
||||
query = {
|
||||
[''] = 'rainbow-delimiters',
|
||||
lua = 'rainbow-blocks',
|
||||
},
|
||||
priority = {
|
||||
[''] = 110,
|
||||
lua = 210,
|
||||
},
|
||||
highlight = {
|
||||
'RainbowDelimiterRed',
|
||||
'RainbowDelimiterYellow',
|
||||
'RainbowDelimiterBlue',
|
||||
'RainbowDelimiterOrange',
|
||||
'RainbowDelimiterGreen',
|
||||
'RainbowDelimiterViolet',
|
||||
'RainbowDelimiterCyan',
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
||||
+54
-68
@@ -2,20 +2,36 @@ return {
|
||||
{
|
||||
'ThePrimeagen/refactoring.nvim',
|
||||
config = function()
|
||||
require('refactoring').setup()
|
||||
-- vim.keymap.set("x", "<leader>re", ":Refactor extract ")
|
||||
-- vim.keymap.set("x", "<leader>rf", ":Refactor extract_to_file ")
|
||||
-- vim.keymap.set("x", "<leader>rv", ":Refactor extract_var ")
|
||||
-- vim.keymap.set({ "n", "x" }, "<leader>ri", ":Refactor inline_var")
|
||||
-- vim.keymap.set("n", "<leader>rI", ":Refactor inline_func")
|
||||
-- vim.keymap.set("n", "<leader>rb", ":Refactor extract_block")
|
||||
-- vim.keymap.set("n", "<leader>rbf", ":Refactor extract_block_to_file")
|
||||
-- load refactoring Telescope extension
|
||||
require('telescope').load_extension('refactoring')
|
||||
require('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,
|
||||
|
||||
vim.keymap.set({ 'n', 'x' }, '<leader>rr', function()
|
||||
require('telescope').extensions.refactoring.refactors()
|
||||
end, { desc = 'Refactor' })
|
||||
cpp = false,
|
||||
c = false,
|
||||
h = false,
|
||||
hpp = false,
|
||||
cxx = false,
|
||||
},
|
||||
printf_statements = {},
|
||||
print_var_statements = {},
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
'folke/which-key.nvim',
|
||||
event = 'VeryLazy',
|
||||
config = function()
|
||||
require('plugins.configs.whichkey')
|
||||
end,
|
||||
},
|
||||
{
|
||||
@@ -27,6 +43,22 @@ return {
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
'uga-rosa/ccc.nvim',
|
||||
cmd = { 'CccHighlighterToggle', 'CccConvert', 'CccPick' },
|
||||
config = function()
|
||||
vim.opt.termguicolors = true
|
||||
|
||||
local ccc = require('ccc')
|
||||
|
||||
ccc.setup({
|
||||
highlighter = {
|
||||
auto_enable = true,
|
||||
lsp = true,
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
'2kabhishek/nerdy.nvim',
|
||||
dependencies = { 'stevearc/dressing.nvim' },
|
||||
@@ -36,29 +68,6 @@ return {
|
||||
'folke/persistence.nvim',
|
||||
event = 'BufReadPre',
|
||||
opts = { options = vim.opt.sessionoptions:get() },
|
||||
keys = {
|
||||
{
|
||||
'<leader>ms',
|
||||
function()
|
||||
require('persistence').load()
|
||||
end,
|
||||
desc = 'Restore Session',
|
||||
},
|
||||
{
|
||||
'<leader>ml',
|
||||
function()
|
||||
require('persistence').load({ last = true })
|
||||
end,
|
||||
desc = 'Restore Last Session',
|
||||
},
|
||||
{
|
||||
'<leader>md',
|
||||
function()
|
||||
require('persistence').stop()
|
||||
end,
|
||||
desc = "Don't Save Current Session",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
'nvim-lua/plenary.nvim',
|
||||
@@ -68,43 +77,23 @@ return {
|
||||
'iamcco/markdown-preview.nvim',
|
||||
build = 'cd app && yarn install',
|
||||
ft = { 'markdown' },
|
||||
keys = {
|
||||
{
|
||||
'<leader>cm',
|
||||
'<cmd>MarkdownPreviewToggle<CR>',
|
||||
desc = 'toggle markdown preview',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
'nvim-pack/nvim-spectre',
|
||||
build = false,
|
||||
cmd = 'Spectre',
|
||||
opts = { open_cmd = 'noswapfile vnew' },
|
||||
keys = {
|
||||
{
|
||||
'<leader>mr',
|
||||
function()
|
||||
require('spectre').open()
|
||||
end,
|
||||
desc = 'Replace in Files (Spectre)',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
'szw/vim-maximizer',
|
||||
|
||||
keys = {
|
||||
{ '<leader>mm', '<cmd>MaximizerToggle<CR>', desc = 'Maximize/minimize a split' },
|
||||
},
|
||||
config = function()
|
||||
require('plugins.configs.spectre')
|
||||
end,
|
||||
},
|
||||
{
|
||||
'folke/zen-mode.nvim',
|
||||
cmd = { 'ZenMode' },
|
||||
opts = {},
|
||||
keys = {
|
||||
{ '<leader>wz', '<cmd>ZenMode<cr>', desc = 'Toggle zen mode' },
|
||||
dependencies = {
|
||||
'folke/twilight.nvim',
|
||||
},
|
||||
config = function()
|
||||
require('plugins.configs.zen&twilight')
|
||||
end,
|
||||
cmd = { 'ZenMode', 'Twilight' },
|
||||
},
|
||||
{
|
||||
'creativenull/dotfyle-metadata.nvim',
|
||||
@@ -171,8 +160,5 @@ return {
|
||||
require('hardtime').setup({ enabled = true })
|
||||
end,
|
||||
cmd = 'Hardtime',
|
||||
init = function()
|
||||
vim.keymap.set('n', '<leader>ch', '<cmd>HardtimeToggle<cr>', { desc = 'Toggle Hardtime' })
|
||||
end,
|
||||
},
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
-- Define nvim-lint linters here
|
||||
local linting_servers = {
|
||||
'cpplint',
|
||||
'eslint_d',
|
||||
'cspell',
|
||||
'ruff',
|
||||
@@ -26,8 +25,6 @@ return {
|
||||
|
||||
lint.linters_by_ft = {
|
||||
-- lua = { 'selene' },
|
||||
cpp = { 'cpplint' },
|
||||
c = { 'cpplint' },
|
||||
javascript = { 'eslint_d' },
|
||||
typescript = { 'eslint_d' },
|
||||
javascriptreact = { 'eslint_d' },
|
||||
@@ -46,7 +43,7 @@ return {
|
||||
end,
|
||||
})
|
||||
|
||||
vim.keymap.set('n', '<leader>cl', function()
|
||||
vim.keymap.set('n', '<leader>cL', function()
|
||||
lint.try_lint()
|
||||
end, { desc = 'Trigger linting for current file' })
|
||||
end,
|
||||
|
||||
+1
-11
@@ -8,7 +8,7 @@ return {
|
||||
'williamboman/mason-lspconfig.nvim',
|
||||
},
|
||||
config = function()
|
||||
require('configs.lsp')
|
||||
require('plugins.configs.lsp')
|
||||
end,
|
||||
},
|
||||
{
|
||||
@@ -30,14 +30,4 @@ return {
|
||||
})
|
||||
end,
|
||||
},
|
||||
-- {
|
||||
-- "nvimtools/none-ls.nvim", -- configure formatters & linters
|
||||
-- event = { "BufRead", "FileType" },
|
||||
-- dependencies = {
|
||||
-- "jay-babu/mason-null-ls.nvim",
|
||||
-- },
|
||||
-- config = function()
|
||||
-- require("configs.none-ls")
|
||||
-- end,
|
||||
-- },
|
||||
}
|
||||
@@ -24,17 +24,4 @@ return {
|
||||
},
|
||||
})
|
||||
end,
|
||||
keys = {
|
||||
{ '<leader>uc', '<cmd>lua require("neotest").run.run()<cr>', desc = 'Run Current Test' },
|
||||
{ '<leader>uf', '<cmd>lua require("neotest").run.run(vim.fn.expand("%"))<cr>', desc = 'Run Test File' },
|
||||
{
|
||||
'<leader>uo',
|
||||
'<cmd>lua require("neotest").output.open({ enter = true, auto_close = true })<cr>',
|
||||
desc = 'Show Output',
|
||||
},
|
||||
{ '<leader>uS', '<cmd>lua require("neotest").summary.toggle<cr>', desc = 'Toggle Summary' },
|
||||
{ '<leader>ur', '<cmd>lua require("neotest").run.run()', desc = 'Run Nearest Test' },
|
||||
{ '<leader>us', '<cmd>lua require("neotest").run.stop()<cr>', desc = 'Stop' },
|
||||
{ '<leader>uO', '<cmd>lua require("neotest").output_panel.toggle<cr>', desc = 'Toggle Output Panel' },
|
||||
},
|
||||
}
|
||||
+177
-184
@@ -1,187 +1,180 @@
|
||||
return {
|
||||
{
|
||||
"rcarriga/nvim-notify",
|
||||
event = "VeryLazy",
|
||||
keys = {
|
||||
{
|
||||
"<leader>mn",
|
||||
function()
|
||||
require("notify").dismiss({ silent = true, pending = true })
|
||||
end,
|
||||
desc = "Dismiss All Notifications",
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
level = 2,
|
||||
minimum_width = 50,
|
||||
stages = "fade",
|
||||
timeout = 3000,
|
||||
top_down = true,
|
||||
render = "compact",
|
||||
background_colour = "#000000",
|
||||
},
|
||||
},
|
||||
{
|
||||
"folke/noice.nvim",
|
||||
event = "UIEnter",
|
||||
dependencies = {
|
||||
{ "MunifTanjim/nui.nvim", lazy = true },
|
||||
"rcarriga/nvim-notify",
|
||||
},
|
||||
opts = {
|
||||
cmdline = {
|
||||
view = "cmdline",
|
||||
format = {
|
||||
cmdline = { icon = "▍" },
|
||||
substitute = {
|
||||
pattern = "^:%%?s/",
|
||||
icon = " ",
|
||||
ft = "regex",
|
||||
opts = { border = { text = { top = " sub (old/new/) " } } },
|
||||
},
|
||||
input = { view = "cmdline_input", icon = "█" },
|
||||
},
|
||||
},
|
||||
routes = {
|
||||
{
|
||||
view = "notify",
|
||||
filter = { event = "msg_showmode" },
|
||||
},
|
||||
{
|
||||
filter = {
|
||||
event = "msg_show",
|
||||
kind = "",
|
||||
find = "written",
|
||||
},
|
||||
opts = { skip = true },
|
||||
},
|
||||
},
|
||||
lsp = {
|
||||
progress = {
|
||||
enabled = false,
|
||||
-- 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.
|
||||
format = "lsp_progress",
|
||||
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,
|
||||
silent = false, -- set to true to not show a message if hover is not available
|
||||
view = nil, -- when nil, use defaults from documentation
|
||||
opts = {}, -- merged with defaults from documentation
|
||||
},
|
||||
signature = {
|
||||
enabled = false,
|
||||
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
|
||||
opts = {}, -- merged with defaults from documentation
|
||||
},
|
||||
message = {
|
||||
-- Messages shown by lsp servers
|
||||
enabled = true,
|
||||
view = "notify",
|
||||
opts = {},
|
||||
},
|
||||
-- defaults for hover and signature help
|
||||
documentation = {
|
||||
view = "hover",
|
||||
opts = {
|
||||
lang = "markdown",
|
||||
replace = true,
|
||||
render = "plain",
|
||||
format = { "{message}" },
|
||||
win_options = { concealcursor = "n", conceallevel = 3 },
|
||||
},
|
||||
},
|
||||
},
|
||||
presets = {
|
||||
bottom_search = true, -- 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 = false, -- enables an input dialog for inc-rename.nvim
|
||||
lsp_doc_border = true, -- add a border to hover docs and signature help
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"stevearc/dressing.nvim",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
config = function()
|
||||
local dressing = require("dressing")
|
||||
{
|
||||
'rcarriga/nvim-notify',
|
||||
event = 'VeryLazy',
|
||||
keys = {
|
||||
{
|
||||
'<leader>mn',
|
||||
function()
|
||||
require('notify').dismiss({ silent = true, pending = true })
|
||||
end,
|
||||
desc = 'Dismiss All Notifications',
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
level = 2,
|
||||
minimum_width = 50,
|
||||
stages = 'fade',
|
||||
timeout = 3000,
|
||||
top_down = true,
|
||||
render = 'compact',
|
||||
background_colour = '#000000',
|
||||
},
|
||||
},
|
||||
{
|
||||
'folke/noice.nvim',
|
||||
event = 'UIEnter',
|
||||
dependencies = {
|
||||
{ 'MunifTanjim/nui.nvim', lazy = true },
|
||||
'rcarriga/nvim-notify',
|
||||
},
|
||||
opts = {
|
||||
cmdline = {
|
||||
view = 'cmdline',
|
||||
format = {
|
||||
cmdline = { icon = '▍' },
|
||||
substitute = {
|
||||
pattern = '^:%%?s/',
|
||||
icon = ' ',
|
||||
ft = 'regex',
|
||||
opts = { border = { text = { top = ' sub (old/new/) ' } } },
|
||||
},
|
||||
input = { view = 'cmdline_input', icon = '█' },
|
||||
},
|
||||
},
|
||||
routes = {
|
||||
{
|
||||
view = 'notify',
|
||||
filter = { event = 'msg_showmode' },
|
||||
},
|
||||
{
|
||||
filter = {
|
||||
event = 'msg_show',
|
||||
kind = '',
|
||||
find = 'written',
|
||||
},
|
||||
opts = { skip = true },
|
||||
},
|
||||
},
|
||||
lsp = {
|
||||
progress = {
|
||||
enabled = false,
|
||||
format = 'lsp_progress',
|
||||
format_done = 'lsp_progress_done',
|
||||
throttle = 1000 / 30,
|
||||
view = 'mini',
|
||||
},
|
||||
override = {
|
||||
['vim.lsp.util.convert_input_to_markdown_lines'] = true,
|
||||
['vim.lsp.util.stylize_markdown'] = true,
|
||||
['cmp.entry.get_documentation'] = true,
|
||||
},
|
||||
hover = {
|
||||
enabled = true,
|
||||
silent = false,
|
||||
view = nil,
|
||||
opts = {},
|
||||
},
|
||||
signature = {
|
||||
enabled = false,
|
||||
auto_open = {
|
||||
enabled = true,
|
||||
trigger = true,
|
||||
luasnip = true,
|
||||
throttle = 50,
|
||||
},
|
||||
view = nil,
|
||||
opts = {},
|
||||
},
|
||||
message = {
|
||||
enabled = true,
|
||||
view = 'notify',
|
||||
opts = {},
|
||||
},
|
||||
documentation = {
|
||||
view = 'hover',
|
||||
opts = {
|
||||
lang = 'markdown',
|
||||
replace = true,
|
||||
render = 'plain',
|
||||
format = { '{message}' },
|
||||
win_options = { concealcursor = 'n', conceallevel = 3 },
|
||||
},
|
||||
},
|
||||
},
|
||||
presets = {
|
||||
bottom_search = true,
|
||||
command_palette = false,
|
||||
long_message_to_split = true,
|
||||
inc_rename = false,
|
||||
lsp_doc_border = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
'stevearc/dressing.nvim',
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
config = function()
|
||||
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 = "left",
|
||||
insert_only = true,
|
||||
start_in_insert = true,
|
||||
border = "rounded",
|
||||
relative = "cursor",
|
||||
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,
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"nvim-lualine/lualine.nvim",
|
||||
event = { "BufReadPost", "BufNewFile" },
|
||||
config = function()
|
||||
require("configs.lualine")
|
||||
end,
|
||||
},
|
||||
-- {
|
||||
-- "nvim-tree/nvim-web-devicons",
|
||||
-- config = true,
|
||||
-- },
|
||||
{
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
main = "ibl",
|
||||
event = { "BufReadPost", "BufNewFile" },
|
||||
opts = {
|
||||
exclude = {
|
||||
filetypes = { "help", "alpha", "dashboard", "neo-tree", "Trouble", "lazy" },
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"nvimdev/dashboard-nvim",
|
||||
cmd = "Dashboard",
|
||||
config = function()
|
||||
require("configs.dashboard")
|
||||
end,
|
||||
event = function()
|
||||
if vim.fn.argc() == 0 then
|
||||
return "VimEnter"
|
||||
end
|
||||
end,
|
||||
},
|
||||
dressing.setup({
|
||||
win_options = {
|
||||
winblend = 10,
|
||||
winhighlight = 'Normal:DressingInputNormalFloat,NormalFloat:DressingInputNormalFloat,FloatBorder:DressingInputFloatBorder',
|
||||
},
|
||||
input = {
|
||||
enabled = true,
|
||||
default_prompt = 'Input:',
|
||||
prompt_align = 'left',
|
||||
insert_only = true,
|
||||
start_in_insert = true,
|
||||
border = 'rounded',
|
||||
relative = 'cursor',
|
||||
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,
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
'nvim-lualine/lualine.nvim',
|
||||
event = { 'BufReadPost', 'BufNewFile' },
|
||||
config = function()
|
||||
require('plugins.configs.lualine')
|
||||
end,
|
||||
},
|
||||
-- {
|
||||
-- "nvim-tree/nvim-web-devicons",
|
||||
-- config = true,
|
||||
-- },
|
||||
{
|
||||
'lukas-reineke/indent-blankline.nvim',
|
||||
main = 'ibl',
|
||||
event = { 'BufReadPost', 'BufNewFile' },
|
||||
opts = {
|
||||
exclude = {
|
||||
filetypes = { 'help', 'alpha', 'dashboard', 'neo-tree', 'Trouble', 'lazy' },
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
'nvimdev/dashboard-nvim',
|
||||
cmd = 'Dashboard',
|
||||
config = function()
|
||||
require('plugins.configs.dashboard')
|
||||
end,
|
||||
event = function()
|
||||
if vim.fn.argc() == 0 then
|
||||
return 'VimEnter'
|
||||
end
|
||||
end,
|
||||
},
|
||||
}
|
||||
@@ -1,170 +0,0 @@
|
||||
local icons = require("lib.icons")
|
||||
return {
|
||||
"folke/which-key.nvim",
|
||||
event = "UIEnter",
|
||||
opts = {
|
||||
preset = "helix",
|
||||
icons = {
|
||||
breadcrumb = icons.ui.ArrowOpen,
|
||||
separator = icons.ui.Arrow,
|
||||
group = "",
|
||||
keys = {
|
||||
Space = icons.ui.Rocket,
|
||||
},
|
||||
rules = false, -- enable auto icon rules
|
||||
},
|
||||
triggers = {
|
||||
{ "<auto>", mode = "nixsotc" },
|
||||
{ "<leader>", mode = { "n", "v" } },
|
||||
},
|
||||
spec = {
|
||||
mode = { "n", "v" },
|
||||
{ "[", group = " Previous" },
|
||||
{ "]", group = " Next" },
|
||||
{ "<leader>b", group = " Debug" },
|
||||
{ "<leader>c", group = " Code" },
|
||||
{ "<leader>C", group = " Comment" },
|
||||
{ "<leader>d", group = " Database" },
|
||||
{ "<leader>e", group = " Edit" },
|
||||
{ "<leader>f", group = " Find" },
|
||||
{ "<leader>i", group = " Insert" },
|
||||
{ "<leader>j", group = " Jump" },
|
||||
{ "<leader>k", group = " Keys" },
|
||||
{ "<leader>l", group = " LSP" },
|
||||
{ "<leader>m", group = " Misc" },
|
||||
{ "<leader>n", group = " Notes" },
|
||||
{ "<leader>q", group = " Quit" },
|
||||
{ "<leader>r", group = " Run" },
|
||||
{ "<leader>s", group = " Split" },
|
||||
{ "<leader>t", group = " Terminal" },
|
||||
{ "<leader>u", group = " Test" },
|
||||
{ "<leader>v", group = " Select" },
|
||||
{ "<leader>w", group = " Writing" },
|
||||
{ "<leader>x", group = " Diagnostics/Quickfix" },
|
||||
{ "<leader>y", group = " Yank" },
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>?",
|
||||
function()
|
||||
require("which-key").show({ global = false })
|
||||
end,
|
||||
desc = " Buffer Local Keymaps (which-key)",
|
||||
},
|
||||
-- other keymaps
|
||||
{ "<leader>cR", "<cmd>ReloadConfig<cr>", desc = "Reload Configs" },
|
||||
{ "<leader>cd", "<cmd>RootDir<cr>", desc = "Root Directory" },
|
||||
{ "<leader>cc", "<cmd>:g/^\\s*$/d<cr>", desc = "Clean Empty Lines" },
|
||||
{ "<leader>co", "<cmd>Dashboard<cr>", desc = "Dashboard" },
|
||||
{ "<leader>cr", "<cmd>Telescope reloader<cr>", desc = "Reload Module" },
|
||||
--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>em", "<cmd>e README.md<cr>", desc = "Readme" },
|
||||
{ "<leader>en", "<cmd>enew<cr>", desc = "New File" },
|
||||
-- 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" },
|
||||
-- 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" },
|
||||
-- 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>ww", "<cmd>w<cr>", desc = "Write and Quit" },
|
||||
{ "<leader>x", "<cmd>x<cr>", desc = " Save and Quit" },
|
||||
--quit
|
||||
{ "<leader>qa", "<cmd>qall<cr>", desc = "Quit All" },
|
||||
{ "<leader>qc", "<cmd>bw<cr>", desc = "Close Buffer" },
|
||||
{ "<leader>qd", "<cmd>bdelete<cr>", desc = "Delete Buffer" },
|
||||
{ "<leader>qf", "<cmd>qall!<cr>", desc = "Force Quit" },
|
||||
{ "<leader>qo", ":%bdelete|b#|bdelete#<cr>", desc = "Close Others" },
|
||||
{ "<leader>qq", "<cmd>q<cr>", desc = "Quit" },
|
||||
{ "<leader>qs", "<C-w>c", desc = "Close Split" },
|
||||
{ "<leader>qw", "<cmd>wq<cr>", desc = "Write and Quit" },
|
||||
-- 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" },
|
||||
|
||||
-- Visiual Mode
|
||||
{ "<leader>cS", ":sort!<cr>", mode = "v", desc = "Sort Desc" },
|
||||
{ "<leader>ci", ":sort i<cr>", mode = "v", desc = "Sort Case Insensitive" },
|
||||
{ "<leader>cs", ":sort<cr>", mode = "v", desc = "Sort Asc" },
|
||||
{ "<leader>cu", ":!uniq<cr>", mode = "v", desc = "Unique" },
|
||||
|
||||
{ "<leader>la", mode = "v", desc = "<cmd><C-U>Lspsaga range_code_action<CR>" },
|
||||
|
||||
-- no leader
|
||||
{ "[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" },
|
||||
{ "[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" },
|
||||
{ "]j", "<C-i>", desc = "Jump" },
|
||||
|
||||
{ "<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" },
|
||||
{ "<A-e>", "<cmd>Telescope find_files<cr>", desc = "Find Files" },
|
||||
{ "<A-f>", "<cmd>Telescope file_browser<cr>", desc = "Find browser" },
|
||||
|
||||
{ "<C-h>", "<C-w>h", desc = "Move Left" },
|
||||
{ "<C-j>", "<C-w>j", desc = "Move Down" },
|
||||
{ "<C-k>", "<C-w>k", desc = "Move Up" },
|
||||
{ "<C-l>", "<C-w>l", desc = "Move Right" },
|
||||
{ "<C-\\>", "<C-w>p", desc = "Previous Pane" },
|
||||
|
||||
{ "<S-tab>", "<cmd>bprevious<cr>", desc = "Previous Buffer" },
|
||||
{ "<tab>", "<cmd>bnext<cr>", desc = "Next Buffer" },
|
||||
|
||||
{ "K", "<cmd>Lspsaga hover_doc<cr>", desc = "LSP Hover" },
|
||||
{ "Q", "<cmd>qall!<cr>", desc = "Force Quit!" },
|
||||
{ "U", "<cmd>redo<cr>", desc = "Redo" },
|
||||
},
|
||||
}
|
||||
Reference in new issue
Block a user