|
|
|
@ -1,35 +1,36 @@
|
|
|
|
|
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)
|
|
|
|
|
end
|
|
|
|
|
cfg["on_stdout"] = function(_, job, data, name)
|
|
|
|
|
notify(name .. " output for job" .. job .. "\nData: " .. data)
|
|
|
|
|
end
|
|
|
|
|
return Terminal:new(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()
|
|
|
|
|
term:toggle()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
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")
|
|
|
|
|
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
|
|
|
|
@ -47,8 +48,8 @@ vim.api.nvim_create_user_command("Keymaps", "edit ~/.config/nvim/lua/core/keymap
|
|
|
|
|
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("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)
|
|
|
|
@ -66,18 +67,18 @@ map("n", "<leader>bp", ":bprev<CR>", opts)
|
|
|
|
|
--{{{ Terminal mappings
|
|
|
|
|
|
|
|
|
|
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 },
|
|
|
|
|
od = { cmd = "lazydocker", display_name = "lazydocker", direction = "tab", hidden = true },
|
|
|
|
|
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 },
|
|
|
|
|
od = { cmd = "lazydocker", display_name = "lazydocker", direction = "tab", hidden = true },
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for key, value in pairs(programs_map) do
|
|
|
|
|
map("n", "<leader>" .. key, function()
|
|
|
|
|
term_toggle(term_factory(value))
|
|
|
|
|
end, opts)
|
|
|
|
|
map("n", "<leader>" .. key, function()
|
|
|
|
|
term_toggle(term_factory(value))
|
|
|
|
|
end, opts)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
map("v", "op", "<C-\\><C-N>:ToggleTerm name=ipython")
|
|
|
|
@ -98,10 +99,10 @@ map("n", "<leader>-", ":ToggleTerm direction='horizontal'<CR>", opts)
|
|
|
|
|
map("n", "<leader>|", ":ToggleTerm direction='vertical'<CR>", opts)
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
@ -122,6 +123,7 @@ 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>")
|
|
|
|
@ -133,11 +135,12 @@ 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<CR>")
|
|
|
|
|
map("n", "<leader>cDs", ":Telescope diagnostics<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)
|
|
|
|
|
--}}}
|
|
|
|
|
|
|
|
|
|
--{{{ Code Companion and Copilot
|
|
|
|
@ -157,30 +160,43 @@ map("v", "<leader>Ct", ":CodeCompanion /tests<CR>", notsilent)
|
|
|
|
|
|
|
|
|
|
--{{{ Telescope mappings
|
|
|
|
|
-- {{{ Telescope Finders
|
|
|
|
|
map("n", "//", ":Telescope current_buffer_fuzzy_find<CR>", opts)
|
|
|
|
|
map("n", "??", ":Telescope lsp_document_symbols<CR>", opts)
|
|
|
|
|
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
|
|
|
|
|
"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>ob', ':Telescope file_browser<CR>')
|
|
|
|
|
map(
|
|
|
|
|
"n",
|
|
|
|
|
"<leader>ff",
|
|
|
|
|
":Telescope find_files find_command=rg,--ignore,--follow,--hidden,--files prompt_prefix=🔍<CR>",
|
|
|
|
|
opts
|
|
|
|
|
"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>fG",
|
|
|
|
|
':Telescope glyph theme=dropdown layout_config={width=0.45,height=35,prompt_position="bottom"} layout_strategy=vertical<CR>',
|
|
|
|
|
opts
|
|
|
|
|
"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<CR>", opts)
|
|
|
|
|
map("n", "<leader>fr", ":Telescope oldfiles theme=dropdown layout_config={width=0.5}<CR>", opts)
|
|
|
|
|
-- }}}
|
|
|
|
|
|
|
|
|
|
--{{{ Telescope Help
|
|
|
|
@ -188,15 +204,15 @@ 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<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
|
|
|
|
|
"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>")
|
|
|
|
@ -210,6 +226,8 @@ 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)
|
|
|
|
|
--}}}
|
|
|
|
@ -236,6 +254,6 @@ map("n", "gpi", ':lua require("goto-preview").goto_preview_implementation()<CR>'
|
|
|
|
|
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()))
|
|
|
|
|
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
|
|
|
|
end, opts)
|
|
|
|
|
--}}}
|
|
|
|
|