functionally complete, whichkey not showing help window :(

This commit is contained in:
Solomon Laing 2023-01-09 14:33:12 +10:30
parent a3a79d9e4d
commit 212a138f5d
20 changed files with 578 additions and 642 deletions

View File

@ -40,8 +40,8 @@ map("n", "<C-p>", '"+p', opts)
map("n", "<C-s>", ":w<CR>", opts)
-- Switch between buffers
map("n", "<S-l>", ":CybuNext<CR>", opts)
map("n", "<S-h>", ":CybuPrev<CR>", opts)
map("n", "<S-l>", ":bnext<CR>", opts)
map("n", "<S-h>", ":bprevious<CR>", opts)
-- center after up and down movements
map("n", "<C-u>", "<C-u>zz", opts)
@ -64,5 +64,33 @@ map("v", ">", ">gv", opts)
map("v", "<C-j>", ":m .+1<CR>==<ESC>V", opts)
map("v", "<C-k>", ":m .-2<CR>==<ESC>V", opts)
-- Copy
map("v", "<C-y>", '"+y', opts)
local util = require("lazyvim.functions")
-- lazygit
vim.keymap.set("n", "<leader>gg", function()
require("lazyvim.util").float_term({ "lazygit" })
end, { desc = "Lazygit (cwd)" })
vim.keymap.set("n", "<leader>gG", function()
util.float_term({ "lazygit" }, { cwd = util.get_root() })
end, { desc = "Lazygit (root dir)" })
-- toggle options
vim.keymap.set("n", "<leader>of", require("lazyvim.plugins.lsp.format").toggle, { desc = "Toggle format on Save" })
vim.keymap.set("n", "<leader>os", function()
util.toggle("spell")
end, { desc = "Toggle Spelling" })
vim.keymap.set("n", "<leader>ow", function()
util.toggle("wrap")
end, { desc = "Toggle Word Wrap" })
vim.keymap.set("n", "<leader>on", function()
util.toggle("relativenumber", true)
util.toggle("number")
end, { desc = "Toggle Line Numbers" })
vim.keymap.set("n", "<leader>od", util.toggle_diagnostics, { desc = "Toggle Diagnostics" })
local conceallevel = vim.o.conceallevel > 0 and vim.o.conceallevel or 3
vim.keymap.set("n", "<leader>oc", function()
util.toggle("conceallevel", false, { 0, conceallevel })
end, { desc = "Toggle Conceal" })
vim.keymap.set("n", "<leader>ll", "<cmd>lopen<cr>", { desc = "Open Location List" })
vim.keymap.set("n", "<leader>lq", "<cmd>copen<cr>", { desc = "Open Quickfix List" })

View File

@ -33,7 +33,7 @@ require("lazy").setup({
},
})
vim.keymap.set("n", "<leader>l", "<cmd>:Lazy<cr>")
vim.keymap.set("n", "<leader>L", "<cmd>:Lazy<cr>")
local colorscheme = "base16-gruvbox-dark-medium"

View File

@ -1,47 +1,48 @@
return {
{
"goolord/alpha-nvim" ,
config = function()
local dashboard = require"alpha.themes.dashboard"
{
"goolord/alpha-nvim",
event = "VimEnter",
config = function()
local dashboard = require("alpha.themes.dashboard")
local function button(sc, txt, key, key_opts)
local b = dashboard.button(sc, txt, key, key_opts)
b.opts.hl_shortcut = "Macro"
return b
end
local function button(sc, txt, key, key_opts)
local b = dashboard.button(sc, txt, key, key_opts)
b.opts.hl_shortcut = "Macro"
return b
end
local icons = require"user.icons"
local icons = require("lazyvim.config.icons")
dashboard.section.header.val = {
[[ , __ ___ __. _ __ ` , _ , _ ]],
[[ |' `. .' ` .' \ | / | |' `|' `.]],
[[ | | |----' | | ` / | | | |]],
[[ / | `.___, `._.' \/ / / ' /]],
}
dashboard.section.header.val = {
[[ , __ ___ __. _ __ ` , _ , _ ]],
[[ |' `. .' ` .' \ | / | |' `|' `.]],
[[ | | |----' | | ` / | | | |]],
[[ / | `.___, `._.' \/ / / ' /]],
}
dashboard.section.buttons.val = {
button("f", icons.documents.Files .. " Find file", ":Telescope find_files <CR>"),
button("e", icons.ui.NewFile .. " New file", ":ene <BAR> startinsert <CR>"),
button("r", icons.ui.History .. " Recent files", ":Telescope oldfiles <CR>"),
button("t", icons.ui.List .. " Find text", ":Telescope live_grep <CR>"),
button("c", icons.ui.Gear .. " Config", ":e ~/.config/nvim/init.lua <CR>"),
button("u", icons.ui.CloudDownload .. " Update", ":PackerSync<CR>"),
button("q", icons.ui.SignOut .. " Quit", ":qa<CR>"),
}
dashboard.section.buttons.val = {
button("f", icons.documents.Files .. " Find file", ":Telescope find_files <CR>"),
button("e", icons.ui.NewFile .. " New file", ":ene <BAR> startinsert <CR>"),
button("r", icons.ui.History .. " Recent files", ":Telescope oldfiles <CR>"),
button("t", icons.ui.List .. " Find text", ":Telescope live_grep <CR>"),
button("c", icons.ui.Gear .. " Config", ":e ~/.config/nvim/init.lua <CR>"),
button("u", icons.ui.CloudDownload .. " Update", ":Lazy<CR>"),
button("q", icons.ui.SignOut .. " Quit", ":qa<CR>"),
}
dashboard.section.footer.val = {
[[┬┌┐┌┬┌─┬ ┌─┐┌┬┐┌┐ ┬ ┌─┐┌┬┐┌─┐┌─┐┌┬┐]],
[[││││├┴┐│ ├┤ │ ├┴┐│ │ │ │ │ │ ││││]],
[[┴┘└┘┴ ┴┴─┘└─┘ ┴ └─┘┴─┘└─┘ ┴o└─┘└─┘┴ ┴]],
}
dashboard.section.footer.val = {
[[┬┌┐┌┬┌─┬ ┌─┐┌┬┐┌┐ ┬ ┌─┐┌┬┐┌─┐┌─┐┌┬┐]],
[[││││├┴┐│ ├┤ │ ├┴┐│ │ │ │ │ │ ││││]],
[[┴┘└┘┴ ┴┴─┘└─┘ ┴ └─┘┴─┘└─┘ ┴o└─┘└─┘┴ ┴]],
}
dashboard.section.header.opts.hl = "Include"
dashboard.section.buttons.opts.hl = "Macro"
dashboard.section.footer.opts.hl = "Type"
dashboard.section.header.opts.hl = "Include"
dashboard.section.buttons.opts.hl = "Macro"
dashboard.section.footer.opts.hl = "Type"
dashboard.opts.opts.noautocmd = true
dashboard.opts.opts.noautocmd = true
require"alpha".setup(dashboard.opts)
end,
}
require("alpha").setup(dashboard.opts)
end,
},
}

