return { default_config = { cmd = { 'vscode-json-language-server', '--stdio' }, filetypes = { 'json', 'jsonc' }, init_options = { provideFormatter = true, }, root_dir = function(fname) return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, docs = { -- this language server config is in VSCode built-in package.json description = [[ 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 require'lspconfig'.jsonls.setup { capabilities = capabilities, } ``` ]], }, }