Files
dotfiles/term/.config/nvim/lua/plugins/lsp-config.lua
T
2026-03-27 12:20:40 +01:00

104 lines
2.4 KiB
Lua

return {
-- Mason (LSP server installer)
{
"mason-org/mason.nvim",
config = function()
require("mason").setup()
end,
},
-- Mason-LSPconfig (bridge Mason and nvim-lspconfig)
{
"mason-org/mason-lspconfig.nvim",
config = function()
require("mason-lspconfig").setup({
ensure_installed = {
"pyright", -- Python
"ts_ls", -- TypeScript/JavaScript
"jsonls", -- JSON
"yamlls", -- YAML
"html", -- HTML
"cssls", -- CSS
"bashls", -- Bash
"lua_ls", -- Lua
--"stylua",
},
automatic_enable = true,
})
end,
},
-- nvim-lspconfig
{
"neovim/nvim-lspconfig",
config = function()
-- Lua
vim.lsp.config("lua_ls", {
settings = {
Lua = {
runtime = { version = "LuaJIT" },
workspace = { library = vim.api.nvim_get_runtime_file("", true) },
},
},
})
-- Python
vim.lsp.config("pyright", {
settings = {
python = {
analysis = {
typeCheckingMode = "basic",
extraPaths = {}, -- Add extra import paths if needed
},
},
},
})
-- Type- and JavaScript
vim.lsp.config("ts_ls", {
settings = {
typescript = {
inlayHints = {
includeInlayParameterNameHints = "all",
includeInlayParameterNameHintsWhenArgumentMatchesName = false,
includeInlayFunctionParameterTypeHints = true,
includeInlayVariableTypeHints = true,
includeInlayPropertyDeclarationTypeHints = true,
includeInlayFunctionLikeReturnTypeHints = true,
includeInlayEnumMemberValueHints = true,
},
},
javascript = {
inlayHints = {
includeInlayParameterNameHints = "all",
includeInlayParameterNameHintsWhenArgumentMatchesName = false,
includeInlayFunctionParameterTypeHints = true,
includeInlayVariableTypeHints = true,
includeInlayPropertyDeclarationTypeHints = true,
includeInlayFunctionLikeReturnTypeHints = true,
includeInlayEnumMemberValueHints = true,
},
},
},
})
-- Other languages
vim.lsp.config("jsonls", {})
vim.lsp.config("yamlls", {})
vim.lsp.config("html", {})
vim.lsp.config("cssls", {})
vim.lsp.config("bashls", {})
-- Enable servers
vim.lsp.enable("lua_ls")
vim.lsp.enable("pyright")
vim.lsp.enable("ts_ls")
vim.lsp.enable("jsonls")
vim.lsp.enable("yamlls")
vim.lsp.enable("html")
vim.lsp.enable("cssls")
vim.lsp.enable("bashls")
end,
},
}