View File

@ -26,6 +26,26 @@ return {
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.abort(),
["<CR>"] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
else
-- fallback()
end
end, {
"i",
"s",
}),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
else
-- fallback()
end
end, {
"i",
"s",
}),
}),
sources = cmp.config.sources({
{ name = "nvim_lsp" },

View File

@ -0,0 +1,31 @@
return {
{
"folke/todo-comments.nvim",
cmd = { "TodoTrouble", "TodoTelescope" },
event = "BufReadPost",
config = true,
-- stylua: ignore
keys = {
{ "]t", function() require("todo-comments").jump_next() end, desc = "Next todo comment" },
{ "[t", function() require("todo-comments").jump_prev() end, desc = "Previous todo comment" },
{ "<leader>tt", "<cmd>TodoTrouble<cr>", desc = "Todo Trouble" },
{ "<leader>tT", "<cmd>TodoTrouble keywords=TODO,FIX,FIXME<cr>", desc = "Todo Trouble" },
{ "<leader>tf", "<cmd>TodoTelescope<cr>", desc = "Todo Telescope" },
},
},
{ "JoosepAlviste/nvim-ts-context-commentstring" },
{
"echasnovski/mini.comment",
event = "VeryLazy",
opts = {
hooks = {
pre = function()
require("ts_context_commentstring.internal").update_commentstring({})
end,
},
},
config = function(_, opts)
require("mini.comment").setup(opts)
end,
},
}

View File

@ -1,5 +1,5 @@
return {
{
"folke/lazy.nvim"
"folke/lazy.nvim",
},
}
}

View File

@ -1,228 +0,0 @@
local util = require("lazyvim.functions")
return {
{
"kyazdani42/nvim-tree.lua",
cmd = "NvimTreeToggle",
config = function()
local nvim_tree = require("nvim-tree")
local nvim_tree_config = require("nvim-tree.config")
local icons = require("lazyvim.config.icons")
local tree_cb = nvim_tree_config.nvim_tree_callback
nvim_tree.setup({
hijack_directories = {
enable = false,
},
ignore_ft_on_setup = {
"alpha",
},
filters = {
custom = { ".git" },
exclude = { ".gitignore" },
},
hijack_cursor = false,
update_cwd = true,
renderer = {
add_trailing = false,
group_empty = false,
highlight_git = false,
highlight_opened_files = "none",
root_folder_modifier = ":t",
indent_markers = {
enable = false,
icons = {
corner = "",
edge = "",
none = " ",
},
},
icons = {
webdev_colors = true,
git_placement = "before",
padding = " ",
symlink_arrow = "",
show = {
file = true,
folder = true,
folder_arrow = true,
git = true,
},
glyphs = {
default = "",
symlink = "",
folder = {
arrow_open = icons.ui.ArrowOpen,
arrow_closed = icons.ui.ArrowClosed,
default = "",
open = "",
empty = "",
empty_open = "",
symlink = "",
symlink_open = "",
},
git = {
unstaged = "",
staged = "S",
unmerged = "",
renamed = "",
untracked = "U",
deleted = "",
ignored = "",
},
},
},
},
diagnostics = {
enable = true,
icons = {
hint = icons.diagnostics.Hint,
info = icons.diagnostics.Information,
warning = icons.diagnostics.Warning,
error = icons.diagnostics.Error,
},
},
update_focused_file = {
enable = true,
update_cwd = true,
ignore_list = {},
},
git = {
enable = true,
ignore = true,
timeout = 500,
},
view = {
width = 30,
hide_root_folder = false,
side = "left",
mappings = {
custom_only = false,
list = {
{ key = { "l", "<CR>", "o" }, cb = tree_cb("edit") },
{ key = "h", cb = tree_cb("close_node") },
{ key = "v", cb = tree_cb("vsplit") },
},
},
number = false,
relativenumber = false,
},
actions = {
open_file = {
quit_on_open = true,
},
},
})
end,
},
{
"windwp/nvim-spectre",
-- stylua: ignore
keys = {
{ "<leader>sr", function() require("spectre").open() end, desc = "Replace in files (Spectre)" },
},
},
{
"nvim-telescope/telescope.nvim",
cmd = "Telescope",
keys = {
{ "<leader>/", util.telescope("live_grep"), desc = "Find in Files (Grep)" },
{ "<leader><space>", util.telescope("find_files"), desc = "Find Files (root dir)" },
{ "<leader>fb", "<cmd>Telescope buffers<cr>", desc = "Buffers" },
{ "<leader>ff", util.telescope("find_files"), desc = "Find Files (root dir)" },
{ "<leader>fF", util.telescope("find_files", { cwd = false }), desc = "Find Files (cwd)" },
{ "<leader>fr", "<cmd>Telescope oldfiles<cr>", desc = "Recent" },
{ "<leader>gc", "<cmd>Telescope git_commits<CR>", desc = "commits" },
{ "<leader>gs", "<cmd>Telescope git_status<CR>", desc = "status" },
{ "<leader>ha", "<cmd>Telescope autocommands<cr>", desc = "Auto Commands" },
{ "<leader>hc", "<cmd>Telescope commands<cr>", desc = "Commands" },
{ "<leader>hf", "<cmd>Telescope filetypes<cr>", desc = "File Types" },
{ "<leader>hh", "<cmd>Telescope help_tags<cr>", desc = "Help Pages" },
{ "<leader>hk", "<cmd>Telescope keymaps<cr>", desc = "Key Maps" },
{ "<leader>hm", "<cmd>Telescope man_pages<cr>", desc = "Man Pages" },
{ "<leader>ho", "<cmd>Telescope vim_options<cr>", desc = "Options" },
{ "<leader>hs", "<cmd>Telescope highlights<cr>", desc = "Search Highlight Groups" },
{ "<leader>ht", "<cmd>Telescope builtin<cr>", desc = "Telescope" },
{ "<leader>sb", "<cmd>Telescope current_buffer_fuzzy_find<cr>", desc = "Buffer" },
{ "<leader>sc", "<cmd>Telescope command_history<cr>", desc = "Command History" },
{ "<leader>sg", util.telescope("live_grep"), desc = "Grep (root dir)" },
{ "<leader>sG", util.telescope("live_grep", { cwd = false }), desc = "Grep (cwd)" },
{ "<leader>sm", "<cmd>Telescope marks<cr>", desc = "Jump to Mark" },
{ "<leader>,", "<cmd>Telescope buffers show_all_buffers=true<cr>", desc = "Switch Buffer" },
{ "<leader>:", "<cmd>Telescope command_history<cr>", desc = "Command History" },
{
"<leader>ss",
util.telescope("lsp_document_symbols", {
symbols = {
"Class",
"Function",
"Method",
"Constructor",
"Interface",
"Module",
"Struct",
"Trait",
"Field",
"Property",
},
}),
desc = "Goto Symbol",
},
},
config = {
defaults = {
prompt_prefix = "",
selection_caret = "",
mappings = {
i = {
["<c-t>"] = function(...)
return require("trouble.providers.telescope").open_with_trouble(...)
end,
["<C-i>"] = function()
util.telescope("find_files", { no_ignore = true })()
end,
["<C-h>"] = function()
util.telescope("find_files", { hidden = true })()
end,
["<C-Down>"] = function(...)
return require("telescope.actions").cycle_history_next(...)
end,
["<C-Up>"] = function(...)
return require("telescope.actions").cycle_history_prev(...)
end,
},
},
},
},
},
{
"folke/trouble.nvim",
cmd = { "TroubleToggle", "Trouble" },
config = { use_diagnostic_signs = true },
keys = {
{ "<leader>xx", "<cmd>TroubleToggle document_diagnostics<cr>", desc = "Document Diagnostics (Trouble)" },
{ "<leader>xX", "<cmd>TroubleToggle workspace_diagnostics<cr>", desc = "Workspace Diagnostics (Trouble)" },
},
},
{
"folke/todo-comments.nvim",
cmd = { "TodoTrouble", "TodoTelescope" },
event = "BufReadPost",
config = true,
-- stylua: ignore
keys = {
{ "]t", function() require("todo-comments").jump_next() end, desc = "Next todo comment" },
{ "[t", function() require("todo-comments").jump_prev() end, desc = "Previous todo comment" },
{ "<leader>xt", "<cmd>TodoTrouble<cr>", desc = "Todo Trouble" },
{ "<leader>xtt", "<cmd>TodoTrouble keywords=TODO,FIX,FIXME<cr>", desc = "Todo Trouble" },
{ "<leader>xT", "<cmd>TodoTelescope<cr>", desc = "Todo Telescope" },
},
},
{
"numToStr/Comment.nvim",
config = function()
require("Comment").setup({})
end,
},
}

View File

@ -1,22 +1,22 @@
return {
{
"lewis6991/gitsigns.nvim",
event = "BufReadPre",
config = {
signs = {
add = { text = "" },
change = { text = "" },
delete = { text = "" },
topdelete = { text = "" },
changedelete = { text = "" },
untracked = { text = "" },
},
on_attach = function(buffer)
local gs = package.loaded.gitsigns
{
"lewis6991/gitsigns.nvim",
event = "BufReadPre",
config = {
signs = {
add = { text = "" },
change = { text = "" },
delete = { text = "" },
topdelete = { text = "" },
changedelete = { text = "" },
untracked = { text = "" },
},
on_attach = function(buffer)
local gs = package.loaded.gitsigns
local function map(mode, l, r, desc)
vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc })
end
local function map(mode, l, r, desc)
vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc })
end
-- stylua: ignore start
map("n", "]h", gs.prev_hunk, "Next Hunk")
@ -31,13 +31,11 @@ return {
map("n", "<leader>ghd", gs.diffthis, "Diff This")
map("n", "<leader>ghD", function() gs.diffthis("~") end, "Diff This ~")
map({ "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>", "GitSigns Select Hunk")
end,
},
},
{
"f-person/git-blame.nvim",
},
{
"tpope/vim-fugitive",
},
end,
},
},
{
"f-person/git-blame.nvim",
event = "BufEnter",
},
}

