`lib.pipe` strictly evaluates intermediate steps using `foldl'`. As a
result, piping `(opts: opts.package.default or null)` →
`(package: (tryEval package).value)` is ineffective because
`opts.package.default` is evaluated before `tryEval` can catch exceptions.
Instead, inline `opts.package.default` directly into the `tryEval`
expression, ensuring missing package errors caught correctly.
Resolves errors when building NixOS or nix-darwin docs that include
Nixvim options.
Adds a regression test.
Adding a module in the following places will import the module into that
specific server's submodule.
This allows creating server-specific options.
Added a test case to ensure all custom modules correspond to an actual
server option to avoid accidental dead code.
We only use `mode`, `key`, `action`, and `options`; so explicitly
inherit those.
This means we don't serialise attrs that aren't needed at runtime,
such as `lspBufAction`.
`config` is a loaded term within modules and options.
`settings` is the name usually used for freeform config in nixvim and
most other module configurations.