diff --git a/lua/lazyvim/plugins/extras/lang/json.lua b/lua/lazyvim/plugins/extras/lang/json.lua new file mode 100644 index 00000000..c5fe3dfa --- /dev/null +++ b/lua/lazyvim/plugins/extras/lang/json.lua @@ -0,0 +1,36 @@ +return { + + -- add json to treesitter + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + vim.list_extend(opts.ensure_installed, { "json", "json5", "jsonc" }) + end, + }, + + -- correctly setup lspconfig + { + "neovim/nvim-lspconfig", + dependencies = { "b0o/schemastore.nvim" }, + opts = { + -- make sure mason installs the server + servers = { + jsonls = { + -- lazy-load schemastore when needed + on_new_config = function(new_config) + new_config.settings.json.schemas = new_config.settings.json.schemas or {} + vim.list_extend(new_config.settings.json.schemas, require("schemastore").json.schemas()) + end, + settings = { + json = { + format = { + enable = true, + }, + validate = { enable = true }, + }, + }, + }, + }, + }, + }, +}