diff --git a/lua/lazyvim/plugins/extras/lang/yaml.lua b/lua/lazyvim/plugins/extras/lang/yaml.lua new file mode 100644 index 00000000..b097cdf6 --- /dev/null +++ b/lua/lazyvim/plugins/extras/lang/yaml.lua @@ -0,0 +1,48 @@ +return { + + -- add yaml specific modules to treesitter + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts.ensure_installed) == "table" then + vim.list_extend(opts.ensure_installed, { "yaml" }) + end + end, + }, + + -- correctly setup lspconfig + { + "neovim/nvim-lspconfig", + dependencies = { + "b0o/SchemaStore.nvim", + version = false, -- last release is way too old + }, + opts = { + -- make sure mason installs the server + servers = { + yamlls = { + -- lazy-load schemastore when needed + on_new_config = function(new_config) + new_config.settings.yaml.schemas = new_config.settings.yaml.schemas or {} + vim.list_extend(new_config.settings.yaml.schemas, require("schemastore").yaml.schemas()) + end, + settings = { + redhat = { telemetry = { enabled = false } }, + yaml = { + keyOrdering = false, + format = { + enable = true, + }, + validate = { enable = true }, + schemaStore = { + -- Must disable built-in schemaStore support to use + -- schemas from SchemaStore.nvim plugin + enable = false, + }, + }, + }, + }, + }, + }, + }, +}