Codesettings.nvim
⚙️ Load project-local settings (like .vscode/settings.json) into Neovim 0.11+ native LSP settings easily.
Install / Use
/learn @mrjones2014/Codesettings.nvimQuality Score
Category
Development & EngineeringSupported Platforms
README
⚙️ codesettings.nvim
Easily read your project's local settings files and merge them into your Neovim 0.11+ native LSP configuration.
This plugin makes it easy to reuse settings your team already committed to version control for VS Code by
providing an API to merge the relevant settings from VS Code's settings schema into the LSP settings table you pass
to vim.lsp.config() (or any way you configure LSP).
Requirements
- Neovim 0.11+ (uses the new
vim.lsp.config()API) - A JSON(C) file in your project root with LSP settings (optional; if missing, your config is returned unchanged).
Paths are configurable, but by default, the plugin looks for any of:
.vscode/settings.jsoncodesettings.jsonlspsettings.json
Supported LSP Servers
<details> <summary>Click to expand list</summary> <!-- GENERATED:SERVERS:START -->- [x] als
- [x] angularls
- [x] astro
- [x] awkls
- [x] basedpyright
- [x] bashls
- [x] clangd
- [x] cssls (supports i18n)
- [x] dartls
- [x] denols
- [x] elixirls
- [x] elmls
- [x] emmylua_ls
- [x] eslint
- [x] flow
- [x] fsautocomplete
- [x] gopls
- [x] grammarly
- [x] haxe_language_server
- [x] hhvm
- [x] hie
- [x] hls
- [x] html (supports i18n)
- [x] intelephense
- [x] java_language_server
- [x] jdtls
- [x] jsonls (supports i18n)
- [x] julials
- [x] kotlin_language_server
- [x] ltex (supports i18n)
- [x] lua_ls (supports i18n)
- [x] luau_lsp
- [x] nickel_ls
- [x] nil_ls
- [x] nixd
- [x] omnisharp (supports i18n)
- [x] perlls
- [x] perlnavigator
- [x] perlpls
- [x] powershell_es
- [x] psalm
- [x] puppet
- [x] purescriptls
- [x] pylsp
- [x] pyright
- [x] r_language_server
- [x] rescriptls
- [x] rls
- [x] rome
- [x] ruff
- [x] rust_analyzer
- [x] solargraph
- [x] solidity_ls
- [x] sonarlint
- [x] sorbet
- [x] sourcekit
- [x] spectral
- [x] stylelint_lsp
- [x] svelte
- [x] svlangserver
- [x] tailwindcss
- [x] terraformls
- [x] tinymist (supports i18n)
- [x] ts_ls (supports i18n)
- [x] typst_lsp
- [x] volar (supports i18n)
- [x] vtsls
- [x] vuels
- [x] wgls_analyzer
- [x] yamlls
- [x] zeta_note
- [x] zls
Installation
You do not need to call .setup() unless you want to use non-default options. The defaults are shown below.
You do not need to lazy load codesettings.nvim since the plugin already lazy loads all of its consituent parts
via the plugin/* and ftplugin/* mechanisms. It should have a sub-5ms impact on your startup time.
- lazy.nvim (recommended)
return {
'mrjones2014/codesettings.nvim',
-- You don't need to lazy load this plugin since it already
-- lazy loads its constituent parts via `plugin/*` and `ftplugin/*` files
lazy = false,
-- these are the default settings just set `opts = {}` to use defaults
opts = {
--- Look for these config files
config_file_paths = { '.vscode/settings.json', 'codesettings.json', 'lspsettings.json' },
--- Set filetype to jsonc when opening a file specified by `config_file_paths`,
--- make sure you have the json tree-sitter parser installed for highlighting
jsonc_filetype = true,
--- Integrate with jsonls to provide LSP completion for LSP settings based on schemas
jsonls_integration = true,
--- Enable live reloading of settings when config files change
--- via the `workspace/didChangeConfiguration` notification; after notifying,
--- an autocmd `User CodesettingsFilesChanged` will be emitted. You
--- can use this autocmd to handle edge cases like restarting servers
--- that don't respond to `workspace/didChangeConfiguration` by
--- restarting it.
live_reload = false,
--- List of loader extensions to use when loading settings; `string` values will be `require`d
loader_extensions = { 'codesettings.extensions.vscode' },
--- Set up library paths for `lua_ls` automatically to pick up the generated type
--- annotations provided by codesettings.nvim; to enable for only your nvim config,
--- you can also do something like:
--- lua_ls_integration = function()
--- return vim.uv.cwd() == ('%s/.config/nvim'):format(vim.env.HOME)
--- end,
--- This integration
Related Skills
node-connect
335.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
335.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.7kCommit, push, and open a PR
