71 lines
2.0 KiB
Lua
71 lines
2.0 KiB
Lua
return {
|
|
recommended = function()
|
|
return LazyVim.extras.wants({
|
|
ft = "yaml",
|
|
})
|
|
end,
|
|
|
|
-- yaml schema support
|
|
{
|
|
"b0o/SchemaStore.nvim",
|
|
lazy = true,
|
|
version = false, -- last release is way too old
|
|
},
|
|
|
|
-- correctly setup lspconfig
|
|
{
|
|
"neovim/nvim-lspconfig",
|
|
opts = {
|
|
-- make sure mason installs the server
|
|
servers = {
|
|
yamlls = {
|
|
-- Have to add this for yamlls to understand that we support line folding
|
|
capabilities = {
|
|
textDocument = {
|
|
foldingRange = {
|
|
dynamicRegistration = false,
|
|
lineFoldingOnly = true,
|
|
},
|
|
},
|
|
},
|
|
-- lazy-load schemastore when needed
|
|
on_new_config = function(new_config)
|
|
new_config.settings.yaml.schemas = vim.tbl_deep_extend(
|
|
"force",
|
|
new_config.settings.yaml.schemas or {},
|
|
require("schemastore").yaml.schemas()
|
|
)
|
|
end,
|
|
settings = {
|
|
redhat = { telemetry = { enabled = false } },
|
|
yaml = {
|
|
keyOrdering = false,
|
|
format = {
|
|
enable = true,
|
|
},
|
|
validate = true,
|
|
schemaStore = {
|
|
-- Must disable built-in schemaStore support to use
|
|
-- schemas from SchemaStore.nvim plugin
|
|
enable = false,
|
|
-- Avoid TypeError: Cannot read properties of undefined (reading 'length')
|
|
url = "",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
setup = {
|
|
yamlls = function()
|
|
-- Neovim < 0.10 does not have dynamic registration for formatting
|
|
if vim.fn.has("nvim-0.10") == 0 then
|
|
LazyVim.lsp.on_attach(function(client, _)
|
|
client.server_capabilities.documentFormattingProvider = true
|
|
end, "yamlls")
|
|
end
|
|
end,
|
|
},
|
|
},
|
|
},
|
|
}
|