update and optimize nvim

This commit is contained in:
Tibeuleu
2026-06-09 17:13:34 +02:00
parent d0ee76ef6c
commit 1bf3a84fd0
6 changed files with 137 additions and 124 deletions

View File

@@ -1,71 +1,80 @@
local function bootstrap_pckr()
local pckr_path = vim.fn.stdpath("data") .. "/pckr/pckr.nvim"
local pckr_path = vim.fn.stdpath("data") .. "/pckr/pckr.nvim"
if not (vim.uv or vim.loop).fs_stat(pckr_path) then
vim.fn.system({
'git',
'clone',
"--filter=blob:none",
'https://github.com/lewis6991/pckr.nvim',
pckr_path
})
end
if not (vim.uv or vim.loop).fs_stat(pckr_path) then
vim.fn.system({
'git',
'clone',
"--filter=blob:none",
'https://github.com/lewis6991/pckr.nvim',
pckr_path
})
end
vim.opt.rtp:prepend(pckr_path)
vim.opt.rtp:prepend(pckr_path)
end
bootstrap_pckr()
require('pckr').add{
require('pckr').add {
{
'nvim-telescope/telescope.nvim',
tag = '0.1.1',
-- or branch = '0.1.x',
requires = { {'nvim-lua/plenary.nvim'} }
};
"ellisonleao/gruvbox.nvim";
version = '*',
requires = {
{ 'nvim-lua/plenary.nvim' },
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' },
}
},
"ellisonleao/gruvbox.nvim",
{
'nvim-treesitter/nvim-treesitter',
run = function()
local ts_update = require('nvim-treesitter.install').update({ with_sync = true })
ts_update()
end,
};
branch = "main",
build = ':TSUpdate'
},
{
'ThePrimeagen/harpoon',
requires = { {'nvim-lua/plenary.nvim'} }
};
'mbbill/undotree';
'tpope/vim-fugitive';
'airblade/vim-gitgutter';
'lukas-reineke/indent-blankline.nvim';
'JoosepAlviste/nvim-ts-context-commentstring';
'numToStr/Comment.nvim';
'lervag/vimtex';
requires = { { 'nvim-lua/plenary.nvim' } }
},
'mbbill/undotree',
'tpope/vim-fugitive',
'airblade/vim-gitgutter',
'lukas-reineke/indent-blankline.nvim',
'JoosepAlviste/nvim-ts-context-commentstring',
{
'nvim-mini/mini.comment',
branch = "main",
config = function()
require('mini.comment').setup()
end,
},
'lervag/vimtex',
{
'neovim/nvim-lspconfig',
requires = {
-- LSP Support
{'williamboman/mason.nvim'},
{'williamboman/mason-lspconfig.nvim'},
{ 'williamboman/mason.nvim' },
{ 'williamboman/mason-lspconfig.nvim' },
-- DAP Support
{'mfussenegger/nvim-dap'},
{'mfussenegger/nvim-dap-python'},
{'jay-babu/mason-nvim-dap.nvim'},
{ 'mfussenegger/nvim-dap' },
{ 'mfussenegger/nvim-dap-python' },
{ 'jay-babu/mason-nvim-dap.nvim' },
-- Autocompletion
{'hrsh7th/nvim-cmp'},
{'hrsh7th/cmp-nvim-lsp'},
{'hrsh7th/cmp-buffer'},
{'hrsh7th/cmp-path'},
{'hrsh7th/cmp-cmdline'},
{ 'hrsh7th/nvim-cmp' },
{ 'hrsh7th/cmp-nvim-lsp' },
{ 'hrsh7th/cmp-buffer' },
{ 'hrsh7th/cmp-path' },
{ 'hrsh7th/cmp-cmdline' },
-- Snippets
{'L3MON4D3/LuaSnip'},
{'saadparwaiz1/cmp_luasnip'},
{'rafamadriz/friendly-snippets'},
{'onsails/lspkind.nvim'},
{
'L3MON4D3/LuaSnip',
run = "make install_jsregexp",
},
{ 'saadparwaiz1/cmp_luasnip' },
{ 'rafamadriz/friendly-snippets' },
{ 'onsails/lspkind.nvim' },
-- Utils
{'j-hui/fidget.nvim'},
{'folke/neodev.nvim'}
};
};
{ 'j-hui/fidget.nvim' },
{ 'folke/neodev.nvim' }
},
},
}

View File

