Files
dotfiles/nvim/.config/nvim/lua/plugins/lsp.lua
Bertrand Benjamin 0a00251742 Restructure dotfiles : suppression outils abandonnés, migration sway→hyprland, neomutt→aerc
- Supprimés : fish, qtile, X, vim, sway, neomutt (+ package systemd vide)
- Nouveau package hyprland : waybar, rofi, mako, gammastep, rofi-pass, systemd (mail+kanata+mpd+voxtype), script rofi
- Nouveau package aerc : config aerc + infra mail (msmtp, khard, vdirsyncer) migrée depuis neomutt
- Nettoyage .gitignore : suppression entrées neomutt/vim, ajout patterns moc/mpd/vifm manquants, vdirsyncer/status pour aerc
- Mise à jour des configs trackées modifiées (nvim, zsh, tmux, git, newsboat)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 06:40:49 +02:00

43 lines
1.5 KiB
Lua

return {
"neovim/nvim-lspconfig",
dependencies = {
{ "williamboman/mason.nvim" },
{ "williamboman/mason-lspconfig.nvim" },
{ "WhoIsSethDaniel/mason-tool-installer.nvim" },
},
config = function()
vim.api.nvim_create_autocmd("LspAttach", {
callback = function(args)
local opts = { buffer = args.buf, silent = true }
vim.keymap.set("n", "gd", vim.lsp.buf.definition, vim.tbl_extend("force", opts, { desc = "Go to definition" }))
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, vim.tbl_extend("force", opts, { desc = "Go to declaration" }))
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, vim.tbl_extend("force", opts, { desc = "Go to implementation" }))
vim.keymap.set("n", "gr", vim.lsp.buf.references, vim.tbl_extend("force", opts, { desc = "Show references" }))
vim.keymap.set("n", "K", vim.lsp.buf.hover, vim.tbl_extend("force", opts, { desc = "Hover documentation" }))
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, vim.tbl_extend("force", opts, { desc = "Rename symbol" }))
vim.keymap.set({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, vim.tbl_extend("force", opts, { desc = "Code action" }))
end,
})
require("mason").setup({})
require("mason-lspconfig").setup({
ensure_installed = {},
handlers = {
function(server_name)
vim.lsp.enable(server_name)
end,
},
})
require("mason-tool-installer").setup({
ensure_installed = {
"prettier",
"stylua",
"ruff",
"eslint_d",
},
})
end,
}