-- YAML LSP specific settings with a number of custom tags specifically for use with AWS CloudFormation templates return { cmd = function (dispatchers, _) return vim.lsp.rpc.start({'yaml-language-server', '--stdio'}, dispatchers) end, filetypes = { 'yaml', 'yaml.docker-compose', 'yaml.gitlab', 'yaml.helm-values' }, root_markers = { '.git' }, settings = { redhat = { telemetry = { enabled = false } }, yaml = { customTags = { "!fn", "!And", "!If", "!Not", "!Equals", "!Or", "!FindInMap sequence", "!Base64", "!Cidr", "!Ref", "!Ref Scalar", "!Sub", "!GetAtt", "!GetAZs", "!ImportValue", "!Select", "!Split", "!Join sequence" }, format = { enable = true, singleQuote = true }, hover = true, schemaStore = { enable = true }, validate = true, } }, on_init = function(client) -- From nvim-lspconfig's yamlls.lua --- https://github.com/neovim/nvim-lspconfig/pull/4016 --- Since formatting is disabled by default if you check `client:supports_method('textDocument/formatting')` --- during `LspAttach` it will return `false`. This hack sets the capability to `true` to facilitate --- autocmd's which check this capability client.server_capabilities.documentFormattingProvider = true end, }