View File

@ -0,0 +1,16 @@
return {
{
"ThePrimeagen/harpoon",
keys = {
{ "]m", '<cmd>lua require("harpoon.ui").nav_next()<cr>', desc = "Harpoon Next" },
{ "[m", '<cmd>lua require("harpoon.ui").nav_prev()<cr>', desc = "Harpoon Prev" },
{ "mm", '<cmd>lua require("harpoon.mark").add_file()<cr>', desc = "Harpoon" },
{ "ms", "<cmd>Telescope harpoon marks<cr>", desc = "Search Files" },
{ "mu", '<cmd>lua require("harpoon.ui").toggle_quick_menu()<cr>', desc = "Harpoon UI" },
{ "m1", '<cmd> lua require("harpoon.ui").nav_file(1)<cr>', desc = "Goto 1" },
{ "m2", '<cmd> lua require("harpoon.ui").nav_file(2)<cr>', desc = "Goto 2" },
{ "m3", '<cmd> lua require("harpoon.ui").nav_file(3)<cr>', desc = "Goto 3" },
{ "m4", '<cmd> lua require("harpoon.ui").nav_file(4)<cr>', desc = "Goto 4" },
},
},
}

View File

@ -33,7 +33,6 @@ return {
setup_server = function(server, opts)
return false
end,
config = function(plugin)
-- setup formatting and keymaps
require("lazyvim.functions").on_attach(function(client, buffer)
@ -63,7 +62,7 @@ return {
function(server)
local opts = servers[server] or {}
opts.capabilities = capabilities
if not plugin.setup_server(opts) then
if not plugin.setup_server(server, opts) then
require("lspconfig")[server].setup(opts)
end
end,
@ -79,10 +78,25 @@ return {
config = function()
local nls = require("null-ls")
nls.setup({
debug = false,
sources = {
-- nls.builtins.formatting.prettierd,
nls.builtins.formatting.stylua,
nls.builtins.diagnostics.flake8,
nls.builtins.formatting.prettier.with({
filetypes = {
"javascript",
"typescript",
"css",
"scss",
"html",
"json",
"yaml",
},
}),
nls.builtins.formatting.black.with({ extra_args = { "--fast" } }),
nls.builtins.formatting.bibclean,
nls.builtins.formatting.beautysh,
nls.builtins.diagnostics.shellcheck,
},
})
end,
@ -90,10 +104,9 @@ return {
-- cmdline tools and lsp servers
{
"williamboman/mason.nvim",
cmd = "Mason",
keys = { { "<leader>cm", "<cmd>Mason<cr>", desc = "Mason" } },
keys = { { "<leader>lM", "<cmd>Mason<cr>", desc = "Mason" } },
ensure_installed = {
"stylua",
"shellcheck",

View File

@ -3,9 +3,9 @@ local M = {}
function M.on_attach(client, buffer)
local self = M.new(client, buffer)
self:map("<leader>cd", vim.diagnostic.open_float, { desc = "Line Diagnostics" })
self:map("<leader>cl", "LspInfo", { desc = "Lsp Info" })
self:map("<leader>xd", "Telescope diagnostics", { desc = "Telescope Diagnostics" })
self:map("<leader>ld", vim.diagnostic.open_float, { desc = "Line Diagnostics" })
self:map("<leader>lI", "LspInfo", { desc = "Lsp Info" })
self:map("<leader>ls", "Telescope diagnostics", { desc = "Telescope Diagnostics" })
self:map("gd", "Telescope lsp_definitions", { desc = "Goto Definition" })
self:map("gr", "Telescope lsp_references", { desc = "References" })
self:map("gD", "Telescope lsp_declarations", { desc = "Goto Declaration" })
@ -19,16 +19,16 @@ function M.on_attach(client, buffer)
self:map("[e", M.diagnostic_goto(false, "ERROR"), { desc = "Prev Error" })
self:map("]w", M.diagnostic_goto(true, "WARNING"), { desc = "Next Warning" })
self:map("[w", M.diagnostic_goto(false, "WARNING"), { desc = "Prev Warning" })
self:map("<leader>ca", vim.lsp.buf.code_action, { desc = "Code Action", mode = { "n", "v" }, has = "codeAction" })
self:map("<leader>la", vim.lsp.buf.code_action, { desc = "Code Action", mode = { "n", "v" }, has = "codeAction" })
local format = require("lazyvim.plugins.lsp.format").format
self:map("<leader>cf", format, { desc = "Format Document", has = "documentFormatting" })
self:map("<leader>cf", format, { desc = "Format Range", mode = "v", has = "documentRangeFormatting" })
self:map("<leader>cr", M.rename, { expr = true, desc = "Rename", has = "rename" })
self:map("<leader>lf", format, { desc = "Format Document", has = "documentFormatting" })
self:map("<leader>lF", format, { desc = "Format Range", mode = "v", has = "documentRangeFormatting" })
self:map("<leader>lr", M.rename, { expr = true, desc = "Rename", has = "rename" })
if client.name == "tsserver" and pcall(require, "typescript") then
self:map("<leader>co", "TypescriptOrganizeImports", { desc = "Organize Imports" })
self:map("<leader>cR", "TypescriptRenameFile", { desc = "Rename File" })
self:map("<leader>lo", "TypescriptOrganizeImports", { desc = "Organize Imports" })
self:map("<leader>lR", "TypescriptRenameFile", { desc = "Rename File" })
end
end

View File

@ -1,28 +1,28 @@
return {
{
-- "folke/noice.nvim",
-- event = "VeryLazy",
-- config = {
-- lsp = {
-- override = {
-- ["vim.lsp.util.convert_input_to_markdown_lines"] = true,
-- ["vim.lsp.util.stylize_markdown"] = true,
-- },
-- },
-- presets = {
-- bottom_search = true,
-- command_palette = true,
-- long_message_to_split = true,
-- },
-- },
-- -- stylua: ignore
-- keys = {
-- { "<S-Enter>", function() require("noice").redirect(vim.fn.getcmdline()) end, mode = "c", desc = "Redirect Cmdline" },
-- { "<leader>nl", function() require("noice").cmd("last") end, desc = "Noice Last Message" },
-- { "<leader>nh", function() require("noice").cmd("history") end, desc = "Noice History" },
-- { "<leader>na", function() require("noice").cmd("all") end, desc = "Noice All" },
-- { "<c-f>", function() if not require("noice.lsp").scroll(4) then return "<c-f>" end end, silent = true, expr = true },
-- { "<c-b>", function() if not require("noice.lsp").scroll(-4) then return "<c-b>" end end, silent = true, expr = true },
-- },
"folke/noice.nvim",
event = "VeryLazy",
config = {
lsp = {
override = {
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
["vim.lsp.util.stylize_markdown"] = true,
},
},
presets = {
bottom_search = true,
command_palette = true,
long_message_to_split = true,
},
},
-- stylua: ignore
keys = {
{ "<S-Enter>", function() require("noice").redirect(vim.fn.getcmdline()) end, mode = "c", desc = "Redirect Cmdline" },
{ "<leader>Nl", function() require("noice").cmd("last") end, desc = "Noice Last Message" },
{ "<leader>Nh", function() require("noice").cmd("history") end, desc = "Noice History" },
{ "<leader>Na", function() require("noice").cmd("all") end, desc = "Noice All" },
{ "<c-f>", function() if not require("noice.lsp").scroll(4) then return "<c-f>" end end, silent = true, expr = true },
{ "<c-b>", function() if not require("noice.lsp").scroll(-4) then return "<c-b>" end end, silent = true, expr = true },
},
},
}

View File

@ -0,0 +1,117 @@
return {
{
"kyazdani42/nvim-tree.lua",
cmd = "NvimTreeToggle",
config = function()
local nvim_tree = require("nvim-tree")
local nvim_tree_config = require("nvim-tree.config")
local icons = require("lazyvim.config.icons")
local tree_cb = nvim_tree_config.nvim_tree_callback
nvim_tree.setup({
hijack_directories = {
enable = false,
},
ignore_ft_on_setup = {
"alpha",
},
filters = {
custom = { ".git" },
exclude = { ".gitignore" },
},
hijack_cursor = false,
update_cwd = true,
renderer = {
add_trailing = false,
group_empty = false,
highlight_git = false,
highlight_opened_files = "none",
root_folder_modifier = ":t",
indent_markers = {
enable = false,
icons = {
corner = "",
edge = "",
none = " ",
},
},
icons = {
webdev_colors = true,
git_placement = "before",
padding = " ",
symlink_arrow = "",
show = {
file = true,
folder = true,
folder_arrow = true,
git = true,
},
glyphs = {
default = "",
symlink = "",
folder = {
arrow_open = icons.ui.ArrowOpen,
arrow_closed = icons.ui.ArrowClosed,
default = "",
open = "",
empty = "",
empty_open = "",
symlink = "",
symlink_open = "",
},
git = {
unstaged = "",
staged = "S",
unmerged = "",
renamed = "",
untracked = "U",
deleted = "",
ignored = "",
},
},
},
},
diagnostics = {
enable = true,
icons = {
hint = icons.diagnostics.Hint,
info = icons.diagnostics.Information,
warning = icons.diagnostics.Warning,
error = icons.diagnostics.Error,
},
},
update_focused_file = {
enable = true,
update_cwd = true,
ignore_list = {},
},
git = {
enable = true,
ignore = true,
timeout = 500,
},
view = {
width = 30,
hide_root_folder = false,
side = "left",
mappings = {
custom_only = false,
list = {
{ key = { "l", "<CR>", "o" }, cb = tree_cb("edit") },
{ key = "h", cb = tree_cb("close_node") },
{ key = "v", cb = tree_cb("vsplit") },
},
},
number = false,
relativenumber = false,
},
actions = {
open_file = {
quit_on_open = true,
},
},
})
end,
},
}

View File

@ -0,0 +1,11 @@
return {
{
"windwp/nvim-spectre",
-- stylua: ignore
keys = {
{ "<leader>rr", function() require("spectre").open() end, desc = "Replace in files" },
{ "<leader>rw", function() require("spectre").open_visual({ select_word = true }) end, desc = "Relpace Word" },
{ "<leader>rb", function() require("spectre").open_file_search() end, desc = "Relpace in Buffer" },
},
},
}

View File

@ -1,24 +1,24 @@
return {
{
"echasnovski/mini.starter",
enabled = false,
version = false, -- wait till new 0.7.0 release to put it back on semver
event = "VimEnter",
config = function()
local logo = table.concat({
"██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z",
"██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z",
"██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z",
"██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z",
"███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║",
"╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝",
}, "\n")
local pad = string.rep(" ", 22)
local new_section = function(name, action, section)
return { name = name, action = action, section = pad .. section }
end
{
"echasnovski/mini.starter",
enabled = false,
version = false, -- wait till new 0.7.0 release to put it back on semver
event = "VimEnter",
config = function()
local logo = table.concat({
"██╗ █████╗ ███████╗██╗ ██╗██╗ ██╗██╗███╗ ███╗ Z",
"██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██║ ██║██║████╗ ████║ Z",
"██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║██╔████╔██║ z",
"██║ ██╔══██║ ███╔╝ ╚██╔╝ ╚██╗ ██╔╝██║██║╚██╔╝██║ z",
"███████╗██║ ██║███████╗ ██║ ╚████╔╝ ██║██║ ╚═╝ ██║",
"╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝",
}, "\n")
local pad = string.rep(" ", 22)
local new_section = function(name, action, section)
return { name = name, action = action, section = pad .. section }
end
local starter = require("mini.starter")
local starter = require("mini.starter")
--stylua: ignore
local config = {
evaluate_single = true,
@ -38,29 +38,34 @@ return {
},
}
-- close Lazy and re-open when starter is ready
if vim.o.filetype == "lazy" then
vim.cmd.close()
vim.api.nvim_create_autocmd("User", {
pattern = "MiniStarterOpened",
callback = function()
require("lazy").show()
end,
})
end
-- close Lazy and re-open when starter is ready
if vim.o.filetype == "lazy" then
vim.cmd.close()
vim.api.nvim_create_autocmd("User", {
pattern = "MiniStarterOpened",
callback = function()
require("lazy").show()
end,
})
end
starter.setup(config)
starter.setup(config)
vim.api.nvim_create_autocmd("User", {
pattern = "LazyVimStarted",
callback = function()
local stats = require("lazy").stats()
local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)
local pad_footer = string.rep(" ", 8)
MiniStarter.config.footer = pad_footer .. "⚡ Neovim loaded " .. stats.count .. " plugins in " .. ms .. "ms"
pcall(MiniStarter.refresh)
end,
})
end,
},
vim.api.nvim_create_autocmd("User", {
pattern = "LazyVimStarted",
callback = function()
local stats = require("lazy").stats()
local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)
local pad_footer = string.rep(" ", 8)
MiniStarter.config.footer = pad_footer
.. "⚡ Neovim loaded "
.. stats.count
.. " plugins in "
.. ms
.. "ms"
pcall(MiniStarter.refresh)
end,
})
end,
},
}

View File

@ -0,0 +1,80 @@
local util = require("lazyvim.functions")
return {
{
"nvim-telescope/telescope.nvim",
cmd = "Telescope",
keys = {
{ "<leader>/", util.telescope("live_grep"), desc = "Find in Files (Grep)" },
{ "<leader><space>", util.telescope("find_files"), desc = "Find Files (root dir)" },
{ "<leader>fb", "<cmd>Telescope buffers<cr>", desc = "Buffers" },
{ "<leader>ff", util.telescope("find_files"), desc = "Find Files (root dir)" },
{ "<leader>fF", util.telescope("find_files", { cwd = false }), desc = "Find Files (cwd)" },
{ "<leader>fr", "<cmd>Telescope oldfiles<cr>", desc = "Recent" },
{ "<leader>gc", "<cmd>Telescope git_commits<CR>", desc = "commits" },
{ "<leader>gs", "<cmd>Telescope git_status<CR>", desc = "status" },
{ "<leader>gb", "<cmd>Telescope git_branches<CR>", desc = "branches" },
{ "<leader>ha", "<cmd>Telescope autocommands<cr>", desc = "Auto Commands" },
{ "<leader>hc", "<cmd>Telescope commands<cr>", desc = "Commands" },
{ "<leader>hf", "<cmd>Telescope filetypes<cr>", desc = "File Types" },
{ "<leader>hh", "<cmd>Telescope help_tags<cr>", desc = "Help Pages" },
{ "<leader>hk", "<cmd>Telescope keymaps<cr>", desc = "Key Maps" },
{ "<leader>hm", "<cmd>Telescope man_pages<cr>", desc = "Man Pages" },
{ "<leader>ho", "<cmd>Telescope vim_options<cr>", desc = "Options" },
{ "<leader>hs", "<cmd>Telescope highlights<cr>", desc = "Search Highlight Groups" },
{ "<leader>ht", "<cmd>Telescope builtin<cr>", desc = "Telescope" },
{ "<leader>sb", "<cmd>Telescope current_buffer_fuzzy_find<cr>", desc = "Buffer" },
{ "<leader>sc", "<cmd>Telescope command_history<cr>", desc = "Command History" },
{ "<leader>sg", util.telescope("live_grep"), desc = "Grep (root dir)" },
{ "<leader>sG", util.telescope("live_grep", { cwd = false }), desc = "Grep (cwd)" },
{ "<leader>sm", "<cmd>Telescope marks<cr>", desc = "Jump to Mark" },
{ "<leader>so", "<cmd>Telescope resume<cr>", desc = "Resume last search" },
{ "<leader>sC", "<cmd>Telescope colorscheme<cr>", desc = "Colorscheme" },
{
"<leader>ss",
util.telescope("lsp_document_symbols", {
symbols = {
"Class",
"Function",
"Method",
"Constructor",
"Interface",
"Module",
"Struct",
"Trait",
"Field",
"Property",
},
}),
desc = "Goto Symbol",
},
{ "<leader>,", "<cmd>Telescope buffers show_all_buffers=true<cr>", desc = "Switch Buffer" },
{ "<leader>:", "<cmd>Telescope command_history<cr>", desc = "Command History" },
},
config = {
defaults = {
prompt_prefix = "",
selection_caret = "",
mappings = {
i = {
["<c-t>"] = function(...)
return require("trouble.providers.telescope").open_with_trouble(...)
end,
["<C-i>"] = function()
util.telescope("find_files", { no_ignore = true })()
end,
["<C-h>"] = function()
util.telescope("find_files", { hidden = true })()
end,
["<C-Down>"] = function(...)
return require("telescope.actions").cycle_history_next(...)
end,
["<C-Up>"] = function(...)
return require("telescope.actions").cycle_history_prev(...)
end,
},
},
},
},
},
}

View File

@ -1,19 +1,19 @@
return {
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
event = "BufReadPost",
ensure_installed = "all",
config = function(plugin)
require("nvim-treesitter.configs").setup({
sync_install = false,
ensure_installed = plugin.ensure_installed,
matchup = { enable = true },
highlight = { enable = true },
autopairs = { enable = true },
indent = { enable = true },
context_commentstring = { enable = true, enable_autocmd = false },
})
end,
},
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
event = "BufReadPost",
ensure_installed = "all",
config = function(plugin)
require("nvim-treesitter.configs").setup({
sync_install = false,
ensure_installed = plugin.ensure_installed,
matchup = { enable = true },
highlight = { enable = true },
autopairs = { enable = true },
indent = { enable = true },
context_commentstring = { enable = true, enable_autocmd = false },
})
end,
},
}

View File

@ -0,0 +1,11 @@
return {
{
"folke/trouble.nvim",
cmd = { "TroubleToggle", "Trouble" },
config = { use_diagnostic_signs = true },
keys = {
{ "<leader>lt", "<cmd>TroubleToggle document_diagnostics<cr>", desc = "Document Diagnostics (Trouble)" },
{ "<leader>lT", "<cmd>TroubleToggle workspace_diagnostics<cr>", desc = "Workspace Diagnostics (Trouble)" },
},
},
}

View File

@ -8,11 +8,11 @@ return {
config = function()
require("illuminate").configure({ delay = 200 })
end,
-- stylua: ignore
keys = {
{ "]]", function() require("illuminate").goto_next_reference(false) end, desc = "Next Reference", },
{ "[[", function() require("illuminate").goto_prev_reference(false) end, desc = "Prev Reference" },
},
-- stylua: ignore
keys = {
{ "]]", function() require("illuminate").goto_next_reference(false) end, desc = "Next Reference", },
{ "[[", function() require("illuminate").goto_prev_reference(false) end, desc = "Prev Reference" },
},
},
{
"nvim-lua/popup.nvim",
@ -53,7 +53,12 @@ return {
end,
},
{
"moll/vim-bbye",
"echasnovski/mini.bufremove",
-- stylua: ignore
keys = {
{ "<leader>bd", function() require("mini.bufremove").delete(0, false) end, desc = "Delete Buffer" },
{ "<leader>bD", function() require("mini.bufremove").delete(0, true) end, desc = "Delete Buffer (Force)" },
},
},
{
"lewis6991/impatient.nvim",
@ -63,7 +68,10 @@ return {
},
{
"ghillb/cybu.nvim",
cmd = { "CybuNext", "CybuPrev" },
keys = {
{ "<leader>bl", "<cmd>CybuNext<cr>", desc = "Next Buffer" },
{ "<leader>bh", "<cmd>CybuPrev<cr>", desc = "Prev Buffer" },
},
config = function()
require("cybu").setup({
position = {
@ -93,6 +101,7 @@ return {
},
{
"mbbill/undotree",
cmd = { "UndotreeToggle" },
},
{
"MunifTanjim/nui.nvim",
@ -128,19 +137,19 @@ return {
end,
},
{
"windwp/nvim-autopairs",
config = function()
require("nvim-autopairs").setup({
disable_filetype = { "TelescopePrompt", "spectre_panel" },
ignore_next_char = "[%w%.*]", -- don't place pair when cursor sits in front of any char
})
"echasnovski/mini.pairs",
event = "VeryLazy",
config = function(_, opts)
require("mini.pairs").setup(opts)
end,
},
{
"preservim/vim-markdown",
},
{
"nacro90/numb.nvim",
event = "BufEnter",
config = function()
require("numb").setup({
show_numbers = true, -- enable 'number' for the window while peeking
@ -148,14 +157,12 @@ return {
})
end,
},
{
"andymass/vim-matchup",
},
{
"junegunn/vim-slash",
},
{
"folke/zen-mode.nvim",
cmd = { "ZenMode" },
config = function()
require("zen-mode").setup({
window = {
@ -178,27 +185,36 @@ return {
on_open = function()
vim.g.cmp_active = false
vim.cmd([[LspStop]])
local status_ok, _ = pcall(vim.api.nvim_set_option_value, "winbar", nil, { scope = "local" })
if not status_ok then
return
end
if vim.fn.exists("#" .. "_winbar") == 1 then
vim.cmd("au! " .. "_winbar")
end
end,
on_close = function()
vim.g.cmp_active = true
vim.cmd([[LspStart]])
require("winbar").create_winbar()
end,
})
end,
},
{
"tpope/vim-surround",
"echasnovski/mini.surround",
keys = { "gz" },
opts = {
mappings = {
add = "gza", -- Add surrounding in Normal and Visual modes
delete = "gzd", -- Delete surrounding
find = "gzf", -- Find surrounding (to the right)
find_left = "gzF", -- Find surrounding (to the left)
highlight = "gzh", -- Highlight surrounding
replace = "gzr", -- Replace surrounding
update_n_lines = "gzn", -- Update `n_lines`
},
},
config = function(_, opts)
-- use gz mappings instead of s to prevent conflict with leap
require("mini.surround").setup(opts)
end,
},
{
"danymat/neogen",
event = "BufEnter",
config = function()
require("neogen").setup({
enabled = true,
@ -206,88 +222,4 @@ return {
})
end,
},
{
"monaqa/dial.nvim",
config = function()
local dial_config = require("dial.config")
local y = "2024/05/29"
local augend = require("dial.augend")
dial_config.augends:register_group({
default = {
augend.integer.alias.decimal,
augend.integer.alias.hex,
augend.date.alias["%Y/%m/%d"],
},
typescript = {
augend.integer.alias.decimal,
augend.integer.alias.hex,
augend.constant.new({ elements = { "let", "const" } }),
},
visual = {
augend.integer.alias.decimal,
augend.integer.alias.hex,
augend.date.alias["%Y/%m/%d"],
augend.constant.alias.alpha,
augend.constant.alias.Alpha,
},
mygroup = {
augend.constant.new({
elements = { "and", "or" },
word = true, -- if false, "sand" is incremented into "sor", "doctor" into "doctand", etc.
cyclic = true, -- "or" is incremented into "and".
}),
augend.constant.new({
elements = { "True", "False" },
word = true,
cyclic = true,
}),
augend.constant.new({
elements = { "public", "private" },
word = true,
cyclic = true,
}),
augend.constant.new({
elements = { "&&", "||" },
word = false,
cyclic = true,
}),
augend.date.alias["%d/%m/%Y"], -- date (02/19/2022, etc.)
augend.constant.alias.bool, -- boolean value (true <-> false)
augend.integer.alias.decimal,
augend.integer.alias.hex,
augend.semver.alias.semver,
},
})
local map = require("dial.map")
-- change augends in VISUAL mode
vim.api.nvim_set_keymap("n", "<C-a>", map.inc_normal("mygroup"), { noremap = true })
vim.api.nvim_set_keymap("n", "<C-x>", map.dec_normal("mygroup"), { noremap = true })
vim.api.nvim_set_keymap("v", "<C-a>", map.inc_normal("visual"), { noremap = true })
vim.api.nvim_set_keymap("v", "<C-x>", map.dec_normal("visual"), { noremap = true })
vim.cmd([[
" enable only for specific FileType
autocmd FileType typescript,javascript lua vim.api.nvim_buf_set_keymap(0, "n", "<C-a>", require("dial.map").inc_normal("typescript"), {noremap = true})
]])
end,
},
{
"ThePrimeagen/harpoon",
keys = {
{ "mm", '<cmd>lua require("harpoon.mark").add_file()<cr>', desc = "Harpoon" },
{ "ml", '<cmd>lua require("harpoon.ui").nav_next()<cr>', desc = "Harpoon Next" },
{ "mh", '<cmd>lua require("harpoon.ui").nav_prev()<cr>', desc = "Harpoon Prev" },
{ "ms", "<cmd>Telescope harpoon marks<cr>", desc = "Search Files" },
{ "mu", '<cmd>lua require("harpoon.ui").toggle_quick_menu()<cr>', desc = "Harpoon UI" },
{ "m1", '<cmd> lua require("harpoon.ui").nav_file(1)<cr>', desc = "Goto 1" },
{ "m2", '<cmd> lua require("harpoon.ui").nav_file(2)<cr>', desc = "Goto 2" },
{ "m3", '<cmd> lua require("harpoon.ui").nav_file(3)<cr>', desc = "Goto 3" },
{ "m4", '<cmd> lua require("harpoon.ui").nav_file(4)<cr>', desc = "Goto 4" },
},
},
}

View File

@ -15,9 +15,9 @@ return {
-- the presets plugin, adds help for a bunch of default keybindings in Neovim
-- No actual key bindings are created
presets = {
operators = false, -- adds help for operators like d, y, ... and registers them for motion / text object completion
motions = false, -- adds help for motions
text_objects = false, -- help for text objects triggered after entering an operator
operators = true, -- adds help for operators like d, y, ... and registers them for motion / text object completion
motions = true, -- adds help for motions
text_objects = true, -- help for text objects triggered after entering an operator
windows = true, -- default bindings on <c-w>
nav = true, -- misc bindings to work with windows
z = true, -- bindings for folds, spelling and others prefixed with z
@ -63,7 +63,7 @@ return {
})
local leader_opts = {
mode = "n", -- NORMAL mode
mode = { "n", "v" }, -- NORMAL/VISUAL mode
buffer = nil, -- Global mappings
prefix = "<leader>",
silent = true, -- use 'silent'
@ -78,20 +78,26 @@ return {
})
local leader_mappings = {
a = { "<cmd>Lspsaga code_action<cr>", "Action" },
c = { "<cmd>Bdelete<cr>", "Close Buffer" },
l = { name = "+lsp" },
b = { name = "+buffer" },
r = { name = "+replace" },
f = { name = "+file" },
s = { name = "+search" },
h = { name = "+help" },
g = { name = "+git" },
t = { name = "+todo" },
N = { name = "+noice" },
o = { name = "+option" },
H = { "<cmd>split<cr>", "split" },
h = { "<cmd>lua vim.lsp.buf.hover()<CR>", "Hover" },
V = { "<cmd>vsplit<cr>", "vsplit" },
n = { "<cmd>NvimTreeToggle<cr>", "Explorer" },
O = { "<cmd>setlocal spell! spelllang=en_us<CR>", "Toggle Spelling" },
P = { "<cmd>!opout %<cr><cr>", "Preview Document" },
q = { '<cmd>lua require("lazyvim.functions").smart_quit()<CR>', "Quit" },
V = { "<cmd>vsplit<cr>", "vsplit" },
w = { "<cmd>w<CR>", "Write" },
z = { "<cmd>ZenMode<cr>", "Zen" },
["/"] = { '<cmd>lua require("Comment.api").toggle.linewise.current()<CR>', "Comment" },
["'"] = { "<cmd>close<CR>", "Close split" },
u = { "<cmd>UndoTreeToggle", "Undo Tree" },
u = { "<cmd>UndotreeToggle<cr>", "Undo Tree" },
C = {
name = "Compiler",
@ -99,136 +105,31 @@ return {
b = { "<cmd>w! | !pandoc % -t beamer -o presentation.pdf<cr>", "Beamer Presentation" },
},
b = {
name = "Buffer",
b = { "<cmd>Telescope buffers<cr>", "Telescope" },
c = { "<cmd>Bdelete!<cr>", "Close Buffer" },
h = { "<cmd>BufferLineCyclePrev<cr>", "Cycle Previous" },
l = { "<cmd>BufferLineCycleNext<cr>", "Cycle Next" },
p = { "<cmd>BufferLinePickClose", "Pick Close" },
},
-- o = {
-- name = "Options",
-- c = { "<cmd>lua vim.g.cmp_active=false<cr>", "Completion off" },
-- C = { "<cmd>lua vim.g.cmp_active=true<cr>", "Completion on" },
-- w = { '<cmd>lua require("user.functions").toggle_option("wrap")<cr>', "Wrap" },
-- r = { '<cmd>lua require("user.functions").toggle_option("relativenumber")<cr>', "Relative" },
-- l = { '<cmd>lua require("user.functions").toggle_option("cursorline")<cr>', "Cursorline" },
-- s = { '<cmd>lua require("user.functions").toggle_option("spell")<cr>', "Spell" },
-- t = { '<cmd>lua require("user.functions").toggle_tabline()<cr>', "Tabline" },
-- },
p = {
name = "Packer",
c = { "<cmd>PackerCompile<cr>", "Compile" },
i = { "<cmd>PackerInstall<cr>", "Install" },
s = { "<cmd>PackerSync<cr>", "Sync" },
S = { "<cmd>PackerStatus<cr>", "Status" },
u = { "<cmd>PackerUpdate<cr>", "Update" },
},
o = {
name = "Options",
c = { "<cmd>lua vim.g.cmp_active=false<cr>", "Completion off" },
C = { "<cmd>lua vim.g.cmp_active=true<cr>", "Completion on" },
w = { '<cmd>lua require("user.functions").toggle_option("wrap")<cr>', "Wrap" },
r = { '<cmd>lua require("user.functions").toggle_option("relativenumber")<cr>', "Relative" },
l = { '<cmd>lua require("user.functions").toggle_option("cursorline")<cr>', "Cursorline" },
s = { '<cmd>lua require("user.functions").toggle_option("spell")<cr>', "Spell" },
t = { '<cmd>lua require("user.functions").toggle_tabline()<cr>', "Tabline" },
},
r = {
name = "Replace",
r = { "<cmd>lua require('spectre').open()<cr>", "Replace" },
w = { "<cmd>lua require('spectre').open_visual({select_word=true})<cr>", "Replace Word" },
f = { "<cmd>lua require('spectre').open_file_search()<cr>", "Replace Buffer" },
},
d = {
name = "Debug",
b = { "<cmd>lua require'dap'.toggle_breakpoint()<cr>", "Breakpoint" },
c = { "<cmd>lua require'dap'.continue()<cr>", "Continue" },
i = { "<cmd>lua require'dap'.step_into()<cr>", "Into" },
o = { "<cmd>lua require'dap'.step_over()<cr>", "Over" },
O = { "<cmd>lua require'dap'.step_out()<cr>", "Out" },
r = { "<cmd>lua require'dap'.repl.toggle()<cr>", "Repl" },
l = { "<cmd>lua require'dap'.run_last()<cr>", "Last" },
u = { "<cmd>lua require'dapui'.toggle()<cr>", "UI" },
x = { "<cmd>lua require'dap'.terminate()<cr>", "Exit" },
},
f = {
name = "Find",
b = { "<cmd>Telescope git_branches<cr>", "Checkout branch" },
c = { "<cmd>Telescope colorscheme<cr>", "Colorscheme" },
f = { "<cmd>Telescope find_files<cr>", "Find files" },
t = { "<cmd>Telescope live_grep<cr>", "Find Text" },
s = { "<cmd>Telescope grep_string<cr>", "Find String" },
h = { "<cmd>Telescope help_tags<cr>", "Help" },
H = { "<cmd>Telescope highlights<cr>", "Highlights" },
l = { "<cmd>Telescope resume<cr>", "Last Search" },
M = { "<cmd>Telescope man_pages<cr>", "Man Pages" },
r = { "<cmd>Telescope oldfiles<cr>", "Recent File" },
R = { "<cmd>Telescope registers<cr>", "Registers" },
k = { "<cmd>Telescope keymaps<cr>", "Keymaps" },
C = { "<cmd>Telescope commands<cr>", "Commands" },
},
g = {
name = "Git",
g = { "<cmd>Git<CR>", "Git" },
j = { "<cmd>lua require 'gitsigns'.next_hunk()<cr>", "Next Hunk" },
k = { "<cmd>lua require 'gitsigns'.prev_hunk()<cr>", "Prev Hunk" },
l = { "<cmd>GitBlameToggle<cr>", "Blame" },
p = { "<cmd>lua require 'gitsigns'.preview_hunk()<cr>", "Preview Hunk" },
r = { "<cmd>lua require 'gitsigns'.reset_hunk()<cr>", "Reset Hunk" },
R = { "<cmd>lua require 'gitsigns'.reset_buffer()<cr>", "Reset Buffer" },
s = { "<cmd>lua require 'gitsigns'.stage_hunk()<cr>", "Stage Hunk" },
u = {
"<cmd>lua require 'gitsigns'.undo_stage_hunk()<cr>",
"Undo Stage Hunk",
},
o = { "<cmd>Telescope git_status<cr>", "Open changed file" },
b = { "<cmd>Telescope git_branches<cr>", "Checkout branch" },
c = { "<cmd>Telescope git_commits<cr>", "Checkout commit" },
d = {
"<cmd>Gitsigns diffthis HEAD<cr>",
"Diff",
},
},
l = {
name = "LSP",
a = { "<cmd>Lspsaga code_action<cr>", "Code Action" },
t = { "<cmd>TroubleToggle document_diagnostics<cr>", "Diagnostics" },
d = { "<cmd>lua vim.lsp.buf.definition()<cr>", "Definition" },
w = {
"<cmd>TroubleToggle workspace_diagnostics<cr>",
"Workspace Diagnostics",
},
f = { "<cmd>lua vim.lsp.buf.format({ async = true })<cr>", "Format" },
F = { "<cmd>LspToggleAutoFormat<cr>", "Toggle Autoformat" },
h = { "<cmd>lua vim.lsp.buf.hover()<CR>", "Hover" },
i = { "<cmd>lua vim.lsp.buf.implementation()<cr>", "Implementation" },
I = { "<cmd>LspInfo<cr>", "Info" },
j = {
"<cmd>lua vim.diagnostic.goto_next({buffer=0})<CR>",
"Next Diagnostic",
},
k = {
"<cmd>lua vim.diagnostic.goto_prev({buffer=0})<cr>",
"Prev Diagnostic",
},
v = { "<cmd>lua require('lsp_lines').toggle()<cr>", "Virtual Text" },
l = { "<cmd>lua vim.lsp.codelens.run()<cr>", "CodeLens Action" },
o = { "<cmd>SymbolsOutline<cr>", "Outline" },
r = { "<cmd>lua vim.lsp.buf.rename()<cr>", "Rename" },
R = { "<cmd>TroubleToggle lsp_references<cr>", "References" },
s = { "<cmd>Telescope lsp_document_symbols<cr>", "Document Symbols" },
S = {
"<cmd>Telescope lsp_dynamic_workspace_symbols<cr>",
"Workspace Symbols",
},
T = { '<cmd>lua require("user.functions").toggle_diagnostics()<cr>', "Toggle Diagnostics" },
u = { "<cmd>LuaSnipUnlinkCurrent<cr>", "Unlink Snippet" },
M = { "<cmd>Mason<cr>", "Open Mason UI" },
},
-- d = {
-- name = "Debug",
-- b = { "<cmd>lua require'dap'.toggle_breakpoint()<cr>", "Breakpoint" },
-- c = { "<cmd>lua require'dap'.continue()<cr>", "Continue" },
-- i = { "<cmd>lua require'dap'.step_into()<cr>", "Into" },
-- o = { "<cmd>lua require'dap'.step_over()<cr>", "Over" },
-- O = { "<cmd>lua require'dap'.step_out()<cr>", "Out" },
-- r = { "<cmd>lua require'dap'.repl.toggle()<cr>", "Repl" },
-- l = { "<cmd>lua require'dap'.run_last()<cr>", "Last" },
-- u = { "<cmd>lua require'dapui'.toggle()<cr>", "UI" },
-- x = { "<cmd>lua require'dap'.terminate()<cr>", "Exit" },
-- },
}
-- whichkey.register(m_mappings, m_opts)
whichkey.register(mappings, opts)
whichkey.register(leader_mappings, leader_opts)
end,
},