Watch
1
0
Fork
You've already forked dotfiles
0

nvim: Migrate configuration to lua and built-in plugin manager

This commit is contained in:
Olli 2026-04-19 12:53:37 +02:00
commit 6440203958
26 changed files with 453 additions and 616 deletions

View file

@ -0,0 +1,77 @@
vim.g.mapleader = " "
-- Navigation
vim.keymap.set('n', 'gb', ':bn<CR>')
vim.keymap.set('n', 'gB', ':bp<CR>')
vim.keymap.set('n', 'g#', ':b#<CR>')
vim.keymap.set("n", "<leader>tt", "<cmd>Neotree toggle<cr>")
vim.keymap.set("n", "<leader>tr", "<cmd>Neotree reveal<cr>")
vim.keymap.set("n", "<C-p>", "<cmd>Telescope<cr>")
vim.keymap.set("n", "<C-b>", "<cmd>Telescope buffers<cr>")
vim.keymap.set("n", "<A-r>", "<cmd>Telescope git_files<CR>")
vim.keymap.set("n", "<C-l>", "<cmd>Telescope lsp_document_symbols<CR>")
vim.keymap.set("n", "<C-d>", "<cmd>lua require('telescope.builtin').diagnostics({severity_limit='WARN'})<CR>")
-- Terminal mode
vim.keymap.set('t', '<Esc>', '<C-\\><C-n>', { noremap = true})
-- LSP
vim.keymap.set("n", "<leader>e", vim.diagnostic.open_float)
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev)
vim.keymap.set("n", "]d", vim.diagnostic.goto_next)
vim.keymap.set("n", "<leader>q", vim.diagnostic.setloclist)
vim.keymap.set("n", "gD", vim.lsp.buf.declaration)
vim.keymap.set("n", "gd", vim.lsp.buf.definition)
vim.keymap.set("n", "K", vim.lsp.buf.hover)
vim.keymap.set("n", "gi", vim.lsp.buf.implementation)
vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help)
vim.keymap.set("n", "<leader>D", vim.lsp.buf.type_definition)
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename)
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action)
vim.keymap.set("n", "gr", vim.lsp.buf.references)
vim.keymap.set("n", "<leader>f", function() vim.lsp.buf.format { async = true } end)
vim.keymap.set("n", "<leader>xx", function() require('trouble').toggle({mode="diagnostics"}) end)
vim.keymap.set("n", "<leader>xX", function() require('trouble').toggle({mode="diagnostics", filter={buf=0}}) end)
vim.keymap.set("n", "<leader>xe", function() require('trouble').toggle({mode="diagnostics", filter={severity=vim.diagnostic.severity.ERROR}}) end)
vim.keymap.set("n", "<leader>xE", function() require('trouble').toggle({mode="diagnostics", filter={severity=vim.diagnostic.severity.ERROR, buf=0}}) end)
vim.keymap.set("n", "<leader>xw", function() require('trouble').toggle({mode="diagnostics", filter={severity=vim.diagnostic.severity.WARN}}) end)
vim.keymap.set("n", "<leader>xW", function() require('trouble').toggle({mode="diagnostics", filter={severity=vim.diagnostic.severity.WARN, buf=0}}) end)
vim.keymap.set("n", "<leader>xi", function() require('trouble').toggle({mode="diagnostics", filter={severity=vim.diagnostic.severity.INFO}}) end)
vim.keymap.set("n", "<leader>xI", function() require('trouble').toggle({mode="diagnostics", filter={severity=vim.diagnostic.severity.INFO, buf=0}}) end)
vim.keymap.set("n", "<leader>xh", function() require('trouble').toggle({mode="diagnostics", filter={severity=vim.diagnostic.severity.HINT}}) end)
vim.keymap.set("n", "<leader>xH", function() require('trouble').toggle({mode="diagnostics", filter={severity=vim.diagnostic.severity.HINT, buf=0}}) end)
vim.keymap.set("n", "<leader>xt", function() require('trouble').toggle({mode="todo"}) end)
vim.keymap.set("n", "<leader>xT", function() require('trouble').toggle({mode="todo", filter={buf=0}}) end)
vim.keymap.set("n", "<leader>cs", function() require('trouble').toggle({mode="symbols"}) end)
vim.keymap.set("n", "<leader>cl", function() require('trouble').toggle({mode="lsp", win={position="right"}}) end)
vim.keymap.set("n", "<leader>xL", function() require('trouble').toggle({mode="loclist"}) end)
vim.keymap.set("n", "<leader>xQ", function() require('trouble').toggle({mode="qflist"}) end)
-- DAP
vim.keymap.set("n", "<F11>", function() require("dap").continue() end)
vim.keymap.set("n", "<F6>", function() require("dap").step_over() end)
vim.keymap.set("n", "<F5>", function() require("dap").step_into() end)
vim.keymap.set("n", "<F12>", function() require("dap").step_out() end)
vim.keymap.set("n", "<space>b", function() require("dap").toggle_breakpoint() end)
vim.keymap.set({"n", "v"}, "<leader>d", "")
vim.keymap.set("n", "<leader>dB", function() require("dap").set_breakpoint(vim.fn.input('Breakpoint condition: ')) end)
vim.keymap.set("n", "<leader>db", function() require("dap").toggle_breakpoint() end)
vim.keymap.set("n", "<leader>dc", function() require("dap").continue() end)
vim.keymap.set("n", "<leader>da", function() require("dap").continue({ before = get_args }) end)
vim.keymap.set("n", "<leader>dC", function() require("dap").run_to_cursor() end)
vim.keymap.set("n", "<leader>dg", function() require("dap").goto_() end)
vim.keymap.set("n", "<leader>di", function() require("dap").step_into() end)
vim.keymap.set("n", "<leader>dj", function() require("dap").down() end)
vim.keymap.set("n", "<leader>dk", function() require("dap").up() end)
vim.keymap.set("n", "<leader>dl", function() require("dap").run_last() end)
vim.keymap.set("n", "<leader>do", function() require("dap").step_out() end)
vim.keymap.set("n", "<leader>dO", function() require("dap").step_over() end)
vim.keymap.set("n", "<leader>dp", function() require("dap").pause() end)
vim.keymap.set("n", "<leader>dr", function() require("dap").repl.toggle() end)
vim.keymap.set("n", "<leader>ds", function() require("dap").session() end)
vim.keymap.set("n", "<leader>dt", function() require("dap").terminate() end)
vim.keymap.set("n", "<leader>dw", function() require("dap.ui.widgets").hover() end)
vim.keymap.set("n", "<leader>df", function() require('jdtls').test_class() end)
vim.keymap.set("n", "<leader>dn", function() require('jdtls').test_nearest_method() end)
vim.keymap.set("n", "<leader>du", function() require("dapui").toggle({ }) end)
vim.keymap.set({"n", "v"}, "<leader>de", function() require("dapui").eval() end)

