---@brief --- --- https://github.com/hrsh7th/vscode-langservers-extracted --- --- vscode-json-language-server, a language server for JSON and JSON schema --- --- `vscode-json-language-server` can be installed via `npm`: --- ```sh --- npm i -g vscode-langservers-extracted --- ``` --- --- `vscode-json-language-server` only provides completions when snippet support is enabled. If you use Neovim older than v0.10 you need to enable completion, install a snippet plugin and add the following override to your language client capabilities during setup. --- --- ```lua --- --Enable (broadcasting) snippet capability for completion --- local capabilities = vim.lsp.protocol.make_client_capabilities() --- capabilities.textDocument.completion.completionItem.snippetSupport = true --- --- vim.lsp.config('jsonls', { --- capabilities = capabilities, --- }) --- ``` ---@type vim.lsp.Config return { cmd = function(dispatchers, config) local cmd = 'vscode-json-language-server' if (config or {}).root_dir then local local_cmd = vim.fs.joinpath(config.root_dir, 'node_modules/.bin', cmd) if vim.fn.executable(local_cmd) == 1 then cmd = local_cmd end end return vim.lsp.rpc.start({ cmd, '--stdio' }, dispatchers) end, filetypes = { 'json', 'jsonc' }, init_options = { provideFormatter = true, }, root_markers = { '.git' }, }