refactor(nvim): rework whole configuration
This commit is contained in:
parent
64c6149fde
commit
710e8f6395
6 changed files with 90 additions and 45 deletions
|
@ -65,7 +65,7 @@ in
|
|||
python3Packages.python-lsp-server
|
||||
shellcheck
|
||||
|
||||
terraform-lsp
|
||||
tofu-ls
|
||||
tflint
|
||||
vscode-langservers-extracted
|
||||
yaml-language-server
|
||||
|
@ -120,7 +120,7 @@ in
|
|||
{
|
||||
plugin = gitsigns-nvim;
|
||||
type = "lua";
|
||||
config = (builtins.readFile ./files/plugins/luasnip.lua);
|
||||
config = (builtins.readFile ./files/plugins/gitsign.lua);
|
||||
}
|
||||
{
|
||||
plugin = indent-blankline-nvim;
|
||||
|
|
|
@ -1,6 +1,15 @@
|
|||
local opts = { noremap = true, silent = true}
|
||||
|
||||
vim.api.nvim_set_keymap('n', '<leader>/', ':nohlsearch<CR>', opts)
|
||||
vim.api.nvim_set_keymap('n', '<leader>l', ':set list!<CR>', {silent = true})
|
||||
|
||||
-- clear search
|
||||
vim.keymap.set('n', '<leader>l', ':nohlsearch<CR>', { desc = 'Clear search', remap = true, silent = true })
|
||||
|
||||
-- Move tabs with \[ and \]
|
||||
vim.api.nvim_set_keymap('n', '<Leader>]', ':tabnext<CR>', opts)
|
||||
vim.api.nvim_set_keymap('n', '<Leader>[', ':tabprev<CR>', opts)
|
||||
|
||||
-- Switch between windows.
|
||||
vim.keymap.set('n', '<C-h>', '<C-w>h', { desc = 'Move to the left window', remap = true })
|
||||
vim.keymap.set('n', '<C-j>', '<C-w>j', { desc = 'Move to the bottom window', remap = true })
|
||||
|
@ -19,31 +28,3 @@ vim.keymap.set('n', '<Leader>tn', ':tabnew<CR>', { desc = "Tab [n]ew", remap = t
|
|||
|
||||
-- Show all caracters
|
||||
vim.keymap.set('n', '<leader>l', ':set list!<CR>', { desc = "Show a[l]l caraters", remap = true, silent = true})
|
||||
|
||||
-- neotree
|
||||
-- -------
|
||||
vim.keymap.set('n', '<leader>nc', ':Neotree close<cr>', {desc='Neotree [c]lose'})
|
||||
vim.keymap.set('n', '<leader>nf', ':Neotree focus filesystem<cr>', {desc='Neotree [f]ocus'})
|
||||
vim.keymap.set('n', '<leader>nb', ':Neotree focus buffers<cr>', {desc='Neotree Nvim [b]uffers'})
|
||||
vim.keymap.set('n', '<leader>ng', ':Neotree focus git_status<cr>', {desc='Neotree [g]it status'})
|
||||
|
||||
-- fzf-lua
|
||||
-- ------
|
||||
vim.keymap.set('n', '<leader>fb', function() require('fzf-lua').buffers() end, {desc='open [b]uffers'})
|
||||
vim.keymap.set('n', '<leader>ff', function() require('fzf-lua').files() end, {desc='[r]esume last command'})
|
||||
vim.keymap.set('n', '<leader>fr', function() require('fzf-lua').files() end, {desc='[f]iles'})
|
||||
|
||||
-- git related keymaps
|
||||
vim.keymap.set('n', '<leader>fgb', function() require('fzf-lua').git_branches() end, {desc='Git [b]ranches'})
|
||||
vim.keymap.set('n', '<leader>fgc', function() require('fzf-lua').git_commits() end, {desc='Git [c]ommits'})
|
||||
vim.keymap.set('n', '<leader>fgC', function() require('fzf-lua').git_bcommits() end, {desc='Git current buffer [C]ommits'})
|
||||
vim.keymap.set('n', '<leader>fgf', function() require('fzf-lua').git_files() end, {desc='Git [f]iles'})
|
||||
vim.keymap.set('n', '<leader>fgs', function() require('fzf-lua').git_stash() end, {desc='Git [s]tash'})
|
||||
vim.keymap.set('n', '<leader>fgS', function() require('fzf-lua').git_status() end, {desc='Git [S]tash'})
|
||||
|
||||
-- grep related keymaps
|
||||
vim.keymap.set('n', '<leader>fGb', function() require('fzf-lua').grep_curbuf() end, {desc='grep in current [b]uffer'})
|
||||
vim.keymap.set('n', '<leader>fGc', function() require('fzf-lua').grep_cword() end, {desc='grep word under the [c]ursor'})
|
||||
vim.keymap.set('n', '<leader>fGg', function() require('fzf-lua').grep() end, {desc='[g]rep'})
|
||||
vim.keymap.set('n', '<leader>fGl', function() require('fzf-lua').live_grep() end, {desc='[l]ive grep'})
|
||||
vim.keymap.set('n', '<leader>fGr', function() require('fzf-lua').grep_last() end, {desc='[r]erun last grep'})
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
return {
|
||||
cmd = { 'terraform-ls', 'serve' },
|
||||
cmd = { 'tofu-ls', 'serve' },
|
||||
filetypes = { 'terraform', 'terraform-vars' },
|
||||
root_markers = { '.terraform', '.git' },
|
||||
}
|
|
@ -52,7 +52,7 @@ vim.opt.wildmode = 'lastused:full,list' -- enhance menu
|
|||
vim.opt.pumheight = 10
|
||||
vim.opt.pumwidth = 50
|
||||
vim.opt.pumblend = 10
|
||||
|
||||
vim.o.winborder = 'none'
|
||||
-- manage line break smartly
|
||||
vim.opt.wrap = true
|
||||
vim.opt.breakindent = true
|
||||
|
@ -103,24 +103,13 @@ vim.opt.wildignore = {
|
|||
'*.sw?'
|
||||
}
|
||||
|
||||
-- Key biding
|
||||
-- " ----------
|
||||
local opts = { noremap = true, silent = true}
|
||||
|
||||
vim.api.nvim_set_keymap('n', '<leader>/', ':nohlsearch<CR>', opts)
|
||||
|
||||
-- Move tabs with \[ and \]
|
||||
vim.api.nvim_set_keymap('n', '<Leader>]', ':tabnext<CR>', opts)
|
||||
vim.api.nvim_set_keymap('n', '<Leader>[', ':tabprev<CR>', opts)
|
||||
vim.api.nvim_set_keymap('n', '<leader>l', ':set list!<CR>', {silent = true})
|
||||
|
||||
-- disable lsplog
|
||||
-- This is not usefull on a daily basis and should positively impact performance
|
||||
vim.lsp.set_log_level("off")
|
||||
|
||||
-- define a timeout for match parens
|
||||
vim.g.matchparen_timeout = 2
|
||||
vim.g.matchparen_insert_timeout = 2
|
||||
vim.g.matchparen_timeout = 10
|
||||
vim.g.matchparen_insert_timeout = 10
|
||||
|
||||
-- activate virtual lines for diagnistics
|
||||
-- no more plugins needed
|
||||
|
@ -134,3 +123,73 @@ vim.diagnostic.config({
|
|||
-- },
|
||||
signs = { text = { [x.ERROR] = "", [x.WARN] = "", [x.INFO] = "", [x.HINT] = "" } },
|
||||
})
|
||||
|
||||
-- LSP
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
|
||||
callback = function(ev)
|
||||
vim.bo[ev.buf].omnifunc = "v:lua.vim.lsp.omnifunc"
|
||||
|
||||
local opts = { buffer = ev.buf }
|
||||
local client = vim.lsp.get_client_by_id(ev.data.client_id)
|
||||
local bufnr = ev.buf
|
||||
local function desc(description)
|
||||
return { noremap = true, silent = true, buffer = bufnr, desc = description }
|
||||
end
|
||||
|
||||
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { buffer = ev.buf, desc = "Go to [D]eclaration" })
|
||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, { buffer = ev.buf, desc = "Go to [d]efinition" })
|
||||
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, { buffer = ev.buf, desc = "Go to [i]mplementation" })
|
||||
vim.keymap.set("n", "gr", vim.lsp.buf.references, { buffer = ev.buf, desc = "Go to [r]eferences" })
|
||||
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"K",
|
||||
function()
|
||||
vim.lsp.buf.hover
|
||||
{ border = "rounded", max_width = 250 }
|
||||
end,
|
||||
opts)
|
||||
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"<C-k>",
|
||||
function()
|
||||
vim.lsp.buf.signature_help
|
||||
{ border = "rounded", max_width = 250 }
|
||||
end,
|
||||
{buffer = ev.buf, desc = "Signature help"}
|
||||
)
|
||||
|
||||
vim.keymap.set("n", "<leader>wa", vim.lsp.buf.add_workspace_folder, opts)
|
||||
vim.keymap.set("n", "<leader>wr", vim.lsp.buf.remove_workspace_folder, opts)
|
||||
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"<leader>wl",
|
||||
function()
|
||||
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||
end,
|
||||
opts
|
||||
)
|
||||
|
||||
vim.keymap.set("n", "<leader>D", vim.lsp.buf.type_definition, { buffer = ev.buf, desc = "Type [D]efinition" })
|
||||
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, { buffer = ev.buf, desc = "LSP [r]e[n]ame" })
|
||||
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, { buffer = ev.buf, desc = "Show [c]ode [a]ction"})
|
||||
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"<leader>F",
|
||||
function()
|
||||
require("conform").format({ bufnr = bufnr })
|
||||
end,
|
||||
{ buffer = ev.buf, desc = "[F]ormat file" }
|
||||
)
|
||||
|
||||
if client.server_capabilities.inlayHintProvider then
|
||||
vim.keymap.set("n", "<space>h", function()
|
||||
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
|
||||
end, desc("LSP toggle inlay [h]ints"))
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
|
|
@ -18,3 +18,8 @@ neotree.setup({
|
|||
},
|
||||
}
|
||||
})
|
||||
|
||||
vim.keymap.set('n', '<leader>nc', ':Neotree close<cr>', {desc='Neotree [c]lose'})
|
||||
vim.keymap.set('n', '<leader>nf', ':Neotree focus filesystem<cr>', {desc='Neotree [f]ocus'})
|
||||
vim.keymap.set('n', '<leader>nb', ':Neotree focus buffers<cr>', {desc='Neotree Nvim [b]uffers'})
|
||||
vim.keymap.set('n', '<leader>ng', ':Neotree focus git_status<cr>', {desc='Neotree [g]it status'})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue