-
Notifications
You must be signed in to change notification settings - Fork 4
enable proper JSON/YAML/TOML support #104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
📝 WalkthroughWalkthroughThis PR integrates SchemaStore support for JSON, YAML, and TOML language servers in Neovim. It adds three LSP client configurations that use SchemaStore for schema validation, introduces the SchemaStore plugin as a dependency, and includes refactoring of Nix utility functions and minor formatting adjustments. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds comprehensive LSP support for JSON, YAML, and TOML file formats by introducing three new language servers (jsonls, yamlls, taplo) with schema validation powered by SchemaStore.nvim.
Changes:
- Added LSP client configurations for JSON (jsonls), YAML (yamlls), and TOML (taplo) with SchemaStore integration
- Registered SchemaStore.nvim plugin as a mandatory dependency
- Added LSP binaries to PATH via nvim.nix runtime dependencies
- Applied trailing comma formatting fixes to surround.lua for consistency
- Updated AGENTS.md documentation with schema support information
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| plugins/nobbz/lua/nobbz/lsp/clients/yaml.lua | New LSP client for YAML with SchemaStore schema validation |
| plugins/nobbz/lua/nobbz/lsp/clients/toml.lua | New LSP client for TOML (taplo) with diagnostic and completion support |
| plugins/nobbz/lua/nobbz/lsp/clients/json.lua | New LSP client for JSON with SchemaStore schema validation |
| plugins/default.nix | Added SchemaStore plugin as mandatory dependency |
| nvim.nix | Added jsonls, yamlls, and taplo LSP binaries to PATH |
| npins/sources.json | Pinned SchemaStore.nvim plugin source |
| npins/default.nix | Auto-generated file reformatted by npins tooling |
| plugins/nobbz/lua/nobbz/plugins/surround.lua | Applied trailing comma formatting to table entries |
| AGENTS.md | Added documentation note about schema support for JSON/YAML/TOML |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
🤖 Fix all issues with AI agents
In `@nvim.nix`:
- Around line 13-15: The taplo entry in nvim.nix only provides the CLI and lacks
LSP support because nixpkgs builds omit the "lsp" cargo feature; update nvim.nix
to either replace the plain taplo with a custom derivation that enables the
"lsp" feature (using buildRustPackage override), point to an upstream taplo
release that ships LSP, or adjust the LSP client config to run "taplo lsp stdio"
(while keeping vscode-json-languageserver and yaml-language-server unchanged);
reference the taplo symbol in the file and modify its derivation or the LSP
command invocation to restore TOML schema/LSP functionality.
In `@plugins/nobbz/lua/nobbz/lsp/clients/json.lua`:
- Around line 1-13: The module currently returns the jsonls LSP config but
doesn't register it with the health system; add a call to
require("nobbz.health").register_lsp("jsonls") when this file is loaded (for
example immediately before the return or right after defining the config table)
so the LSP registers with health checks; ensure you reference the exact name
"jsonls" in the register_lsp call and keep the existing return value (no other
changes to the settings or helpers required).
In `@plugins/nobbz/lua/nobbz/lsp/clients/toml.lua`:
- Around line 1-17: The module is missing LSP health registration; add a call to
require("nobbz.health").register_lsp("taplo") (a side-effecting registration) in
this file so the Taplo client is registered with the health system—for example,
after the existing require("nobbz.lsp.helpers") call or just before the module's
return; ensure the string matches the client name ("taplo") and do not change
the returned table (name = "taplo", ft = "toml", etc.).
In `@plugins/nobbz/lua/nobbz/lsp/clients/yaml.lua`:
- Around line 1-15: The YAML LSP config doesn't register with health checks; add
a call to require("nobbz.health").register_lsp("yamlls") so the server appears
in the health system—place the registration before the module is returned (e.g.,
after the helpers require or just before the return) and keep the literal server
name "yamlls"; you can call it inline
(require("nobbz.health").register_lsp("yamlls")) to avoid adding new variables.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (9)
AGENTS.mdnpins/default.nixnpins/sources.jsonnvim.nixplugins/default.nixplugins/nobbz/lua/nobbz/lsp/clients/json.luaplugins/nobbz/lua/nobbz/lsp/clients/toml.luaplugins/nobbz/lua/nobbz/lsp/clients/yaml.luaplugins/nobbz/lua/nobbz/plugins/surround.lua
🧰 Additional context used
📓 Path-based instructions (7)
**/*.{nix,lua}
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Run
nix fmtbefore committing to format all Nix files withalejandraand all Lua files withemmy-lua-code-styleFormat all Nix files with
alejandraand all Lua files withemmy-lua-code-styleby runningnix fmtbefore every commit
Files:
plugins/nobbz/lua/nobbz/lsp/clients/yaml.luaplugins/nobbz/lua/nobbz/plugins/surround.luaplugins/nobbz/lua/nobbz/lsp/clients/json.luaplugins/nobbz/lua/nobbz/lsp/clients/toml.luaplugins/default.nixnvim.nixnpins/default.nix
**/*.lua
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
**/*.lua: Uselocalfor all variable declarations in Lua
Follow luarocks style guide with 2-space indentation, double quotes for strings, and trailing commas in tables in Lua code
Always use call parentheses when invoking functions in Lua
Respect.editorconfig(2 spaces indentation, double quotes) and.stylua.tomlsettings when formatting Lua code
**/*.lua: Indentation in Lua files must be 2 spaces
Use double quotes for strings in Lua
Use trailing commas in Lua tables
Always use parentheses when calling functions in Lua
Uselocalfor all variables in Lua - no global variables
Add EmmyLua annotations for all Lua functions
Usenobbz.lazyfor lazy loading when possible in Lua
Bothstyluaandemmy-lua-code-stylemust pass formatting checks on Lua files
Register LSPs withrequire("nobbz.health").register_lsp("lsp-name")in Lua configuration
Follow the luarocks style guide for Lua code with specified modifications
Keep imports organized and sorted in Lua configuration files
Files:
plugins/nobbz/lua/nobbz/lsp/clients/yaml.luaplugins/nobbz/lua/nobbz/plugins/surround.luaplugins/nobbz/lua/nobbz/lsp/clients/json.luaplugins/nobbz/lua/nobbz/lsp/clients/toml.lua
plugins/nobbz/lua/nobbz/**/*.lua
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
plugins/nobbz/lua/nobbz/**/*.lua: Use lazy loading vianobbz.lazywhen possible in Lua configuration
Create lazy loading specifications in Lua configuration for optional plugins added tooptionalPluginswithtruevalue
Files:
plugins/nobbz/lua/nobbz/lsp/clients/yaml.luaplugins/nobbz/lua/nobbz/plugins/surround.luaplugins/nobbz/lua/nobbz/lsp/clients/json.luaplugins/nobbz/lua/nobbz/lsp/clients/toml.lua
plugins/nobbz/lua/nobbz/lsp/**/*.lua
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Register custom LSP configurations with
require("nobbz.health").register_lsp("lsp-name")in Lua configuration
Files:
plugins/nobbz/lua/nobbz/lsp/clients/yaml.luaplugins/nobbz/lua/nobbz/lsp/clients/json.luaplugins/nobbz/lua/nobbz/lsp/clients/toml.lua
plugins/**/*.lua
⚙️ CodeRabbit configuration file
plugins/**/*.lua: Please ensure all of the following:
- Plugins are lazyloaded if possible through
nobbz.lazylocalhas to be used- coding follows the luarocks styleguide, but with 2 spaces indentation
Files:
plugins/nobbz/lua/nobbz/lsp/clients/yaml.luaplugins/nobbz/lua/nobbz/plugins/surround.luaplugins/nobbz/lua/nobbz/lsp/clients/json.luaplugins/nobbz/lua/nobbz/lsp/clients/toml.lua
plugins/default.nix
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
plugins/default.nix: Ensure plugin is listed in theoptionalPluginsdict inplugins/default.nixwithtruefor optional (lazy-loaded) plugins orfalsefor mandatory (start-on-boot) plugins
Sort plugins alphabetically in the first section ofoptionalPluginsinplugins/default.nix; do not add new plugins to the eager loading section without removing the TODO comment
plugins/default.nix: Inplugins/default.nix, keep plugins sorted alphabetically
Do not add new plugins to the first section ofoptionalPluginsset inplugins/default.nix(marked with TODO comment for eager loading)
InoptionalPluginsset, usefalsefor mandatory plugins (start) andtruefor optional plugins (opt)
Files:
plugins/default.nix
⚙️ CodeRabbit configuration file
plugins/default.nix: Please ensure all of the following:
- Plugins are sorted alphabetically
- there will be no further plugins added to the first section in the
optionalPluginsset
Files:
plugins/default.nix
**/*.nix
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Maintain a clear distinction between flake-parts modules and package definitions in Nix files
Maintain clear distinction between flake-parts modules and package definitions in Nix
Files:
plugins/default.nixnvim.nixnpins/default.nix
🧠 Learnings (22)
📓 Common learnings
Learnt from: NobbZ
Repo: NobbZ/nobbz-vim PR: 0
File: :0-0
Timestamp: 2025-04-12T09:24:45.451Z
Learning: NobbZ uses a homebrewn shallow abstraction over `lz.n` rather than using lazy.nvim directly. References to Lazy.nvim's specific features should be avoided in reviews of NobbZ's repository.
📚 Learning: 2026-01-07T22:24:07.920Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-07T22:24:07.920Z
Learning: Applies to plugins/nobbz/lua/nobbz/lsp/**/*.lua : Register custom LSP configurations with `require("nobbz.health").register_lsp("lsp-name")` in Lua configuration
Applied to files:
plugins/nobbz/lua/nobbz/lsp/clients/yaml.luaplugins/nobbz/lua/nobbz/plugins/surround.luaAGENTS.mdplugins/nobbz/lua/nobbz/lsp/clients/json.luaplugins/nobbz/lua/nobbz/lsp/clients/toml.lua
📚 Learning: 2026-01-07T22:24:07.920Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-07T22:24:07.920Z
Learning: Applies to plugins/nobbz/lua/nobbz/**/*.lua : Create lazy loading specifications in Lua configuration for optional plugins added to `optionalPlugins` with `true` value
Applied to files:
plugins/nobbz/lua/nobbz/lsp/clients/yaml.luaplugins/nobbz/lua/nobbz/plugins/surround.luaplugins/nobbz/lua/nobbz/lsp/clients/json.luaplugins/nobbz/lua/nobbz/lsp/clients/toml.luaplugins/default.nix
📚 Learning: 2026-01-12T22:33:19.979Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-12T22:33:19.979Z
Learning: Applies to **/*.lua : Register LSPs with `require("nobbz.health").register_lsp("lsp-name")` in Lua configuration
Applied to files:
plugins/nobbz/lua/nobbz/lsp/clients/yaml.luaAGENTS.mdplugins/nobbz/lua/nobbz/lsp/clients/json.luaplugins/nobbz/lua/nobbz/lsp/clients/toml.lua
📚 Learning: 2026-01-07T22:24:07.920Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-07T22:24:07.920Z
Learning: Applies to plugins/nobbz/lua/nobbz/**/*.lua : Use lazy loading via `nobbz.lazy` when possible in Lua configuration
Applied to files:
plugins/nobbz/lua/nobbz/lsp/clients/yaml.luaplugins/nobbz/lua/nobbz/plugins/surround.luaplugins/nobbz/lua/nobbz/lsp/clients/json.luaplugins/nobbz/lua/nobbz/lsp/clients/toml.lua
📚 Learning: 2026-01-12T22:33:19.979Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-12T22:33:19.979Z
Learning: Applies to **/*.lua : Keep imports organized and sorted in Lua configuration files
Applied to files:
plugins/nobbz/lua/nobbz/lsp/clients/yaml.luaplugins/nobbz/lua/nobbz/plugins/surround.luaplugins/nobbz/lua/nobbz/lsp/clients/toml.lua
📚 Learning: 2025-01-31T23:06:17.133Z
Learnt from: NobbZ
Repo: NobbZ/nobbz-vim PR: 19
File: plugins/nobbz/lua/nobbz/lsp/beancount.lua:3-6
Timestamp: 2025-01-31T23:06:17.133Z
Learning: In the nobbz-vim project, `LSP_CAPAS` is defined as a global variable in `plugins/nobbz/lua/nobbz/init.lua` and should be used for LSP capabilities across the codebase.
Applied to files:
plugins/nobbz/lua/nobbz/lsp/clients/yaml.luaAGENTS.mdplugins/nobbz/lua/nobbz/lsp/clients/json.luaplugins/nobbz/lua/nobbz/lsp/clients/toml.lua
📚 Learning: 2026-01-12T22:33:19.979Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-12T22:33:19.979Z
Learning: Applies to **/*.lua : Use `nobbz.lazy` for lazy loading when possible in Lua
Applied to files:
plugins/nobbz/lua/nobbz/lsp/clients/yaml.lua
📚 Learning: 2026-01-12T22:33:19.979Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-12T22:33:19.979Z
Learning: Applies to **/*.lua : Use trailing commas in Lua tables
Applied to files:
plugins/nobbz/lua/nobbz/plugins/surround.lua
📚 Learning: 2026-01-07T22:24:07.920Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-07T22:24:07.920Z
Learning: Applies to **/*.lua : Follow luarocks style guide with 2-space indentation, double quotes for strings, and trailing commas in tables in Lua code
Applied to files:
plugins/nobbz/lua/nobbz/plugins/surround.lua
📚 Learning: 2026-01-12T22:33:19.979Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-12T22:33:19.979Z
Learning: Applies to **/*.lua : Follow the luarocks style guide for Lua code with specified modifications
Applied to files:
plugins/nobbz/lua/nobbz/plugins/surround.lua
📚 Learning: 2026-01-12T22:33:19.979Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-12T22:33:19.979Z
Learning: Applies to **/*.lua : Use double quotes for strings in Lua
Applied to files:
plugins/nobbz/lua/nobbz/plugins/surround.lua
📚 Learning: 2026-01-07T22:24:07.920Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-07T22:24:07.920Z
Learning: Applies to **/*.{nix,lua} : Run `nix fmt` before committing to format all Nix files with `alejandra` and all Lua files with `emmy-lua-code-style`
Applied to files:
AGENTS.md
📚 Learning: 2026-01-12T22:33:19.979Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-12T22:33:19.979Z
Learning: Applies to **/*.lua : Both `stylua` and `emmy-lua-code-style` must pass formatting checks on Lua files
Applied to files:
AGENTS.mdnvim.nix
📚 Learning: 2026-01-07T22:24:07.920Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-07T22:24:07.920Z
Learning: Test plugin loading with `:checkhealth nobbz` in Neovim after configuration changes
Applied to files:
AGENTS.md
📚 Learning: 2026-01-12T22:33:19.979Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-12T22:33:19.979Z
Learning: Applies to plugins/default.nix : In `optionalPlugins` set, use `false` for mandatory plugins (start) and `true` for optional plugins (opt)
Applied to files:
plugins/default.nix
📚 Learning: 2026-01-07T22:24:07.920Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-07T22:24:07.920Z
Learning: Applies to plugins/default.nix : Ensure plugin is listed in the `optionalPlugins` dict in `plugins/default.nix` with `true` for optional (lazy-loaded) plugins or `false` for mandatory (start-on-boot) plugins
Applied to files:
plugins/default.nix
📚 Learning: 2026-01-12T22:33:19.979Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-12T22:33:19.979Z
Learning: Applies to plugins/default.nix : Do not add new plugins to the first section of `optionalPlugins` set in `plugins/default.nix` (marked with TODO comment for eager loading)
Applied to files:
plugins/default.nix
📚 Learning: 2026-01-07T22:24:07.920Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-07T22:24:07.920Z
Learning: Applies to plugins/default.nix : Sort plugins alphabetically in the first section of `optionalPlugins` in `plugins/default.nix`; do not add new plugins to the eager loading section without removing the TODO comment
Applied to files:
plugins/default.nix
📚 Learning: 2026-01-12T22:33:19.979Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-12T22:33:19.979Z
Learning: Applies to plugins/default.nix : In `plugins/default.nix`, keep plugins sorted alphabetically
Applied to files:
plugins/default.nix
📚 Learning: 2026-01-12T22:33:19.979Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-12T22:33:19.979Z
Learning: Applies to **/*.nix : Maintain clear distinction between flake-parts modules and package definitions in Nix
Applied to files:
npins/default.nix
📚 Learning: 2026-01-07T22:24:07.920Z
Learnt from: CR
Repo: NobbZ/nobbz-vim PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-07T22:24:07.920Z
Learning: Applies to **/*.nix : Maintain a clear distinction between flake-parts modules and package definitions in Nix files
Applied to files:
npins/default.nix
🔇 Additional comments (5)
plugins/default.nix (1)
35-35: LGTM!The
SchemaStoreplugin is correctly added:
- Alphabetically sorted between
rainbowandtelescope- Set to
false(mandatory/start) which aligns with its use as a dependency for LSP schema loading- Not added to the first section (eager loading TODO section)
As per coding guidelines, this follows the required plugin organization.
npins/sources.json (1)
42-54: LGTM!The
nvim-SchemaStorepin is correctly added with proper structure matching existing entries. Thenvim-prefix convention is followed, enabling automatic plugin building via themakePluginFromPinpipeline inplugins/default.nix.plugins/nobbz/lua/nobbz/plugins/surround.lua (1)
4-4: LGTM!Trailing commas added to table entries, aligning with the coding guidelines requirement for trailing commas in Lua tables.
Also applies to: 9-9, 14-14, 19-19
AGENTS.md (1)
161-161: LGTM!Good addition documenting the SchemaStore integration for JSON/YAML/TOML LSPs. This helps users understand the schema validation features and how to enable proper completions/diagnostics via
$schemakeys.npins/default.nix (1)
10-10: Auto-generated file with formatting changes only.This file is generated by
npinsand will be overwritten regularly. The changes appear to be formatting adjustments (likely from runningnix fmtwithalejandra), which aligns with the coding guidelines. No manual modifications needed.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
| local helpers = require("nobbz.lsp.helpers") | ||
|
|
||
| return { | ||
| name = "taplo", | ||
| ft = "toml", | ||
| on_attach = { helpers.default, }, | ||
| settings = { | ||
| taplo = { | ||
| diagnostics = { enabled = true, }, | ||
| completion = { enabled = true, }, | ||
| schema = { | ||
| enabled = true, | ||
| associations = {}, | ||
| }, | ||
| }, | ||
| }, | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing LSP health registration.
Per the coding guidelines, LSP configurations in this path should register with the health check system using require("nobbz.health").register_lsp("taplo").
Proposed fix
local helpers = require("nobbz.lsp.helpers")
+require("nobbz.health").register_lsp("taplo")
+
return {
name = "taplo",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| local helpers = require("nobbz.lsp.helpers") | |
| return { | |
| name = "taplo", | |
| ft = "toml", | |
| on_attach = { helpers.default, }, | |
| settings = { | |
| taplo = { | |
| diagnostics = { enabled = true, }, | |
| completion = { enabled = true, }, | |
| schema = { | |
| enabled = true, | |
| associations = {}, | |
| }, | |
| }, | |
| }, | |
| } | |
| local helpers = require("nobbz.lsp.helpers") | |
| require("nobbz.health").register_lsp("taplo") | |
| return { | |
| name = "taplo", | |
| ft = "toml", | |
| on_attach = { helpers.default, }, | |
| settings = { | |
| taplo = { | |
| diagnostics = { enabled = true, }, | |
| completion = { enabled = true, }, | |
| schema = { | |
| enabled = true, | |
| associations = {}, | |
| }, | |
| }, | |
| }, | |
| } |
🤖 Prompt for AI Agents
In `@plugins/nobbz/lua/nobbz/lsp/clients/toml.lua` around lines 1 - 17, The module
is missing LSP health registration; add a call to
require("nobbz.health").register_lsp("taplo") (a side-effecting registration) in
this file so the Taplo client is registered with the health system—for example,
after the existing require("nobbz.lsp.helpers") call or just before the module's
return; ensure the string matches the client name ("taplo") and do not change
the returned table (name = "taplo", ft = "toml", etc.).
| local helpers = require("nobbz.lsp.helpers") | ||
|
|
||
| return { | ||
| name = "yamlls", | ||
| ft = "yaml", | ||
| on_attach = { helpers.default, }, | ||
| settings = { | ||
| yaml = { | ||
| schemas = require("schemastore").yaml.schemas(), | ||
| validate = true, | ||
| hover = true, | ||
| completion = true, | ||
| }, | ||
| }, | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing LSP health registration.
Per the coding guidelines, LSP configurations in this path should register with the health check system using require("nobbz.health").register_lsp("yamlls").
Proposed fix
local helpers = require("nobbz.lsp.helpers")
+require("nobbz.health").register_lsp("yamlls")
+
return {
name = "yamlls",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| local helpers = require("nobbz.lsp.helpers") | |
| return { | |
| name = "yamlls", | |
| ft = "yaml", | |
| on_attach = { helpers.default, }, | |
| settings = { | |
| yaml = { | |
| schemas = require("schemastore").yaml.schemas(), | |
| validate = true, | |
| hover = true, | |
| completion = true, | |
| }, | |
| }, | |
| } | |
| local helpers = require("nobbz.lsp.helpers") | |
| require("nobbz.health").register_lsp("yamlls") | |
| return { | |
| name = "yamlls", | |
| ft = "yaml", | |
| on_attach = { helpers.default, }, | |
| settings = { | |
| yaml = { | |
| schemas = require("schemastore").yaml.schemas(), | |
| validate = true, | |
| hover = true, | |
| completion = true, | |
| }, | |
| }, | |
| } |
🤖 Prompt for AI Agents
In `@plugins/nobbz/lua/nobbz/lsp/clients/yaml.lua` around lines 1 - 15, The YAML
LSP config doesn't register with health checks; add a call to
require("nobbz.health").register_lsp("yamlls") so the server appears in the
health system—place the registration before the module is returned (e.g., after
the helpers require or just before the return) and keep the literal server name
"yamlls"; you can call it inline
(require("nobbz.health").register_lsp("yamlls")) to avoid adding new variables.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.
| diagnostics = { enabled = true, }, | ||
| completion = { enabled = true, }, | ||
| schema = { | ||
| enabled = true, |
Copilot
AI
Jan 15, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The empty associations = {} table suggests manual schema associations should be configured. Consider adding a comment explaining that Taplo will use auto-detection or that users should configure this for project-specific schemas, or integrate with SchemaStore similar to the JSON/YAML configs if available.
| enabled = true, | |
| enabled = true, | |
| -- Use Taplo's built-in schema auto-detection by default; add project-specific | |
| -- schema associations here if needed. |
| 3. **Lua formatting fails:** Run `nix develop` first, check `.editorconfig` compliance | ||
| 4. **Plugin not loading:** Check `optionalPlugins` set - `false` = mandatory, `true` = optional | ||
| 5. **LSP not working:** LSP binaries added to PATH in `nvim.nix`, register with health system | ||
| 6. **Schema support for JSON/YAML/TOML:** LSPs for jsonls, yamlls, taplo are configured with SchemaStore for schema validation via `$schema` keys. Ensure files have proper schemas for completions and diagnostics. |
Copilot
AI
Jan 15, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The statement 'LSPs for jsonls, yamlls, taplo are configured with SchemaStore' is inaccurate for taplo. Only jsonls and yamlls use SchemaStore integration. Taplo has schema support enabled but uses its own schema resolution mechanism via the associations field.
| 6. **Schema support for JSON/YAML/TOML:** LSPs for jsonls, yamlls, taplo are configured with SchemaStore for schema validation via `$schema` keys. Ensure files have proper schemas for completions and diagnostics. | |
| 6. **Schema support for JSON/YAML/TOML:** `jsonls` and `yamlls` use SchemaStore for schema validation via `$schema` keys, while `taplo` uses its own schema resolution via `associations`. Ensure files have proper schemas configured for completions and diagnostics. |
Summary by CodeRabbit
New Features
Documentation
Refactor
✏️ Tip: You can customize this high-level summary in your review settings.