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,7 +1,7 @@
require("ts_context_commentstring").setup({ require("ts_context_commentstring").setup({
enable_autocmd = false, enable_autocmd = false,
}) })
require('Comment').setup({ require('mini.comment').setup({
ignore = '^$', -- Ignore empty lines ignore = '^$', -- Ignore empty lines
pre_hook = require("ts_context_commentstring.integrations.comment_nvim").create_pre_hook(), pre_hook = require("ts_context_commentstring.integrations.comment_nvim").create_pre_hook(),
}) })

View File

@@ -106,8 +106,8 @@ local servers = {
-- Default handlers for LSP -- Default handlers for LSP
local default_handlers = { local default_handlers = {
["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded" }), ["textDocument/hover"] = vim.lsp.buf.hover({ border = "rounded" }),
["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = "rounded", focus = false }), ["textDocument/signatureHelp"] = vim.lsp.buf.signature_help({ border = "rounded", focus = false }),
} }
-- nvim-cmp supports additional completion capabilities -- nvim-cmp supports additional completion capabilities

View File

@@ -1,27 +1,27 @@
require'nvim-treesitter.configs'.setup { require 'nvim-treesitter'.setup {
-- A list of parser names, or "all" (the five listed parsers should always be installed) -- A list of parser names, or "all" (the five listed parsers should always be installed)
ensure_installed = { "bash", "bibtex", "c", "cpp", "lua", "markdown", "python", "vim", "vimdoc" }, ensure_installed = { "bash", "bibtex", "c", "cpp", "lua", "markdown", "python", "vim", "vimdoc" },
-- Install parsers synchronously (only applied to `ensure_installed`) -- Install parsers synchronously (only applied to `ensure_installed`)
sync_install = false, sync_install = false,
-- Automatically install missing parsers when entering buffer -- Automatically install missing parsers when entering buffer
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
auto_install = true, auto_install = true,
---- If you need to change the installation directory of the parsers (see -> Advanced Setup) ---- If you need to change the installation directory of the parsers (see -> Advanced Setup)
-- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")! -- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!
highlight = { highlight = {
enable = true, enable = true,
-- Setting this to true will run `:h syntax` and tree-sitter at the same time. -- Setting this to true will run `:h syntax` and tree-sitter at the same time.
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
-- Using this option may slow down your editor, and you may see some duplicate highlights. -- Using this option may slow down your editor, and you may see some duplicate highlights.
-- Instead of true it can also be a list of languages -- Instead of true it can also be a list of languages
disable = {"latex"}, disable = { "latex" },
additional_vim_regex_highlighting = false, additional_vim_regex_highlighting = false,
}, },
} }
local vim = vim local vim = vim
@@ -36,21 +36,20 @@ opt.foldexpr = "nvim_treesitter#foldexpr()"
-------- This function is taken from https://github.com/norcalli/nvim_utils -------- This function is taken from https://github.com/norcalli/nvim_utils
function M.nvim_create_augroups(definitions) function M.nvim_create_augroups(definitions)
for group_name, definition in pairs(definitions) do for group_name, definition in pairs(definitions) do
api.nvim_command('augroup '..group_name) api.nvim_command('augroup ' .. group_name)
api.nvim_command('autocmd!') api.nvim_command('autocmd!')
for _, def in ipairs(definition) do for _, def in ipairs(definition) do
local command = table.concat(vim.iter{'autocmd', def}:flatten():totable(), ' ') local command = table.concat(vim.iter { 'autocmd', def }:flatten():totable(), ' ')
api.nvim_command(command) api.nvim_command(command)
end end
api.nvim_command('augroup END') api.nvim_command('augroup END')
end end
end end
local autoCommands = { local autoCommands = {
-- other autocommands -- other autocommands
open_folds = { open_folds = {
{"BufReadPost,FileReadPost", "*", "normal zR"} { "BufReadPost,FileReadPost", "*", "normal zR" }
} }
} }
@@ -61,8 +60,8 @@ vim.o.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
-- Prefer LSP folding if client supports it -- Prefer LSP folding if client supports it
vim.api.nvim_create_autocmd('LspAttach', { vim.api.nvim_create_autocmd('LspAttach', {
callback = function(args) callback = function(args)
local client = vim.lsp.get_client_by_id(args.data.client_id) local client = vim.lsp.get_client_by_id(args.data.client_id)
if client:supports_method('textDocument/foldingRange') then if client:supports_method('textDocument/foldingRange') then
local win = vim.api.nvim_get_current_win() local win = vim.api.nvim_get_current_win()
vim.wo[win][0].foldexpr = 'v:lua.vim.lsp.foldexpr()' vim.wo[win][0].foldexpr = 'v:lua.vim.lsp.foldexpr()'
end end

View File

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

View File

@@ -11,7 +11,7 @@ vim.g.mapleader = " "
vim.g.maplocalleader = ";" vim.g.maplocalleader = ";"
-- Set Explorer keybind to leader-"e" -- 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 -- Disable Space bar since it'll be used as the leader key
nnoremap("<space>", "<nop>") 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) -- -- 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) M.map_lsp_keybinds = function(buffer_number)
-- Rename variable -- 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 -- 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 -- 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 -- Goto reference
nnoremap( nnoremap(
"gr", "gr",
require("telescope.builtin").lsp_references, require("telescope.builtin").lsp_references,
{ desc = "LSP: [G]oto [R]eferences", buffer = buffer_number } { desc = "LSP: [G]oto [R]eferences", buffer = buffer_number }
) )
-- Goto implementation -- Goto implementation
nnoremap( nnoremap(
"gi", "gi",
require("telescope.builtin").lsp_implementations, require("telescope.builtin").lsp_implementations,
{ desc = "LSP: [G]oto [I]mplementation", buffer = buffer_number } { desc = "LSP: [G]oto [I]mplementation", buffer = buffer_number }
) )
-- List of symbols in the current buffer -- List of symbols in the current buffer
nnoremap( nnoremap(
"<leader>bs", "<leader>bs",
require("telescope.builtin").lsp_document_symbols, require("telescope.builtin").lsp_document_symbols,
{ desc = "LSP: [B]uffer [S]ymbols", buffer = buffer_number } { desc = "LSP: [B]uffer [S]ymbols", buffer = buffer_number }
) )
-- List of symbols in the workspace -- List of symbols in the workspace
nnoremap( nnoremap(
"<leader>ps", "<leader>ps",
require("telescope.builtin").lsp_workspace_symbols, require("telescope.builtin").lsp_workspace_symbols,
{ desc = "LSP: [P]roject [S]ymbols", buffer = buffer_number } { desc = "LSP: [P]roject [S]ymbols", buffer = buffer_number }
) )
-- Hover documentation -- 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 -- Signature documentation
nnoremap("<leader>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 }) inoremap("<C-k>", vim.lsp.buf.signature_help, { desc = "LSP: Signature Documentation", buffer = buffer_number })
-- Goto declaration -- Goto declaration
nnoremap("gD", vim.lsp.buf.declaration, { desc = "LSP: [G]oto [D]eclaration", buffer = buffer_number }) nnoremap("gD", vim.lsp.buf.declaration, { desc = "LSP: [G]oto [D]eclaration", buffer = buffer_number })
-- Type definition -- 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 end
-- Goto next diagnostic of any severity -- Goto next diagnostic of any severity
nnoremap("]d", function() nnoremap("]d", function()
vim.diagnostic.goto_next({}) vim.diagnostic.jump({ count = 1, float = true })
vim.api.nvim_feedkeys("zz", "n", false) vim.api.nvim_feedkeys("zz", "n", false)
end) end)
-- Goto prev diagnostic of any severity -- Goto prev diagnostic of any severity
nnoremap("[d", function() nnoremap("[d", function()
vim.diagnostic.goto_prev({}) vim.diagnostic.jump({ count = -1, float = true })
vim.api.nvim_feedkeys("zz", "n", false) vim.api.nvim_feedkeys("zz", "n", false)
end) end)
-- Goto next error diagnostic -- Goto next error diagnostic
nnoremap("]e", function() nnoremap("]e", function()
vim.diagnostic.goto_next({ severity = vim.diagnostic.severity.ERROR }) vim.diagnostic.jump({ severity = vim.diagnostic.severity.ERROR, count = 1, float = true })
vim.api.nvim_feedkeys("zz", "n", false) vim.api.nvim_feedkeys("zz", "n", false)
end) end)
-- Goto previous error diagnostic -- Goto previous error diagnostic
nnoremap("[e", function() nnoremap("[e", function()
vim.diagnostic.goto_prev({ severity = vim.diagnostic.severity.ERROR }) vim.diagnostic.jump({ severity = vim.diagnostic.severity.ERROR, count = -1, float = true })
vim.api.nvim_feedkeys("zz", "n", false) vim.api.nvim_feedkeys("zz", "n", false)
end) end)
-- Goto next warning diagnostic -- Goto next warning diagnostic
nnoremap("]w", function() nnoremap("]w", function()
vim.diagnostic.goto_next({ severity = vim.diagnostic.severity.WARN }) vim.diagnostic.jump({ severity = vim.diagnostic.severity.WARN, count = 1, float = true })
vim.api.nvim_feedkeys("zz", "n", false) vim.api.nvim_feedkeys("zz", "n", false)
end) end)
-- Goto previous warning diagnostic -- Goto previous warning diagnostic
nnoremap("[w", function() nnoremap("[w", function()
vim.diagnostic.goto_prev({ severity = vim.diagnostic.severity.WARN }) vim.diagnostic.jump({ severity = vim.diagnostic.severity.WARN, count = -1, float = true })
vim.api.nvim_feedkeys("zz", "n", false) vim.api.nvim_feedkeys("zz", "n", false)
end) end)
-- Open diagnostic window -- Open diagnostic window
nnoremap("<leader>d", function() nnoremap("<leader>d", function()
vim.diagnostic.open_float({ vim.diagnostic.open_float({
border = "rounded", border = "rounded",
}) })
end) end)
return M return M

View File

@@ -11,7 +11,7 @@
autocmd VimLeave *.tex !texclear % autocmd VimLeave *.tex !texclear %
" Ensure files are read as what I want: " Ensure files are read as what I want:
let g:vimwiki_ext2syntax = {'.Rmd': 'markdown', '.rmd': 'markdown','.md': 'markdown', '.markdown': 'markdown', '.mdown': 'markdown'} let g:vimwiki_ext2syntax = {'.Rmd': 'markdown', '.rmd': 'markdown','.mdx': 'markdown','.md': 'markdown', '.markdown': 'markdown', '.mdown': 'markdown'}
map <leader>v :VimwikiIndex<CR> map <leader>v :VimwikiIndex<CR>
let g:vimwiki_list = [{'path': '~/.local/share/nvim/vimwiki', 'syntax': 'markdown', 'ext': '.md'}] let g:vimwiki_list = [{'path': '~/.local/share/nvim/vimwiki', 'syntax': 'markdown', 'ext': '.md'}]
autocmd BufRead,BufNewFile /tmp/calcurse*,~/.calcurse/notes/* set filetype=markdown autocmd BufRead,BufNewFile /tmp/calcurse*,~/.calcurse/notes/* set filetype=markdown
@@ -37,6 +37,11 @@
autocmd BufWritePost ~/.config/i3/config !i3 restart autocmd BufWritePost ~/.config/i3/config !i3 restart
autocmd BufWritePost ~/.config/i3blocks/config !i3 restart autocmd BufWritePost ~/.config/i3blocks/config !i3 restart
" Remove checkhealth warning for optionnal providers
let g:loaded_node_provider = 0
let g:loaded_perl_provider = 0
let g:loaded_ruby_provider = 0
" Function for toggling the bottom statusbar: " Function for toggling the bottom statusbar:
let s:hidden_all = 0 let s:hidden_all = 0
function! ToggleHiddenAll() function! ToggleHiddenAll()