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 = { yaml = { "ansible-lint" }, }, format_on_save = { async = false, timeout_ms = 500, lsp_format = "fallback", }, }) vim.keymap.set({ "n", "v" }, "lf", function() conform.format({ async = false, timeout_ms = 500, lsp_format = "fallback", }) 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" })