Adding a functional ansible lsp config

This commit is contained in:
tobias 2025-04-25 15:01:04 +02:00
parent 3b4f7e8c3e
commit 4ed0900c2b

View File

@ -1,7 +1,6 @@
return {
"neovim/nvim-lspconfig",
dependencies = {
"stevearc/conform.nvim",
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
"hrsh7th/cmp-nvim-lsp",
@ -15,10 +14,6 @@ return {
},
config = function()
require("conform").setup({
formatters_by_ft = {
}
})
local cmp = require('cmp')
local cmp_lsp = require("cmp_nvim_lsp")
local capabilities = vim.tbl_deep_extend(
@ -29,13 +24,78 @@ return {
require("fidget").setup({})
require("mason").setup()
-- require("mason-lspconfig").setup({
-- handlers = {
-- function(server_name) -- default handler (optional)
-- require("lspconfig")[server_name].setup {
-- capabilities = capabilities
-- }
-- end,
require("mason-lspconfig").setup({
ensure_installed = {
"lua_ls",
"ansiblels",
},
handlers = {
function(server_name) -- default handler (optional)
require("lspconfig")[server_name].setup {
capabilities = capabilities
}
end,
["ansiblels"] = function()
local lspconfig = require("lspconfig")
lspconfig["ansiblels"].setup({
cmd = { 'ansible-language-server', '--stdio' },
settings = {
ansible = {
python = { interpreterPath = 'python' },
ansible = { path = 'ansible' },
executionEnvironment = { enabled = false },
validation = {
enabled = false,
-- lint = { enabled = true, path = 'ansible-lint' },
},
},
},
filetypes = { 'yaml', 'yml', 'ansible' },
root_dir = lspconfig.util.root_pattern("roles", "playbooks"),
single_file_support = false,
})
end,
["lua_ls"] = function()
local lspconfig = require("lspconfig")
lspconfig.lua_ls.setup {
capabilities = capabilities,
settings = {
Lua = {
diagnostics = {
globals = { "vim", "it", "describe", "before_each", "after_each" },
}
}
}
}
end,
}
})
local cmp_select = { behavior = cmp.SelectBehavior.Select }
cmp.setup({
snippet = {
expand = function(args)
require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
end,
},
mapping = cmp.mapping.preset.insert({
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
['<C-y>'] = cmp.mapping.confirm({ select = true }),
["<C-Space>"] = cmp.mapping.complete(),
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'luasnip' }, -- For luasnip users.
}, {
{ name = 'buffer' },
})
})
vim.diagnostic.config({
-- update_in_insert = true,