From 4ed0900c2b9d8e4fef99b2cd988cfe8845d09605 Mon Sep 17 00:00:00 2001 From: tobias Date: Fri, 25 Apr 2025 15:01:04 +0200 Subject: [PATCH] Adding a functional ansible lsp config --- lua/default/lazy/lsp.lua | 86 ++++++++++++++++++++++++++++++++++------ 1 file changed, 73 insertions(+), 13 deletions(-) diff --git a/lua/default/lazy/lsp.lua b/lua/default/lazy/lsp.lua index 6f0eaea..6b6ab61 100644 --- a/lua/default/lazy/lsp.lua +++ b/lua/default/lazy/lsp.lua @@ -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({ + [''] = cmp.mapping.select_prev_item(cmp_select), + [''] = cmp.mapping.select_next_item(cmp_select), + [''] = cmp.mapping.confirm({ select = true }), + [""] = cmp.mapping.complete(), + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'luasnip' }, -- For luasnip users. + }, { + { name = 'buffer' }, + }) + }) vim.diagnostic.config({ -- update_in_insert = true, @@ -49,4 +109,4 @@ return { }, }) end -} +} \ No newline at end of file