summaryrefslogtreecommitdiff
path: root/nvim/lua/keymaps.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/lua/keymaps.lua')
-rw-r--r--nvim/lua/keymaps.lua104
1 files changed, 20 insertions, 84 deletions
diff --git a/nvim/lua/keymaps.lua b/nvim/lua/keymaps.lua
index 7de2235..34ff6c1 100644
--- a/nvim/lua/keymaps.lua
+++ b/nvim/lua/keymaps.lua
@@ -19,15 +19,16 @@ map("v", "K", ":m '<-2<CR>gv=gv", { noremap = true, silent = true })
map("v", "<", "<gv", { noremap = true, silent = true })
map("v", ">", ">gv", { noremap = true, silent = true })
--- Управление буферами --
+-- {{{ Управление буферами --
kmap("n", "<leader>bn", "<cmd>bnext<CR>", { noremap = true, silent = true, desc = "Next buffer" })
kmap("n", "<leader>bp", "<cmd>bprevious<CR>", { noremap = true, silent = true, desc = "Previous buffer" })
kmap("n", "<leader>bd", "<cmd>bdelete<CR>", { noremap = true, silent = true, desc = "Delete buffer" })
kmap("n", "<leader>w", "<cmd>wa<CR>", { noremap = true, silent = true, desc = "Save all files" })
kmap("n", "qq", "<cmd>q<CR>", { noremap = true, silent = true, desc = "Exit" })
kmap("n", "<leader>vs", "<cmd>vsplit<CR>", { noremap = true, silent = true, desc = "Vertical split" })
+-- }}}
--- Управление вкладками --
+-- {{{ Управление вкладками --
kmap("n", "<A-Right>", ":tabnext<CR>", { noremap = true, silent = true, desc = "Next tab" })
kmap("n", "<A-Left>", ":tabprevious<CR>", { noremap = true, silent = true, desc = "Previous tab" })
kmap("n", "<leader>tn", ":tabnew<CR>", { noremap = true, silent = true, desc = "New tab" })
@@ -38,116 +39,51 @@ for i = 1, 9 do
kmap("n", "<A-" .. i .. ">", ":tabn " .. i .. "<CR>", { noremap = true, silent = true, desc = "Go to tab " .. i })
end
--- Файловый менеджер --
-kmap("n", "<F3>", ":NvimTreeToggle<CR>", { noremap = true, silent = true, desc = "Toggle file tree" })
--- kmap("n", "<leader>tt", ":NvimTreeToggle<CR>", { noremap = true, silent = true, desc = "Toggle file tree" })
+-- }}}
kmap("n", "<leader>tt", ":split<CR>:terminal<CR>:startinsert<CR>", { noremap = true, silent = true })
--- Поиск с Telescope --
-kmap("n", "<leader>ff", "<cmd>Telescope find_files<CR>", { noremap = true, silent = true, desc = "Find files" })
-kmap("n", "<leader>fg", "<cmd>Telescope live_grep<CR>", { noremap = true, silent = true, desc = "Live grep" })
-kmap("n", "<leader>fb", "<cmd>Telescope buffers<CR>", { noremap = true, silent = true, desc = "Find buffers" })
-kmap("n", "<leader>fe", "<cmd>Telescope file_browser<CR>", { noremap = true, silent = true, desc = "File browser" })
-
--- LSP функции --
+-- {{{ LSP функции
kmap("n", "<leader>e", vim.diagnostic.open_float, { noremap = true, silent = true, desc = "Show diagnostics" })
+
kmap("n", "d[", vim.diagnostic.goto_prev, { noremap = true, silent = true, desc = "Previous diagnostic" })
+
kmap("n", "d]", vim.diagnostic.goto_next, { noremap = true, silent = true, desc = "Next diagnostic" })
kmap("n", "gD", vim.lsp.buf.declaration, { noremap = true, silent = true, desc = "Go to declaration" })
+
kmap("n", "gd", vim.lsp.buf.definition, { noremap = true, silent = true, desc = "Go to definition" })
+
kmap("n", "K", vim.lsp.buf.hover, { noremap = true, silent = true, desc = "Show documentation" })
+
kmap("n", "gi", vim.lsp.buf.implementation, { noremap = true, silent = true, desc = "Go to implementation" })
+
kmap("n", "<C-k>", vim.lsp.buf.signature_help, { noremap = true, silent = true, desc = "Signature help" })
+
kmap(
"n",
"<leader>wa",
vim.lsp.buf.add_workspace_folder,
{ noremap = true, silent = true, desc = "Add workspace folder" }
)
+
kmap(
"n",
"<leader>wr",
vim.lsp.buf.remove_workspace_folder,
{ noremap = true, silent = true, desc = "Remove workspace folder" }
)
+
kmap("n", "<leader>wl", function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, { noremap = true, silent = true, desc = "List workspace folders" })
+
kmap("n", "<leader>D", vim.lsp.buf.type_definition, { noremap = true, silent = true, desc = "Type definition" })
-kmap("n", "<leader>rn", vim.lsp.buf.rename, { noremap = true, silent = true, desc = "Rename symbol" })
-kmap("n", "<leader>ca", vim.lsp.buf.code_action, { noremap = true, silent = true, desc = "Code actions" })
+
+kmap("n", "<A-CR>", vim.lsp.buf.code_action, { noremap = true, silent = true, desc = "Code actions" })
+
kmap("n", "gr", vim.lsp.buf.references, { noremap = true, silent = true, desc = "Find references" })
--- Отладка (DAP) --
-kmap("n", "<F9>", "<cmd>lua require'dapui'.toggle()<CR>", { noremap = true, silent = true, desc = "Toggle debug UI" })
-kmap("n", "<F5>", function()
- require("dap").continue()
-end)
-kmap("n", "<F10>", function()
- require("dap").step_over()
-end)
-kmap("n", "<F11>", function()
- require("dap").step_into()
-end)
-kmap("n", "<F12>", function()
- require("dap").step_out()
-end)
-kmap(
- "n",
- "<leader>dt",
- "<cmd>lua require'dapui'.toggle()<CR>",
- { noremap = true, silent = true, desc = "Toggle debug UI" }
-)
-kmap("n", "<leader>dc", function()
- require("dap").continue()
-end)
-kmap("n", "<leader>so", function()
- require("dap").step_over()
-end)
-kmap("n", "<leader>si", function()
- require("dap").step_into()
-end)
-kmap("n", "<leader>st", function()
- require("dap").step_out()
-end)
-
-kmap("n", "<Leader>b", function()
- require("dap").toggle_breakpoint()
-end)
-kmap("n", "<Leader>B", function()
- require("dap").set_breakpoint()
-end)
-kmap("n", "<Leader>lp", function()
- require("dap").set_breakpoint(nil, nil, vim.fn.input("Log point message: "))
-end)
-kmap("n", "<Leader>dr", function()
- require("dap").repl.open()
-end)
-kmap("n", "<Leader>dl", function()
- require("dap").run_last()
-end)
-kmap({ "n", "v" }, "<Leader>dh", function()
- require("dap.ui.widgets").hover()
-end)
-kmap({ "n", "v" }, "<Leader>dp", function()
- require("dap.ui.widgets").preview()
-end)
-kmap("n", "<Leader>df", function()
- local widgets = require("dap.ui.widgets")
- widgets.centered_float(widgets.frames)
-end)
-kmap("n", "<Leader>ds", function()
- local widgets = require("dap.ui.widgets")
- widgets.centered_float(widgets.scopes)
-end)
-
--- Кастомная функция для NvimTree --
-local function change_root_to_global_cwd()
- local api = require("nvim-tree.api")
- local global_cwd = vim.fn.getcwd(-1, -1)
- api.tree.change_root(global_cwd)
-end
+kmap("n", "<F2>", vim.lsp.buf.rename, { noremap = true, silent = true, desc = "Rename symbol" })
-kmap("n", "<C-c>", change_root_to_global_cwd, { noremap = true, silent = true, desc = "Change tree root to CWD" })
+-- }}}