21
nvim/lua/user/dap.lua Normal file
View file

@ -0,0 +1,21 @@
local dap = require("dap")
dap.configurations.java = {{
type = 'java',
request = 'attach',
name = 'Debug (Attach) port 5005',
hostName = '127.0.0.1',
port = 5005,
},{
type = 'java',
request = 'attach',
name = 'Debug (Attach) port 5006',
hostName = '127.0.0.1',
port = 5006,
},{
type = 'java',
request = 'attach',
name = 'Debug (Attach) port 5105',
hostName = '127.0.0.1',
port = 5105,
}}

69
nvim/lua/user/lsp.lua Normal file
View file

@ -0,0 +1,69 @@
--vim.lsp.inlay_hint.enable()
vim.diagnostic.config({
virtual_text = true,
--virtual_lines = true,
--virtual_lines = {
-- current_line = true,
--},
severity_sort = true,
})
vim.opt.completeopt = { "menuone", "noselect", "popup", "fuzzy" }
vim.lsp.enable('html')
vim.lsp.enable('cssls')
vim.lsp.enable('jsonls')
vim.lsp.enable('typos_lsp')
-- Go
vim.lsp.config("gopls", {
settings = {
gopls = {
gofumpt = true,
staticcheck = true,
analyses = {
unusedparams = true,
unusedresult = true,
unusedwrite = true,
unusedvariable = true,
useany = true,
fieldalignment = false,
nilness = true,
shadow = true,
},
hints = {
assignVariableTypes = true,
compositeLiteralFields = true,
compositeLiteralTypes = true,
constantValues = true,
functionTypeParameters = true,
parameterNames = true,
rangeVariableTypes = true,
},
codelenses = {
gc_details = true,
generate = true,
regenerate_cgo = true,
tidy = true,
upgrade_dependency = true,
vendor = true,
},
},
},
})
vim.api.nvim_create_autocmd({"BufWritePre"}, {
pattern = "*.go",
callback = function()
local params = vim.lsp.util.make_range_params()
params.context = {only = {"source.organizeImports"}}
local result = vim.lsp.buf_request_sync(0, "textDocument/codeAction", params)
for cid, res in pairs(result or {}) do
for _, r in pairs(res.result or {}) do
if r.edit then
local enc = (vim.lsp.get_client_by_id(cid) or {}).offset_encoding or "utf-16"
vim.lsp.util.apply_workspace_edit(r.edit, enc)
end
end
end
vim.lsp.buf.format({async = false})
end
})
vim.lsp.enable('gopls')

38
nvim/lua/user/options.lua Normal file
View file

@ -0,0 +1,38 @@
vim.o.wrap = false
vim.o.number = true
vim.o.wildmode = "longest,list"
vim.o.colorcolumn = "120"
vim.o.tabpagemax = 500
vim.o.scrolloff = 4;
-- Indentation
vim.o.smartindent = true
vim.o.tabstop = 4
vim.o.softtabstop = 4
vim.o.shiftwidth = 4
vim.o.expandtab = true
vim.o.cursorcolumn = true
vim.o.cursorline = true
-- Search
vim.o.incsearch = true
vim.o.hlsearch = true
vim.o.ignorecase = true
vim.o.smartcase = true
-- Whitespaces
vim.o.listchars = "tab:>-,trail:·"
vim.o.list = true
-- File handling
vim.o.hidden = true
vim.cmd("syntax enable")
vim.cmd("filetype plugin on")
-- Colorscheme
vim.cmd("colorscheme gruvbox")
-- REST
vim.g.rest_nvim = {
}

19
nvim/lua/user/plugins.lua Normal file
View file

@ -0,0 +1,19 @@
gh = function(x) return "https://github.com/" .. x end
gl = function(x) return "https://gitlab.com/" .. x end
cb = function(x) return "https://codeberg.org/" .. x end
require("plugins.gruvbox")
require("plugins.lualine")
require("plugins.neotree")
require("plugins.gitsigns")
require("plugins.telescope")
require("plugins.trouble")
require("plugins.todo-comments")
require("plugins.treesitter")
require("plugins.lspconfig")
require("plugins.typos")
require("plugins.jdtls")
require("plugins.sonarlint")
require("plugins.dap")
require("plugins.dap-go")
require("plugins.cmp")