From 5764e98ae62d739c081cb828e50e5d0eb3a971ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?SALVI=20J=C3=A9r=C3=A9mie?= Date: Fri, 19 Jul 2024 10:08:28 +0200 Subject: [PATCH] add ansible lsp configuration --- lua/config/init.lua | 1 + lua/config/lsp/ansible.lua | 57 ++++++++++++++++++++++++++++++++++++++ lua/config/lsp/bash.lua | 2 +- lua/config/lsp/php.lua | 2 +- 4 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 lua/config/lsp/ansible.lua diff --git a/lua/config/init.lua b/lua/config/init.lua index 74514ea..fa27003 100644 --- a/lua/config/init.lua +++ b/lua/config/init.lua @@ -13,6 +13,7 @@ require("config/which-key") require("config/nvim-cmp") require("config/mason") require("config/lsp/lsp-signs") +require("config/lsp/ansible") require("config/lsp/bash") require("config/lsp/lua") require("config/lsp/web") diff --git a/lua/config/lsp/ansible.lua b/lua/config/lsp/ansible.lua new file mode 100644 index 0000000..401b1f0 --- /dev/null +++ b/lua/config/lsp/ansible.lua @@ -0,0 +1,57 @@ +local ok, mason_lspconfig, mason_tool_installer, lspconfig, conform, lint = pcall(function() + return require("mason-lspconfig"), + require("mason-tool-installer"), + require("lspconfig"), + require("conform"), + require("lint") +end) + +if not ok then + return +end + +mason_lspconfig.setup({ + ensure_installed = { "ansiblels" }, +}) + +lspconfig.ansiblels.setup({ + capabilities = require("config/lsp/lsp-capabilities"), + on_attach = require("config/lsp/lsp-attach"), +}) + +mason_tool_installer.setup({ + ensure_installed = { "ansible-lint" }, +}) + +conform.setup({ + formatters_by_ft = { + yml = { "ansible-lint" }, + }, + format_on_save = { + async = false, + timeout_ms = 500, + lsp_fallback = true, + }, +}) + +vim.keymap.set({ "n", "v" }, "lf", function() + conform.format({ + async = false, + timeout_ms = 500, + lsp_fallback = true, + }) +end, { desc = "Format" }) + +lint.linters_by_ft = { + yml = { "ansible-lint" }, +} + +vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { + callback = function() + lint.try_lint() + end, +}) + +vim.keymap.set("n", "ll", function() + lint.try_lint() +end, { desc = "Lint" }) diff --git a/lua/config/lsp/bash.lua b/lua/config/lsp/bash.lua index 286c86c..ad9a996 100644 --- a/lua/config/lsp/bash.lua +++ b/lua/config/lsp/bash.lua @@ -43,7 +43,7 @@ vim.keymap.set({ "n", "v" }, "lf", function() end, { desc = "Format" }) lint.linters_by_ft = { - lua = { "shellcheck" }, + sh = { "shellcheck" }, } vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { diff --git a/lua/config/lsp/php.lua b/lua/config/lsp/php.lua index ce7055f..4569578 100644 --- a/lua/config/lsp/php.lua +++ b/lua/config/lsp/php.lua @@ -49,7 +49,7 @@ vim.keymap.set({ "n", "v" }, "lf", function() end, { desc = "Format" }) lint.linters_by_ft = { - phpcs = { "phpcs" }, + php = { "phpcs" }, } vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {