neovim-confs/lua/rafi/plugins/extras/lang/yaml.lua

64 lines
1.6 KiB
Lua

-- This is part of LazyVim's code, with my modifications.
-- See: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/plugins/extras/lang/yaml.lua
return {
{
'nvim-treesitter/nvim-treesitter',
opts = function(_, opts)
if type(opts.ensure_installed) == 'table' then
vim.list_extend(opts.ensure_installed, { 'yaml' })
end
end,
},
{
'neovim/nvim-lspconfig',
dependencies = { 'b0o/SchemaStore.nvim', version = false },
opts = {
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_extend(
'force',
require('schemastore').yaml.schemas(),
new_config.settings.yaml.schemas or {}
)
end,
settings = {
redhat = { telemetry = { enabled = false } },
yaml = {
completion = true,
hover = true,
validate = true,
format = {
enable = 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 = '',
},
schemas = {
kubernetes = { 'k8s**.yaml', 'kube*/*.yaml' },
},
},
},
},
},
},
},
}