updates
This commit is contained in:
@@ -1,77 +1,461 @@
|
||||
local map = vim.keymap.set
|
||||
local Terminal = require("toggleterm.terminal").Terminal
|
||||
local notify = require("notify")
|
||||
local dsplit = require("util.open-docs-in-split")
|
||||
|
||||
local function term_factory(cfg)
|
||||
cfg["on_stderr"] = function(_, job, data, name)
|
||||
notify(name .. " encountered an error on job: " .. job .. "\nData: " .. data, "error")
|
||||
end
|
||||
cfg["on_stdout"] = function(_, job, data, name)
|
||||
notify(name .. " output for job" .. job .. "\nData: " .. data, "info")
|
||||
end
|
||||
return Terminal:new(cfg)
|
||||
end
|
||||
|
||||
local function term_toggle(term)
|
||||
term:toggle()
|
||||
end
|
||||
local term = require("utils.terminal")
|
||||
local map_from_table = require("utils.keymaps.converters.from_table").set_keybindings
|
||||
local add_to_whichkey = require("utils.keymaps.converters.whichkey").addToWhichKey
|
||||
local term_factory = term.term_factory
|
||||
local term_toggle = term.term_toggle
|
||||
|
||||
local opts = { silent = true, noremap = true }
|
||||
local notsilent = { silent = false, noremap = true }
|
||||
|
||||
local function ReloadConfig()
|
||||
dofile(vim.fn.stdpath("config") .. "/init.lua")
|
||||
dofile(vim.fn.stdpath("config") .. "/lua/core/keymaps.lua")
|
||||
dofile(vim.fn.stdpath("config") .. "/lua/core/autocmds.lua")
|
||||
dofile(vim.fn.stdpath("config") .. "/lua/core/options.lua")
|
||||
dofile(vim.fn.stdpath("config") .. "/lua/core/plugins.lua")
|
||||
dofile(vim.fn.stdpath("config") .. "/lua/plugins/ui/init.lua")
|
||||
dofile(vim.fn.stdpath("config") .. "/lua/plugins/ui/toggleterm.lua")
|
||||
dofile(vim.fn.stdpath("config") .. "/lua/plugins/ai/init.lua")
|
||||
dofile(vim.fn.stdpath("config") .. "/lua/plugins/lsp/init.lua")
|
||||
dofile(vim.fn.stdpath("config") .. "/lua/plugins/colorscheme/init.lua")
|
||||
end
|
||||
|
||||
-- Leader key
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = ","
|
||||
|
||||
-- Custom commands
|
||||
vim.api.nvim_create_user_command("PS", ":PackerSync", {})
|
||||
vim.api.nvim_create_user_command("Reload", ReloadConfig, {})
|
||||
vim.api.nvim_create_user_command("Config", "edit ~/.config/nvim", {})
|
||||
vim.api.nvim_create_user_command("Plugins", "edit ~/.config/nvim/lua/core/plugins.lua", {})
|
||||
vim.api.nvim_create_user_command("Keymaps", "edit ~/.config/nvim/lua/core/keymaps.lua", {})
|
||||
|
||||
-- {{{ Basic mappings
|
||||
map("n", "<C-u>", "<C-u>zz", opts)
|
||||
map("n", "n", "nzzzv", opts)
|
||||
map("n", "N", "Nzzzv", opts)
|
||||
map("x", "<leader>p", '"_dP', opts) -- paste without yanking
|
||||
map("v", "<", "<gv", opts) -- reselect after indent
|
||||
map("v", ">", ">gv", opts)
|
||||
map("v", "J", ":m '>+1<CR>gv=gv", opts) -- move lines
|
||||
map("v", "K", ":m '<-2<CR>gv=gv", opts)
|
||||
-- {{{ Basic Mappings
|
||||
local basic_mappings = {
|
||||
{ key = "<C-u>", cmd = "<C-u>zz", desc = "Scroll up and center", mode = "n" },
|
||||
{ key = "n", cmd = "nzzzv", desc = "Next search result and center", mode = "n" },
|
||||
{ key = "N", cmd = "Nzzzv", desc = "Previous search result and center", mode = "n" },
|
||||
{ key = "<leader>p", cmd = '"_dP', desc = "Paste without yanking", mode = "x", group = "Paste in place" },
|
||||
{ key = "<", cmd = "<gv", desc = "Reselect after indent", mode = "v" },
|
||||
{ key = ">", cmd = ">gv", desc = "Reselect after indent", mode = "v" },
|
||||
{ key = "J", cmd = ":m '>+1<CR>gv=gv", desc = "Move line down", mode = "v" },
|
||||
{ key = "K", cmd = ":m '<-2<CR>gv=gv", desc = "Move line up", mode = "v" },
|
||||
}
|
||||
--}}}
|
||||
|
||||
--{{{ Buffer Navigation Mappings
|
||||
local buffer_navigation_mappings = {
|
||||
{ key = "<C-J>", cmd = ":bnext<CR>", desc = "Next buffer", mode = "n" },
|
||||
{ key = "<C-K>", cmd = ":bprev<CR>", desc = "Previous buffer", mode = "n" },
|
||||
{ key = "<leader>bb", cmd = ":Telescope buffers<CR>", desc = "List buffers", mode = "n", group = "Buffers" },
|
||||
{ key = "<leader>bk", cmd = ":bdelete<CR>", desc = "Delete buffer", mode = "n", group = "Buffers" },
|
||||
{ key = "<leader>bn", cmd = ":bnext<CR>", desc = "Next buffer", mode = "n", group = "Buffers" },
|
||||
{ key = "<leader>bp", cmd = ":bprev<CR>", desc = "Previous buffer", mode = "n", group = "Buffers" },
|
||||
}
|
||||
--}}}
|
||||
|
||||
--{{{ Terminal Mappings
|
||||
local terminal_mappings = {
|
||||
{
|
||||
key = "op",
|
||||
cmd = "<C-\\><C-N>:ToggleTerm name=ipython",
|
||||
desc = "Open IPython",
|
||||
mode = "v",
|
||||
group = "Open",
|
||||
},
|
||||
{
|
||||
key = "oP",
|
||||
cmd = "<C-\\><C-N>:ToggleTerm name=ipython-full",
|
||||
desc = "Open full IPython",
|
||||
mode = "v",
|
||||
group = "Open",
|
||||
},
|
||||
{
|
||||
key = "<C-T>",
|
||||
cmd = ":ToggleTerm name=toggleterm<CR>",
|
||||
desc = "Toggle terminal",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
key = "<leader>tt",
|
||||
cmd = ":ToggleTerm name=toggleterm<CR>",
|
||||
desc = "Toggle terminal",
|
||||
mode = "n",
|
||||
group = "Toggle",
|
||||
},
|
||||
{
|
||||
key = "<leader>tT",
|
||||
cmd = ":ToggleTerm name=toggleterm-full direction=tab<CR>",
|
||||
desc = "Toggle full terminal",
|
||||
mode = "n",
|
||||
group = "Toggle",
|
||||
},
|
||||
{
|
||||
key = "<leader>ot",
|
||||
cmd = ":ToggleTerm name=toggleterm<CR>",
|
||||
desc = "Open terminal",
|
||||
mode = "n",
|
||||
group = "Open",
|
||||
},
|
||||
{
|
||||
key = "<leader>oT",
|
||||
cmd = ":ToggleTerm name=toggleterm-full direction=tab<CR>",
|
||||
desc = "Open full terminal",
|
||||
mode = "n",
|
||||
group = "Open",
|
||||
},
|
||||
{
|
||||
key = "<leader>ts",
|
||||
cmd = ":TermSelect<CR>",
|
||||
desc = "Select terminal",
|
||||
mode = "n",
|
||||
group = "Terminal",
|
||||
},
|
||||
{
|
||||
key = "<leader>tv",
|
||||
cmd = ":ToggleTerm direction=vertical name=toggleterm-vert<CR>",
|
||||
desc = "Toggle vertical terminal",
|
||||
mode = "n",
|
||||
group = "Terminal",
|
||||
},
|
||||
{
|
||||
key = "<leader>th",
|
||||
cmd = ":ToggleTerm direction=horizontal name=toggleterm-hori<CR>",
|
||||
desc = "Toggle horizontal terminal",
|
||||
mode = "n",
|
||||
group = "Terminal",
|
||||
},
|
||||
{
|
||||
key = "<leader>ov",
|
||||
cmd = ":ToggleTerm direction=vertical name=toggleterm-vert<CR>",
|
||||
desc = "Open vertical terminal",
|
||||
mode = "n",
|
||||
group = "Open",
|
||||
},
|
||||
{
|
||||
key = "<leader>oh",
|
||||
cmd = ":ToggleTerm direction=horizontal name=toggleterm-hori<CR>",
|
||||
desc = "Open horizontal terminal",
|
||||
mode = "n",
|
||||
group = "Open",
|
||||
},
|
||||
{
|
||||
key = "<leader>tf",
|
||||
cmd = ":ToggleTerm name=toggleterm<CR>",
|
||||
desc = "Toggle terminal",
|
||||
mode = "n",
|
||||
group = "Terminal",
|
||||
},
|
||||
{
|
||||
key = "<leader>-",
|
||||
cmd = ":ToggleTerm direction='horizontal'<CR>",
|
||||
desc = "Toggle horizontal terminal",
|
||||
mode = "n",
|
||||
group = "Horizontal Terminal",
|
||||
},
|
||||
{
|
||||
key = "<leader>|",
|
||||
cmd = ":ToggleTerm direction='vertical'<CR>",
|
||||
desc = "Toggle vertical terminal",
|
||||
mode = "n",
|
||||
group = "Vertical Terminal",
|
||||
},
|
||||
}
|
||||
--}}}
|
||||
|
||||
-- {{{ LSP Mappings
|
||||
local lsp_mappings = {
|
||||
{ mode = "n", key = "gA", cmd = vim.lsp.buf.code_action, group = "Code Action" },
|
||||
{ mode = "n", key = "gd", cmd = ":Telescope lsp_definitions<CR>", group = "LSP Definitions" },
|
||||
{ mode = "n", key = "gDc", cmd = ":Telescope lsp_implementations<CR>", group = "LSP Implementations" },
|
||||
{ mode = "n", key = "gDf", cmd = ":Telescope lsp_definitions<CR>", group = "LSP Definitions" },
|
||||
{ mode = "n", key = "gF", cmd = ":edit <cfile><CR>", group = "Edit File" },
|
||||
{ mode = "n", key = "gT", cmd = ":Telescope lsp_type_definitions<CR>", group = "LSP Type Definitions" },
|
||||
{ mode = "n", key = "gb", cmd = ":Gitsigns blame_line<CR>", group = "Git Blame" },
|
||||
{ mode = "n", key = "gi", cmd = ":Telescope lsp_implementations<CR>", group = "Telescope Implementations" },
|
||||
{ mode = "n", key = "gj", cmd = ":Telescope jumplist<CR>", group = "Telescope Jumplist" },
|
||||
{ mode = "n", key = "gr", cmd = ":Telescope lsp_references<CR>", goup = "LSP References" },
|
||||
{ mode = "n", key = "gs", cmd = vim.lsp.buf.signature_help },
|
||||
-- { mode = "n", key = "K", cmd = vim.lsp.buf.hover },
|
||||
{ mode = "n", key = "<leader>ca", cmd = vim.lsp.buf.code_action, group = "Code" },
|
||||
{ mode = "n", key = "<leader>ch", cmd = ":lua vim.lsp.buf.signature_help()<CR>", group = "Signature Help" },
|
||||
{ mode = "n", key = "<leader>cR", cmd = ":lua vim.lsp.buf.rename()<CR>", group = "Rename" },
|
||||
{ mode = "n", key = "<leader>cr", cmd = ":Telescope lsp_references<CR>", group = "LSP References" },
|
||||
{ mode = "n", key = "<leader>cs", cmd = ":Telescope lsp_document_symbols<CR>", group = "LsP Document Symbols" },
|
||||
{ mode = "n", key = "<leader>ct", cmd = ":Telescope lsp_type_definitions<CR>", group = "LSP Definitions" },
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>cw",
|
||||
cmd = ":Telescope lsp_dynamic_workspace_symbols<CR>",
|
||||
group = "LSP Workspace Symbols",
|
||||
},
|
||||
{ mode = "n", key = "<leader>ci", cmd = ":Telescope lsp_implementations<CR>", group = "LSP Implementations" },
|
||||
{ mode = "n", key = "<leader>cci", cmd = ":Telescope lsp_incoming_calls<CR>", group = "LSP Incoming Calls" },
|
||||
{ mode = "n", key = "<leader>cco", cmd = ":Telescope lsp_outgoing_calls<CR>", group = "LSP Outgoing Calls" },
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>cd",
|
||||
cmd = ":Telescope diagnostics theme=dropdown layout_config={width=0.8}<CR>",
|
||||
group = "Telecope Diagnostics",
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>cDs",
|
||||
cmd = ":Telescope diagnostics theme=dropdown layout_config={width=0.8}<CR>",
|
||||
group = "Telecope Diagnostics",
|
||||
},
|
||||
{ mode = "n", key = "<leader>cDn", cmd = ":lua vim.diagnostic.goto_next()<CR>", group = "Goto Next Preview" },
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>cDp",
|
||||
cmd = ":lua vim.diagnostic.goto_prev()<CR<CR>",
|
||||
group = "Goto Previous Preview",
|
||||
},
|
||||
{ mode = "n", key = "<leader>cl", cmd = ":lua vim.diagnostic.setloclist()<CR>", group = "Set Loclist" },
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- {{{ Buffer navigation
|
||||
map("n", "<C-J>", ":bnext<CR>", opts)
|
||||
map("n", "<C-K>", ":bprev<CR>", opts)
|
||||
map("n", "<leader>bb", ":Telescope buffers<CR>", opts)
|
||||
map("n", "<leader>bk", ":bdelete<CR>", opts)
|
||||
map("n", "<leader>bn", ":bnext<CR>", opts)
|
||||
map("n", "<leader>bp", ":bprev<CR>", opts)
|
||||
-- {{{ Code Companion Mappings
|
||||
local code_companion_mappings = {
|
||||
{ mode = "n", key = "<leader>cp", cmd = ":vert Copilot panel<CR>", group = "Code" },
|
||||
{ mode = "n", key = "<leader>oc", cmd = ":CodeCompanionChat Toggle<CR>", group = "Open" },
|
||||
{ mode = "n", key = "<leader>Cc", cmd = ":CodeCompanionChat Toggle<CR>", group = "CodeCompanion" },
|
||||
{ mode = "n", key = "<leader>Ci", cmd = ":CodeCompanion ", group = "CodeCompanion" },
|
||||
{ mode = "n", key = "<leader>CT", cmd = ":CodeCompanionChat Toggle<CR>", group = "CodeCompanion" },
|
||||
{ mode = "n", key = "<leader>Ca", cmd = ":CodeCompanionActions<CR>", group = "CodeCompanion" },
|
||||
{ mode = "v", key = "<leader>Cc", cmd = ":CodeCompanionChat Add<CR>", group = "CodeCompanion" },
|
||||
{ mode = "v", key = "<leader>Ci", cmd = ":CodeCompanion /buffer ", group = "CodeCompanion" },
|
||||
{ mode = "v", key = "<leader>Ce", cmd = ":CodeCompanion /explain<CR>", group = "CodeCompanion" },
|
||||
{ mode = "v", key = "<leader>Cf", cmd = ":CodeCompanion /fix<CR>", group = "CodeCompanion" },
|
||||
{ mode = "v", key = "<leader>Cl", cmd = ":CodeCompanion /lsp<CR>", group = "CodeCompanion" },
|
||||
{ mode = "v", key = "<leader>Ct", cmd = ":CodeCompanion /tests<CR>", group = "CodeCompanion" },
|
||||
}
|
||||
-- }}}
|
||||
|
||||
--{{{ Terminal mappings
|
||||
--{{{ Telescope mappings
|
||||
local telescope_mappings = {
|
||||
{ mode = "n", key = "//", cmd = ":Telescope current_buffer_fuzzy_find previewer=false<CR>" },
|
||||
{ mode = "n", key = "??", cmd = ":Telescope lsp_document_symbols theme=dropdown layout_config={width=0.5}<CR>" },
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>fc",
|
||||
cmd = ':Telescope color_names theme=dropdown layout_config={width=0.45,height=25,prompt_position="bottom"} layout_strategy=vertical<CR>',
|
||||
group = "Find",
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>Tc",
|
||||
cmd = ":Telescope colorscheme<CR>",
|
||||
group = "Telescope",
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>TC",
|
||||
cmd = ':Telescope color_names theme=dropdown layout_config={width=0.45,height=25,prompt_position="bottom"} layout_strategy=vertical<CR>',
|
||||
group = "Telescope",
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>Tn",
|
||||
cmd = ":Telescope notify theme=dropdown layout_config={width=0.75}<CR>",
|
||||
group = "Telescope",
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>TN",
|
||||
cmd = ":Telescope noice theme=dropdown layout_config={width=0.75}<CR>",
|
||||
group = "Telescope",
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>ff",
|
||||
cmd = ":Telescope find_files find_command=rg,--ignore,--follow,--hidden,--files prompt_prefix=🔍<CR>",
|
||||
group = "Find",
|
||||
},
|
||||
{ mode = "n", key = "<leader>fg", cmd = ":Telescope live_grep<CR>", group = "Find" },
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>Tg",
|
||||
cmd = ':Telescope glyph theme=dropdown layout_config={width=0.45,height=35,prompt_position="bottom"} layout_strategy=vertical<CR>',
|
||||
group = "Telecope",
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>fG",
|
||||
cmd = ':Telescope glyph theme=dropdown layout_config={width=0.45,height=35,prompt_position="bottom"} layout_strategy=vertical<CR>',
|
||||
group = "Find",
|
||||
},
|
||||
{ mode = "n", key = "<leader>fb", cmd = ":Telescope file_browser<CR>", group = "Find" },
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>fr",
|
||||
cmd = ":Telescope oldfiles theme=dropdown layout_config={width=0.5}<CR>",
|
||||
group = "Find",
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>hc",
|
||||
cmd = ":Telescope commands<CR>",
|
||||
group = "Help",
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>hv",
|
||||
cmd = ":Telescope vim_options<CR>",
|
||||
group = "Help",
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>hk",
|
||||
cmd = ":Telescope keymaps<CR>",
|
||||
group = "Help",
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>hs",
|
||||
cmd = ":Telescope spell_suggest<CR>",
|
||||
group = "Help",
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>ht",
|
||||
cmd = ":Telescope help_tags<CR>",
|
||||
group = "Help",
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>hm",
|
||||
cmd = ":Telescope man_pages theme=dropdown layout_config={width=0.75}<CR>",
|
||||
group = "Help",
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>sf",
|
||||
cmd = ":Telescope find_files find_command=rg,--ignore,--follow,--hidden,--files prompt_prefix=🔍<CR>",
|
||||
group = "Search",
|
||||
},
|
||||
{ mode = "n", key = "<leader>sF", cmd = ":Telescope fidget<CR>", group = "Search" },
|
||||
{ mode = "n", key = "<leader>sg", cmd = ":Telescope live_grep<CR>", group = "Search" },
|
||||
{ mode = "n", key = "<leader>sh", cmd = ":Telescope command_history<CR>", group = "Search" },
|
||||
{ mode = "n", key = "<leader>sm", cmd = ":Telescope man_pages<CR>", group = "Search" },
|
||||
{ mode = "n", key = "<leader>s/", cmd = ":Telescope search_history<CR>", group = "Search" },
|
||||
{ mode = "n", key = "<leader>gc", cmd = ":Telescope git_commits<CR>", group = "Git" },
|
||||
{ mode = "n", key = "<leader>gf", cmd = ":Telescope git_files<CR>", group = "Git" },
|
||||
{ mode = "n", key = "<leader>Tr", cmd = ":Telescope reloader<CR>", group = "Telescope" },
|
||||
}
|
||||
--}}}
|
||||
|
||||
-- {{{ File Explorer Mappings (i guess)
|
||||
local file_explorer_mappings = {
|
||||
{ mode = "n", key = "<leader>nt", cmd = ":NvimTreeToggle<CR>" },
|
||||
{ mode = "n", key = "<leader>nc", cmd = ":lua vim.notify.dismiss()<CR>" },
|
||||
{ mode = "n", key = "<leader>D", cmd = ":Dotenv .env<CR>", group = "Dotenv" },
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- {{{ Misc Utilities Mappings
|
||||
local misc_utilities_mappings = {
|
||||
{ mode = "n", key = "<leader>x", cmd = "<cmd>!chmod +x %<CR>", group = "Make Executable" },
|
||||
{ mode = "n", key = "<leader>y", cmd = '"+', group = "System Yank" },
|
||||
{ mode = "v", key = "<leader>y", cmd = '"+', group = "System Yank" },
|
||||
{ mode = "n", key = "<leader>sc", cmd = ":nohls<CR>", group = "Search" },
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- {{{ Goto Preview Mappings
|
||||
local goto_preview_mappings = {
|
||||
{ mode = "n", key = "gpc", cmd = ':lua require("goto-preview").close_all_win()<CR>', group = "Goto Preview" },
|
||||
{
|
||||
mode = "n",
|
||||
key = "gpd",
|
||||
cmd = ':lua require("goto-preview").goto_preview_definition()<CR>',
|
||||
group = "Goto Preview",
|
||||
},
|
||||
{
|
||||
mode = "n",
|
||||
key = "gpi",
|
||||
cmd = ':lua require("goto-preview").goto_preview_implementation()<CR>',
|
||||
group = "Goto Preview",
|
||||
},
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- {{{ Workspace Management Mappings
|
||||
local workspace_management_mappings = {
|
||||
{ mode = "n", key = "<leader>wa", cmd = vim.lsp.buf.add_workspace_folder },
|
||||
{ mode = "n", key = "<leader>wr", cmd = vim.lsp.buf.remove_workspace_folder },
|
||||
{
|
||||
mode = "n",
|
||||
key = "<leader>wl",
|
||||
cmd = function()
|
||||
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||
end,
|
||||
},
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- {{{ Noice Mappings
|
||||
local noice_mappings = {
|
||||
{ mode = "n", key = "<leader>Nh", cmd = ":Noice telescope<CR>", group = "Noice" },
|
||||
{ mode = "n", key = "<leader>Nl", cmd = ":Noice last<CR>", group = "Noice" },
|
||||
{ mode = "n", key = "<leader>Nd", cmd = ":Noice dismiss<CR>", group = "Noice" },
|
||||
{ mode = "n", key = "<leader>Ne", cmd = ":Noice errors<CR>", group = "Noice" },
|
||||
{ mode = "n", key = "<leader>Ns", cmd = ":Noice stats<CR>", group = "Noice" },
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- {{{ ODIS Mappings
|
||||
local odis_mappings = {
|
||||
{ mode = "n", key = "<leader>dv", cmd = ':lua require("odis").show_documentation("vsplit")<CR>', group = "ODIS" },
|
||||
{ mode = "n", key = "<leader>dh", cmd = ':lua require("odis").show_documentation("vsplit")<CR>', group = "ODIS" },
|
||||
{ mode = "n", key = "<leader>db", cmd = ':lua require("odis").show_documentation("vsplit")<CR>', group = "ODIS" },
|
||||
{ mode = "n", key = "<leader>dt", cmd = ':lua require("odis").show_documentation("vsplit")<CR>', group = "ODIS" },
|
||||
{ mode = "n", key = "<leader>dt", cmd = ':lua require("odis").show_documentation("vsplit")<CR>', group = "ODIS" },
|
||||
-- { mode = "n", key = "<leader>dc", cmd = 'require("odis").close_float()' },
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- {{{ Diffview Mappings
|
||||
local diffview_mappings = {
|
||||
{
|
||||
|
||||
mode = "n",
|
||||
key = "<leader>gdo",
|
||||
cmd = ":DiffviewOpen<CR>",
|
||||
group = "Git",
|
||||
},
|
||||
{
|
||||
|
||||
mode = "n",
|
||||
key = "<leader>gdf",
|
||||
cmd = ":DiffviewFileHistory %<CR>",
|
||||
group = "Git",
|
||||
},
|
||||
{
|
||||
|
||||
mode = "n",
|
||||
key = "<leader>gdh",
|
||||
cmd = ":DiffviewHistory<CR>",
|
||||
group = "Git",
|
||||
},
|
||||
{
|
||||
|
||||
mode = "n",
|
||||
key = "<leader>gdc",
|
||||
cmd = ":DiffviewClose<CR>",
|
||||
group = "Git",
|
||||
},
|
||||
{
|
||||
|
||||
mode = "n",
|
||||
key = "<leader>gdt",
|
||||
cmd = ":DiffviewToggleFiles<CR>",
|
||||
group = "Git",
|
||||
desc = "Toggle files view",
|
||||
},
|
||||
{
|
||||
|
||||
mode = "n",
|
||||
key = "<leader>gdr",
|
||||
cmd = ":DiffviewRefresh<CR>",
|
||||
desc = "Refresh diffview",
|
||||
group = "Git",
|
||||
},
|
||||
}
|
||||
-- }}}
|
||||
|
||||
--{{{ Custom Terminals
|
||||
local programs_map = {
|
||||
gg = { cmd = "lazygit", display_name = "lazygit", direction = "tab", hidden = true },
|
||||
op = { cmd = "ipython", display_name = "ipython", direction = "vertical", hidden = true },
|
||||
oP = { cmd = "ipython", display_name = "ipython-full", direction = "tab", hidden = true },
|
||||
on = { cmd = "ncmpcpp", display_name = "ncmpcpp", direction = "tab", hidden = true },
|
||||
ob = { cmd = "btop", display_name = "btop", direction = "tab", hidden = true },
|
||||
gg = { cmd = "lazygit", display_name = "lazygit", direction = "tab", hidden = true, group = "Git" },
|
||||
op = { cmd = "ipython", display_name = "ipython", direction = "vertical", hidden = true, group = "Open" },
|
||||
oP = { cmd = "ipython", display_name = "ipython-full", direction = "tab", hidden = true, group = "Open" },
|
||||
on = { cmd = "ncmpcpp", display_name = "ncmpcpp", direction = "tab", hidden = true, group = "Open" },
|
||||
ob = { cmd = "btop", display_name = "btop", direction = "tab", hidden = true, group = "Open" },
|
||||
od = { cmd = "lazydocker", display_name = "lazydocker", direction = "tab", hidden = true },
|
||||
}
|
||||
|
||||
@@ -81,180 +465,76 @@ for key, value in pairs(programs_map) do
|
||||
end, opts)
|
||||
end
|
||||
|
||||
map("v", "op", "<C-\\><C-N>:ToggleTerm name=ipython")
|
||||
map("v", "oP", "<C-\\><C-N>:ToggleTerm name=ipython-full")
|
||||
|
||||
map("n", "<C-T>", ":ToggleTerm name=toggleterm<CR>", opts)
|
||||
map("n", "<leader>tt", ":ToggleTerm name=toggleterm<CR>", opts)
|
||||
map("n", "<leader>tT", ":ToggleTerm name=toggleterm-full direction=tab<CR>", opts)
|
||||
map("n", "<leader>ot", ":ToggleTerm name=toggleterm<CR>", opts)
|
||||
map("n", "<leader>oT", ":ToggleTerm name=toggleterm-full direction=tab<CR>", opts)
|
||||
map("n", "<leader>ts", ":TermSelect<CR>", opts)
|
||||
map("n", "<leader>tv", ":ToggleTerm direction=vertical name=toggleterm-vert<CR>", opts)
|
||||
map("n", "<leader>th", ":ToggleTerm direction=horizontal name=toggleterm-hori<CR>", opts)
|
||||
map("n", "<leader>ov", ":ToggleTerm direction=vertical name=toggleterm-vert<CR>", opts)
|
||||
map("n", "<leader>oh", ":ToggleTerm direction=horizontal name=toggleterm-hori<CR>", opts)
|
||||
map("n", "<leader>tf", ":ToggleTerm name=toggleterm<CR>", opts)
|
||||
map("n", "<leader>-", ":ToggleTerm direction='horizontal'<CR>", opts)
|
||||
map("n", "<leader>|", ":ToggleTerm direction='vertical'<CR>", opts)
|
||||
local tbl = {}
|
||||
for key, value in pairs(programs_map) do
|
||||
local temp = {}
|
||||
if key == "gg" then
|
||||
temp = {
|
||||
cmd = value.cmd,
|
||||
key = "<leader>" .. key,
|
||||
group = value.group,
|
||||
mode = "n",
|
||||
desc = "Open " .. value.display_name,
|
||||
}
|
||||
else
|
||||
temp = {
|
||||
cmd = value.cmd,
|
||||
key = "<leader>" .. key,
|
||||
group = value.group,
|
||||
mode = "n",
|
||||
desc = "Open " .. value.display_name,
|
||||
}
|
||||
end
|
||||
table.insert(tbl, temp)
|
||||
end
|
||||
add_to_whichkey(tbl, { key = "<leader>o", group = "Open" })
|
||||
|
||||
function _G.set_terminal_keymaps()
|
||||
local opts = { buffer = 0 }
|
||||
map("t", "<esc>", [[<C-\><C-n>]], opts)
|
||||
map("t", "<C-w>", [[<C-\><C-n><C-w>]], opts)
|
||||
-- map("t", "<space>", "<space>", { buffer = 0, silent = true }) -- fix space in terminal
|
||||
end
|
||||
|
||||
-- if you only want these mappings for toggle term use term://*toggleterm#* instead
|
||||
vim.cmd("autocmd! TermOpen term://* lua set_terminal_keymaps()")
|
||||
--}}}
|
||||
|
||||
--{{{ LSP mappings
|
||||
map("n", "gA", vim.lsp.buf.code_action, opts)
|
||||
map("n", "gd", ":Telescope lsp_definitions<CR>", opts)
|
||||
map("n", "gDc", ":Telescope lsp_implementations<CR>", opts)
|
||||
map("n", "gDf", ":Telescope lsp_definitions<CR>", opts)
|
||||
map("n", "gF", ":edit <cfile><CR>", opts)
|
||||
map("n", "gT", ":Telescope lsp_type_definitions<CR>", opts)
|
||||
map("n", "gb", ":Gitsigns blame_line<CR>", opts)
|
||||
map("n", "gi", ":Telescope lsp_implementations<CR>", opts)
|
||||
map("n", "gj", ":Telescope jumplist<CR>", opts)
|
||||
map("n", "gl", vim.lsp.codelens.run, opts)
|
||||
map("n", "gr", ":Telescope lsp_references<CR>", opts)
|
||||
map("n", "gs", vim.lsp.buf.signature_help, opts)
|
||||
map("n", "K", vim.lsp.buf.hover, opts)
|
||||
map("n", "<leader>kv", dsplit, opts)
|
||||
map("n", "<leader>cd", ":Telescope lsp_definitions<CR>")
|
||||
map("n", "<leader>ca", vim.lsp.buf.code_action)
|
||||
map("n", "<leader>cci", ":Telescope lsp_incoming_calls<CR>")
|
||||
map("n", "<leader>cco", ":Telescope lsp_outgoing_calls<CR>")
|
||||
map("n", "<leader>ch", ":lua vim.lsp.buf.signature_help()<CR>")
|
||||
map("n", "<leader>ci", ":Telescope lsp_implementations<CR>")
|
||||
map("n", "<leader>cr", ":Telescope lsp_references<CR>")
|
||||
map("n", "<leader>cR", ":lua vim.lsp.buf.rename()<CR>")
|
||||
map("n", "<leader>cs", ":Telescope lsp_document_symbols<CR>")
|
||||
map("n", "<leader>ct", ":Telescope lsp_type_definitions<CR>")
|
||||
map("n", "<leader>cw", ":Telescope lsp_dynamic_workspace_symbols<CR>")
|
||||
map("n", "<leader>cd", ":Telescope diagnostics theme=dropdown layout_config={width=0.8}<CR>")
|
||||
map("n", "<leader>cDs", ":Telescope diagnostics theme=dropdown layout_config={width=0.8}<CR>")
|
||||
map("n", "<leader>cDn", ":lua vim.diagnostic.goto_next()<CR>")
|
||||
map("n", "<leader>cDp", ":lua vim.diagnostic.goto_prev()<CR<CR>")
|
||||
map("n", "<leader>cl", ":lua vim.diagnostic.setloclist()<CR>")
|
||||
map("n", "<leader>cH", open_doc_in_vsplit, opts)
|
||||
--{{{ Groups
|
||||
add_to_whichkey(nil, { key = "<leader>a", group = "AnyJump" })
|
||||
add_to_whichkey(nil, { key = "<leader>b", group = "Buffers" })
|
||||
add_to_whichkey(nil, { key = "<leader>c", group = "Code" })
|
||||
add_to_whichkey(nil, { key = "<leader>ca", group = "Code Actions" })
|
||||
add_to_whichkey(nil, { key = "<leader>C", group = "CodeCompanion" })
|
||||
add_to_whichkey(nil, { key = "<leader>d", group = "ODIS" })
|
||||
add_to_whichkey(nil, { key = "<leader>f", group = "Find" })
|
||||
add_to_whichkey(nil, { key = "<leader>g", group = "Git" })
|
||||
add_to_whichkey(nil, { key = "<leader>gd", group = "DiffView" })
|
||||
add_to_whichkey(nil, { key = "<leader>gg", group = "Lazygit" })
|
||||
add_to_whichkey(nil, { key = "<leader>h", group = "Help" })
|
||||
add_to_whichkey(nil, { key = "<leader>j", group = "AnyJump" })
|
||||
add_to_whichkey(nil, { key = "<leader>N", group = "Noice" })
|
||||
add_to_whichkey(nil, { key = "<leader>o", group = "Open" })
|
||||
add_to_whichkey(nil, { key = "<leader>p", group = "Paste in Place" })
|
||||
add_to_whichkey(nil, { key = "<leader>s", group = "Search" })
|
||||
add_to_whichkey(nil, { key = "<leader>t", group = "Terminal" })
|
||||
add_to_whichkey(nil, { key = "<leader>T", group = "Telescope" })
|
||||
add_to_whichkey(nil, { key = "<leader>w", group = "Workspace" })
|
||||
add_to_whichkey(nil, { key = "<leader>x", group = "Make Executable" })
|
||||
add_to_whichkey(nil, { key = "<leader>y", group = "System Yank" })
|
||||
add_to_whichkey(nil, { key = "<leader>0", group = "Horizontal Terminal" })
|
||||
--}}}
|
||||
|
||||
--{{{ Code Companion and Copilot
|
||||
map("n", "<leader>cp", ":vert Copilot panel<CR>", opts)
|
||||
map("n", "<leader>oc", ":CodeCompanionChat Toggle<CR>")
|
||||
map("n", "<leader>Cc", ":CodeCompanionChat Toggle<CR>", opts)
|
||||
map("n", "<leader>Ci", ":CodeCompanion ", opts)
|
||||
map("n", "<leader>CT", ":CodeCompanionChat Toggle<CR>", opts)
|
||||
map("n", "<leader>Ca", ":CodeCompanionActions<CR>", opts)
|
||||
map("v", "<leader>Cc", ":CodeCompanionChat Add<CR>", opts)
|
||||
map("v", "<leader>Ci", ":CodeCompanion /buffer ", notsilent)
|
||||
map("v", "<leader>Ce", ":CodeCompanion /explain<CR>", notsilent)
|
||||
map("v", "<leader>Cf", ":CodeCompanion /fix<CR>", notsilent)
|
||||
map("v", "<leader>Cl", ":CodeCompanion /lsp<CR>", notsilent)
|
||||
map("v", "<leader>Ct", ":CodeCompanion /tests<CR>", notsilent)
|
||||
--}}}
|
||||
|
||||
--{{{ Telescope mappings
|
||||
-- {{{ Telescope Finders
|
||||
map("n", "//", ":Telescope current_buffer_fuzzy_find previewer=false<CR>", opts)
|
||||
map("n", "??", ":Telescope lsp_document_symbols theme=dropdown layout_config={width=0.5}<CR>", opts)
|
||||
map(
|
||||
"n",
|
||||
"<leader>fc",
|
||||
':Telescope color_names theme=dropdown layout_config={width=0.45,height=25,prompt_position="bottom"} layout_strategy=vertical<CR>',
|
||||
opts
|
||||
)
|
||||
map(
|
||||
"n",
|
||||
"<leader>Tc",
|
||||
':Telescope color_names theme=dropdown layout_config={width=0.45,height=25,prompt_position="bottom"} layout_strategy=vertical<CR>',
|
||||
opts
|
||||
)
|
||||
map("n", "<leader>Tn", ":Telescope notify theme=dropdown layout_config={width=0.75}<CR>", opts)
|
||||
|
||||
map(
|
||||
"n",
|
||||
"<leader>ff",
|
||||
":Telescope find_files find_command=rg,--ignore,--follow,--hidden,--files prompt_prefix=🔍<CR>",
|
||||
opts
|
||||
)
|
||||
map("n", "<leader>fg", ":Telescope live_grep<CR>", opts)
|
||||
map(
|
||||
"n",
|
||||
"<leader>Tg",
|
||||
':Telescope glyph theme=dropdown layout_config={width=0.45,height=35,prompt_position="bottom"} layout_strategy=vertical<CR>',
|
||||
opts
|
||||
)
|
||||
map(
|
||||
"n",
|
||||
"<leader>fG",
|
||||
':Telescope glyph theme=dropdown layout_config={width=0.45,height=35,prompt_position="bottom"} layout_strategy=vertical<CR>',
|
||||
opts
|
||||
)
|
||||
map("n", "<leader>fb", ":Telescope file_browser<CR>", opts)
|
||||
map("n", "<leader>fr", ":Telescope oldfiles theme=dropdown layout_config={width=0.5}<CR>", opts)
|
||||
-- }}}
|
||||
|
||||
--{{{ Telescope Help
|
||||
map("n", "<leader>hc", ":Telescope commands<CR>")
|
||||
map("n", "<leader>hv", ":Telescope vim_options<CR>")
|
||||
map("n", "<leader>hk", ":Telescope keymaps<CR>")
|
||||
map("n", "<leader>hs", ":Telescope spell_suggest<CR>")
|
||||
map("n", "<leader>hm", ":Telescope man_pages theme=dropdown layout_config={width=0.75}<CR>")
|
||||
--}}}
|
||||
|
||||
--{{{ Telescope Search
|
||||
map(
|
||||
"n",
|
||||
"<leader>sf",
|
||||
":Telescope find_files find_command=rg,--ignore,--follow,--hidden,--files prompt_prefix=🔍<CR>",
|
||||
opts
|
||||
)
|
||||
map("n", "<leader>sF", ":Telescope fidget<CR>")
|
||||
map("n", "<leader>sg", ":Telescope live_grep<CR>")
|
||||
map("n", "<leader>sh", ":Telescope command_history<CR>")
|
||||
map("n", "<leader>sm", ":Telescope man_pages<CR>")
|
||||
map("n", "<leader>s/", ":Telescope search_history<CR>")
|
||||
--}}}
|
||||
|
||||
--{{{ Git mappings
|
||||
map("n", "<leader>gc", ":Telescope git_commits<CR>", opts)
|
||||
map("n", "<leader>gf", ":Telescope git_files<CR>", opts)
|
||||
--}}}
|
||||
|
||||
map("n", "<leader>Tr", ":Telescope reloader<CR>", opts)
|
||||
|
||||
map("n", "Q", ":Telescope cmdline<CR>", opts)
|
||||
map("n", "<leader><leader>", ":Telescope cmdline<CR>", opts)
|
||||
--}}}
|
||||
|
||||
--{{{ File explorer and tools
|
||||
map("n", "<leader>nt", ":NvimTreeToggle<CR>", opts)
|
||||
map("n", "<leader>nc", ":lua vim.notify.dismiss()>", opts)
|
||||
map("n", "<leader>D", ":Dotenv .env<CR>", opts)
|
||||
--}}}
|
||||
|
||||
--{{{ Misc utilities
|
||||
map("n", "<leader>x", "<cmd>!chmod +x %<CR>", opts)
|
||||
map("n", "<leader>y", '"+', opts)
|
||||
map("v", "<leader>y", '"+', opts)
|
||||
map("n", "<leader>sc", ":nohls<CR>")
|
||||
--}}}
|
||||
|
||||
--{{{ Goto Preview
|
||||
map("n", "gpc", ':lua require("goto-preview").close_all_win()<CR>')
|
||||
map("n", "gpd", ':lua require("goto-preview").goto_preview_definition()<CR>')
|
||||
map("n", "gpi", ':lua require("goto-preview").goto_preview_implementation()<CR>')
|
||||
--}}}
|
||||
|
||||
--{{{ Workspace management
|
||||
map("n", "<leader>wa", vim.lsp.buf.add_workspace_folder, opts)
|
||||
map("n", "<leader>wr", vim.lsp.buf.remove_workspace_folder, opts)
|
||||
map("n", "<leader>wl", function()
|
||||
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||
end, opts)
|
||||
--{{{ Whichkey Mappings
|
||||
add_to_whichkey(map_from_table(basic_mappings))
|
||||
add_to_whichkey(map_from_table(buffer_navigation_mappings))
|
||||
add_to_whichkey(map_from_table(terminal_mappings))
|
||||
add_to_whichkey(map_from_table(lsp_mappings))
|
||||
add_to_whichkey(map_from_table(code_companion_mappings))
|
||||
add_to_whichkey(map_from_table(telescope_mappings))
|
||||
add_to_whichkey(map_from_table(file_explorer_mappings))
|
||||
add_to_whichkey(map_from_table(misc_utilities_mappings))
|
||||
add_to_whichkey(map_from_table(goto_preview_mappings))
|
||||
add_to_whichkey(map_from_table(workspace_management_mappings))
|
||||
add_to_whichkey(map_from_table(noice_mappings))
|
||||
add_to_whichkey(map_from_table(odis_mappings))
|
||||
add_to_whichkey(map_from_table(diffview_mappings))
|
||||
--}}}
|
||||
|
||||
Reference in New Issue
Block a user