@@ -11,7 +11,7 @@ vim.g.mapleader = " "
vim.g.maplocalleader = ";"
-- Set Explorer keybind to leader-"e"
vim.keymap.set("n","<leader>e", vim.cmd.Ex)
vim.keymap.set("n", "<leader>e", vim.cmd.Ex)
-- Disable Space bar since it'll be used as the leader key
nnoremap("<space>", "<nop>")
@@ -37,98 +37,98 @@ nnoremap("<leader>cl", "<cmd>!wc -l %<cr>")
-- LSP Keybinds (exports a function to be used in ../../after/plugin/lsp.lua b/c we need a reference to the current buffer) --
M.map_lsp_keybinds = function(buffer_number)
-- Rename variable
nnoremap("<leader>rn", vim.lsp.buf.rename, { desc = "LSP: [R]e[n]ame", buffer = buffer_number })
nnoremap("<leader>rn", vim.lsp.buf.rename, { desc = "LSP: [R]e[n]ame", buffer = buffer_number })
-- LSP code action
nnoremap("<leader>ca", vim.lsp.buf.code_action, { desc = "LSP: [C]ode [A]ction", buffer = buffer_number })
nnoremap("<leader>ca", vim.lsp.buf.code_action, { desc = "LSP: [C]ode [A]ction", buffer = buffer_number })
-- Goto definition
nnoremap("gd", vim.lsp.buf.definition, { desc = "LSP: [G]oto [D]efinition", buffer = buffer_number })
nnoremap("gd", vim.lsp.buf.definition, { desc = "LSP: [G]oto [D]efinition", buffer = buffer_number })
-- Telescope LSP keybinds --
-- Telescope LSP keybinds --
-- Goto reference
nnoremap(
"gr",
require("telescope.builtin").lsp_references,
{ desc = "LSP: [G]oto [R]eferences", buffer = buffer_number }
)
nnoremap(
"gr",
require("telescope.builtin").lsp_references,
{ desc = "LSP: [G]oto [R]eferences", buffer = buffer_number }
)
-- Goto implementation
nnoremap(
"gi",
require("telescope.builtin").lsp_implementations,
{ desc = "LSP: [G]oto [I]mplementation", buffer = buffer_number }
)
nnoremap(
"gi",
require("telescope.builtin").lsp_implementations,
{ desc = "LSP: [G]oto [I]mplementation", buffer = buffer_number }
)
-- List of symbols in the current buffer
nnoremap(
"<leader>bs",
require("telescope.builtin").lsp_document_symbols,
{ desc = "LSP: [B]uffer [S]ymbols", buffer = buffer_number }
)
nnoremap(
"<leader>bs",
require("telescope.builtin").lsp_document_symbols,
{ desc = "LSP: [B]uffer [S]ymbols", buffer = buffer_number }
)
-- List of symbols in the workspace
nnoremap(
"<leader>ps",
require("telescope.builtin").lsp_workspace_symbols,
{ desc = "LSP: [P]roject [S]ymbols", buffer = buffer_number }
)
nnoremap(
"<leader>ps",
require("telescope.builtin").lsp_workspace_symbols,
{ desc = "LSP: [P]roject [S]ymbols", buffer = buffer_number }
)
-- Hover documentation
nnoremap("K", vim.lsp.buf.hover, { desc = "LSP: Hover Documentation", buffer = buffer_number })
nnoremap("K", vim.lsp.buf.hover, { desc = "LSP: Hover Documentation", buffer = buffer_number })
-- Signature documentation
nnoremap("<leader>k", vim.lsp.buf.signature_help, { desc = "LSP: Signature Documentation", buffer = buffer_number })
inoremap("<C-k>", vim.lsp.buf.signature_help, { desc = "LSP: Signature Documentation", buffer = buffer_number })
nnoremap("<leader>k", vim.lsp.buf.signature_help, { desc = "LSP: Signature Documentation", buffer = buffer_number })
inoremap("<C-k>", vim.lsp.buf.signature_help, { desc = "LSP: Signature Documentation", buffer = buffer_number })
-- Goto declaration
nnoremap("gD", vim.lsp.buf.declaration, { desc = "LSP: [G]oto [D]eclaration", buffer = buffer_number })
-- Goto declaration
nnoremap("gD", vim.lsp.buf.declaration, { desc = "LSP: [G]oto [D]eclaration", buffer = buffer_number })
-- Type definition
nnoremap("td", vim.lsp.buf.type_definition, { desc = "LSP: [T]ype [D]efinition", buffer = buffer_number })
nnoremap("td", vim.lsp.buf.type_definition, { desc = "LSP: [T]ype [D]efinition", buffer = buffer_number })
end
-- Goto next diagnostic of any severity
nnoremap("]d", function()
vim.diagnostic.goto_next({})
vim.api.nvim_feedkeys("zz", "n", false)
vim.diagnostic.jump({ count = 1, float = true })
vim.api.nvim_feedkeys("zz", "n", false)
end)
-- Goto prev diagnostic of any severity
nnoremap("[d", function()
vim.diagnostic.goto_prev({})
vim.api.nvim_feedkeys("zz", "n", false)
vim.diagnostic.jump({ count = -1, float = true })
vim.api.nvim_feedkeys("zz", "n", false)
end)
-- Goto next error diagnostic
nnoremap("]e", function()
vim.diagnostic.goto_next({ severity = vim.diagnostic.severity.ERROR })
vim.api.nvim_feedkeys("zz", "n", false)
vim.diagnostic.jump({ severity = vim.diagnostic.severity.ERROR, count = 1, float = true })
vim.api.nvim_feedkeys("zz", "n", false)
end)
-- Goto previous error diagnostic
nnoremap("[e", function()
vim.diagnostic.goto_prev({ severity = vim.diagnostic.severity.ERROR })
vim.api.nvim_feedkeys("zz", "n", false)
vim.diagnostic.jump({ severity = vim.diagnostic.severity.ERROR, count = -1, float = true })
vim.api.nvim_feedkeys("zz", "n", false)
end)
-- Goto next warning diagnostic
nnoremap("]w", function()
vim.diagnostic.goto_next({ severity = vim.diagnostic.severity.WARN })
vim.api.nvim_feedkeys("zz", "n", false)
vim.diagnostic.jump({ severity = vim.diagnostic.severity.WARN, count = 1, float = true })
vim.api.nvim_feedkeys("zz", "n", false)
end)
-- Goto previous warning diagnostic
nnoremap("[w", function()
vim.diagnostic.goto_prev({ severity = vim.diagnostic.severity.WARN })
vim.api.nvim_feedkeys("zz", "n", false)
vim.diagnostic.jump({ severity = vim.diagnostic.severity.WARN, count = -1, float = true })
vim.api.nvim_feedkeys("zz", "n", false)
end)
-- Open diagnostic window
nnoremap("<leader>d", function()
vim.diagnostic.open_float({
border = "rounded",
})
vim.diagnostic.open_float({
border = "rounded",
})
end)
return M