A Neovim plugin for configuring Language Server Protocol (LSP) servers using JSON or YAML files.
nlsp-settings.nvim is a Neovim plugin that provides a file-based configuration system for Language Server Protocol (LSP) servers. It allows developers to define LSP server settings using JSON or YAML files, similar to the coc-settings.json approach in editors like VSCode, instead of writing all configuration in Lua. This plugin integrates with Neovim's built-in LSP client and nvim-lspconfig to offer autocompletion and validation of settings via JSON Schema.
Neovim users who configure LSP servers via nvim-lspconfig and prefer a declarative, file-based configuration approach over writing all settings in Lua. It is particularly useful for developers familiar with editor configurations like coc-settings.json or those managing project-specific LSP settings.
Developers choose nlsp-settings.nvim for its structured, editor-like configuration experience with JSON Schema validation and autocompletion, reducing errors in LSP setup. It uniquely bridges the gap between Neovim's Lua-based LSP configuration and the file-based paradigms common in other editors, while maintaining compatibility with existing lspconfig setups.
A plugin for setting Neovim LSP with JSON or YAML files
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables writing LSP server settings in JSON or YAML files instead of Lua, similar to coc-settings.json in other editors, as described in the README for a declarative approach.
Integrates with jsonls to provide autocompletion and validation for configuration values, demonstrated in the README's GIF with sumneko_lua completion, reducing errors.
Supports local settings files in .nlsp-settings directories for per-project configuration, enabled via commands like :LspSettings local, as outlined in the usage section.
Can be combined with traditional lspconfig Lua setups, with JSON file values taking precedence, offering flexibility without fully replacing existing configurations.
Requires installing jsonls and optionally mason for full functionality, adding complexity to the setup process compared to pure Lua configuration with lspconfig.
Not all LSP servers have JSON schemas available; the README links to a list, indicating that some servers might lack validation support, limiting usefulness.
Initial configuration involves multiple steps, including setting up jsonls and integrating with lspconfig, which might be overkill for simple LSP setups with few servers.