From 1d5ca0aa2971d2485575ed7c5efad17144cb3fb1 Mon Sep 17 00:00:00 2001 From: pablu Date: Sun, 22 Mar 2026 18:04:35 +0100 Subject: Initial commit --- dot_config/nvim/init.lua | 110 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 dot_config/nvim/init.lua (limited to 'dot_config/nvim/init.lua') diff --git a/dot_config/nvim/init.lua b/dot_config/nvim/init.lua new file mode 100644 index 0000000..e39d340 --- /dev/null +++ b/dot_config/nvim/init.lua @@ -0,0 +1,110 @@ +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + vim.fn.system({ + "git", + "clone", + "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", -- latest stable release + lazypath, + }) +end +vim.opt.rtp:prepend(lazypath) + +require("vim-options") +require("lazy").setup("plugins") + +vim.o.number = true +vim.o.relativenumber = true + +vim.filetype.add({ + extension = { + gotmpl = 'gotmpl', + }, + pattern = { + [".*%.gohtml"] = "gotmpl", + [".*%.gotmpl"] = "gotmpl" + } +}) + +-- Panes +vim.cmd.set("splitright") +vim.keymap.set("n", "/", function() + vim.cmd.vnew() +end, { desc = "Pane split right" }) + +vim.cmd.set("splitbelow") +vim.keymap.set("n", "-", function() + vim.cmd.new() +end, { desc = "Pane split down" }) + +-- vim.api.nvim_set_keymap('n', '', ':wincmd k', { noremap = true, silent = true, desc = "Move to up windows" }); +-- vim.api.nvim_set_keymap('n', '', ':wincmd h', { noremap = true, silent = true, desc = "Move to left windows" }); +-- vim.api.nvim_set_keymap('n', '', ':wincmd j', { noremap = true, silent = true, desc = "Move to down windows" }); +-- vim.api.nvim_set_keymap('n', '', ':wincmd l', { noremap = true, silent = true, desc = "Move to right windows" }); + +vim.api.nvim_set_keymap('n', 'gb', ':bnext', { noremap = true, silent = true, desc = "Go back last buffer" }); + +vim.api.nvim_set_keymap('t', '', '', { noremap = true, silent = true, desc = "Escape Terminal" }); +vim.api.nvim_create_autocmd('TermOpen', { + group = vim.api.nvim_create_augroup('custom-term-open', { clear = true }), + callback = function() + vim.opt.number = false + vim.opt.relativenumber = false + end, +}); + + +-- Telescope +local builtin = require("telescope.builtin") +vim.keymap.set('n', 'fg', function() builtin.live_grep({ glob_pattern = "!*_templ.go" }) end, + { desc = "Telescope live grep" }) +vim.keymap.set('n', 'gl', builtin.lsp_references, { desc = "Telescope show references" }) +vim.keymap.set('n', 'fx', builtin.diagnostics, { desc = "Telescope open diagnostics" }) +vim.keymap.set('n', 'ff', builtin.find_files, { desc = "Telescope find files" }) +vim.keymap.set('n', 'fb', builtin.buffers, { desc = "Telescope open buffers" }) + +-- Formating +vim.keymap.set("n", "gf", function() + require("conform").format({ lsp_format = "fallback" }) +end, { desc = "Format buffer" }) + +-- Filesystem +vim.keymap.set("n", "e", ":Oil", { desc = "Open file explorer: OIL" }) + +-- Neotest +local neotest = require("neotest") +vim.keymap.set("n", "ts", function() + neotest.summary.toggle() +end, { desc = "Neotest open summary" }) +vim.keymap.set("n", "to", neotest.output.open, { desc = "Neotest open output" }) +vim.keymap.set("n", "td", function() neotest.run.run({ suite = false, strategy = "dap" }) end, + { desc = "Neotest debug closest test" }) +vim.keymap.set("n", "tr", function() neotest.run.run({ suite = false }) end, + { desc = "Neotest run closest test" }) + +-- Debugging +local dap = require("dap") +vim.keymap.set("n", "db", dap.toggle_breakpoint, + { nowait = true, remap = false, desc = "Debug toggle breakpoint" }) +vim.keymap.set("n", "dc", dap.continue, { nowait = true, remap = false, desc = "Debug continue" }) +vim.keymap.set("n", "di", dap.step_into, { nowait = true, remap = false, desc = "Debug step into" }) +vim.keymap.set("n", "do", dap.step_over, { nowait = true, remap = false, desc = "Debug step over" }) +vim.keymap.set("n", "dr", dap.repl.open, { nowait = true, remap = false, desc = "Debug open repl" }) +vim.keymap.set("n", "dq", function() + dap.terminate() + require("dapui").close() + require("nvim-dap-virtual-text").toggle() +end, { nowait = true, remap = false, desc = "Debug close" }) +vim.keymap.set("n", "dl", dap.list_breakpoints, { nowait = true, remap = false, desc = "Debug list breakpoints" }) + + +-- Lsp Config +vim.keymap.set("n", "K", vim.lsp.buf.hover, { desc = "Show hover information" }) +vim.keymap.set("n", "gd", vim.lsp.buf.definition, { desc = "Goto definition" }) +vim.keymap.set({ "n", "v" }, "ca", vim.lsp.buf.code_action, { desc = "LSP code action" }) +vim.keymap.set("n", "cr", vim.lsp.buf.rename, { desc = "LSP rename" }) + +-- Motions +vim.keymap.set("n", "", "zz", {}) +vim.keymap.set("n", "", "zz", {}) -- cgit 1.3.1