nvim: Migrate configuration to lua and built-in plugin manager
This commit is contained in:
parent
9d31a63799
commit
6440203958
26 changed files with 453 additions and 616 deletions
77
nvim/lua/user/bindings.lua
Normal file
77
nvim/lua/user/bindings.lua
Normal 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
21
nvim/lua/user/dap.lua
Normal 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
69
nvim/lua/user/lsp.lua
Normal 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
38
nvim/lua/user/options.lua
Normal 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
19
nvim/lua/user/plugins.lua
Normal 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")
|
||||
Loading…
Reference in a new issue