Selection

Selected file

keymaps.lua

.config/nvim/lua/core/keymaps.lua

local git = require("core.git")

vim.keymap.set("n", "<C-b>", function()
    Snacks.explorer()
end, { desc = "Toggle file explorer" })

vim.keymap.set("n", "<C-f>", function()
    Snacks.picker.grep()
end, { desc = "Grep files" })

vim.keymap.set("n", "<C-p>", function()
    Snacks.picker.files()
end, { desc = "Find files" })

vim.keymap.set({ "n", "x", "o" }, "gs", function()
    require("flash").jump()
end, { desc = "Flash jump" })

vim.keymap.set({ "n", "x", "o" }, "gS", function()
    require("flash").treesitter()
end, { desc = "Flash treesitter jump" })

vim.keymap.set("n", "<C-t>", "<cmd>tabnew<CR>", { desc = "New tab" })
vim.keymap.set("n", "<C-q>", "<cmd>tabclose<CR>", { desc = "Close tab" })
vim.keymap.set("n", "<C-j>", "<cmd>tabprev<CR>", { desc = "Previous tab" })
vim.keymap.set("n", "<C-k>", "<cmd>tabnext<CR>", { desc = "Next tab" })

vim.keymap.set("n", "<F1>", function()
    Snacks.picker.keymaps()
end, { desc = "Show keymaps" })

vim.keymap.set("n", "<F3>", function()
    vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
end, { desc = "Toggle inlay hints" })

vim.keymap.set("n", "<C-S-m>", function()
    Snacks.picker.diagnostics()
end, { desc = "Show problems" })

vim.keymap.set("n", "<C-S-o>", function()
    Snacks.picker.lsp_symbols()
end, { desc = "Show file symbols" })

vim.keymap.set("n", "<A-u>", function()
    require("nvim-treesitter-textobjects.move").goto_previous_start({ "@function.outer", "@class.outer" }, "textobjects")
end, { desc = "Previous function or class" })

vim.keymap.set("n", "<A-d>", function()
    require("nvim-treesitter-textobjects.move").goto_next_start({ "@function.outer", "@class.outer" }, "textobjects")
end, { desc = "Next function or class" })

vim.keymap.set("n", "<C-g>", function()
    git.workspace_status()
end, { desc = "Show Git workspace status" })

vim.keymap.set("n", "<A-S-g>", function()
    Snacks.picker.git_diff()
end, { desc = "Show Git diff" })