omg-nvim/lua/config/keymaping.lua
2025-01-18 19:48:56 +03:00

97 lines
3.0 KiB
Lua

local map = vim.keymap.set
local dap = require("dap")
local term = require("nvterm.terminal")
map("n", "<C-left>", "<C-o>", { desc = "LSP Back" })
map("n", "<C-right>", "<C-i>", { desc = "LSP Forward" })
map("v", "<C-c>", '"+y', { desc = "Copy selected" })
map({ "i", "n" }, "<C-v>", '<ESC>"+p', { desc = "Past" })
map({ "n", "v", "i" }, "<C-s>", function()
vim.cmd("w")
vim.api.nvim_input("<esc>")
end, { desc = "Save file" })
map({ "n", "v", "i" }, "<C-a>", "<ESC>ggVG", { desc = "Select all" })
map("n", "<C-S-left>", "<C-w>h", { desc = "switch window left" })
map("n", "<C-S-right>", "<C-w>l", { desc = "switch window right" })
map("n", "<C-S-down>", "<C-w>j", { desc = "switch window down" })
map("n", "<C-S-up>", "<C-w>k", { desc = "switch window up" })
map("n", "<C-_>", "gcc", { desc = "toggle comment", remap = true })
map("v", "<C-_>", "gc", { desc = "toggle comment", remap = true })
-- neo-tree
map({ "n", "v" }, "<leader>e", "<Cmd>Neotree<CR>", { desc = "nvimtree focus window" })
map({ "n", "v" }, "<leader>g", "<Cmd>Neotree git_status float<CR>", { desc = "open gis status" })
map({ "n", "v" }, "<C-q>", "<Cmd>BufferClose<CR>", { desc = "close window" })
-- telescope
map("n", "<leader>f", "<Cmd>Telescope live_grep<CR>", { desc = "telescope live grep" })
map("n", "<leader>r", "<Cmd>Telescope lsp_references<CR>", { desc = "telescope lsp references" })
map("n", "<leader>d", "<Cmd>Telescope lsp_definitions<CR>", { desc = "telescope lsp definitions" })
-- barbar
map("n", "<tab>", "<Cmd>BufferNext<CR>", { desc = "Next tab" })
map("n", "<S-tab>", "<Cmd>BufferPrevious<CR>", { desc = "Previous tab" })
-- dap
map("n", "<leader>bb", dap.toggle_breakpoint, { desc = "Toggle breakpoint" })
map("n", "<F5>", dap.step_over, { desc = "Step over" })
map("n", "<F6>", dap.step_into, { desc = "Step into" })
map("n", "<F7>", dap.step_out, { desc = "Step out" })
map("n", "<F8>", dap.continue, { desc = "Continue" })
-- nvterm
map("n", "<leader>t", function()
term.toggle("horizontal")
end, { desc = "Open terminal" })
-- searchbox
map({ "n", "v", "i" }, "<C-f>", function()
require("searchbox").incsearch({
modifier = "ignore-case",
})
end, { desc = "Search in file" })
-- menu
function MergeTable(table1, table2)
for _, value in ipairs(table2) do
table1[#table1 + 1] = value
end
return table1
end
local menu = require("menu")
local menuItems = MergeTable(require("config.menu"), require("menus.default"))
function OpenMenu(mouse)
-- require("menu.utils").delete_old_menus()
-- vim.cmd.exec('"normal! \\<RightMouse>"')
local ft = vim.bo.ft
if ft ~= "neo-tree" then
menu.open(menuItems, { mouse = mouse, border = true })
end
end
map({ "n", "v", "i" }, "<RightMouse>", function()
OpenMenu(true)
end)
map("n", "<A-CR>", function()
OpenMenu(false)
end)
-- --
-- map({ "n", "i" }, "<S-left>", function()
-- vim.cmd.normal("v")
-- -- vim.api.nvim_input("<CMD>v")
-- -- vim.api.nvim_command("set insertmode")
-- -- evim.cmd("v")
-- end)
require("langmapper").automapping({ global = true, buffer = true })