Nvim-treesitter's parsers from nixpkgs don't include grammars anymore.
Originally it was added to standalonePlugins as workaround.
If the user has some other plugin containing treesitter queries, this
change can cause a build failure due to collisions. But since it is
easier to add the plugin to standalonePlugins compared to removing it, I
think this should be the default.
Update the extraConfig function to access settings through opts parameter
instead of direct import. Also remove the unused options import for cleaner code.
Add a new `keymaps` option to the lz-n plugin that allows users to define
keymaps that use lz.n's keymap(<plugin>).set functionality. This enables
users to create keymaps that lazy-load plugins when specific keys are pressed,
using the familiar vim.keymap.set() API style.
The implementation:
- Adds a new `keymaps` option using mkMapOptionSubmodule with a custom plugin property
- Exposes a simple and consistent interface for configuring lazy-loaded keymaps
- Processes these keymaps to generate corresponding Lua code with require('lz.n').keymap().set()
- Cleanly separates plugin specs from keymap definitions while preserving their relationship
Previously I said we alias the definitions instead of the value to allow
`mkOrder` to work correctly. That is incorrect, as order-priorities are
already sorted in `<opt>.definitions`.
The actual reason to use the definitions instead of the final value is
to avoid inf-recursion. The "from" option's `apply` function would read
the "to" option's value, which is defined based on the "from" option's
value, which is set by the "from" option's apply function...
For a one-way binding, `mkDerivedConfig` is best. For a two-way binding,
`mkAliasAndWrapDefsWithPriority` is necessary.
This simplifies the impl by doing global on-attach logic in a
`LspAttach` autocmd instead of adding lua lines to each server's
individual `on_attach` callback.
This is effectively a `mkAliasOptionModule` alias, other than the alias
only being applied when `plugins.lsp.enable`.
Adapt warnings, default settings, and tests to the new lsp module. Also
change the previous warning, which I think should target the clangd
server directly, and just not `plugins.lsp`, since the clangd server is
necessary for clangd-extensions to function.
Modify warnings, tests, and default settings to work with the new lsp
module.
Update plugins/by-name/schemastore/default.nix
Co-authored-by: Matt Sturgeon <matt@sturgeon.me.uk>
Update plugins/by-name/schemastore/default.nix
Co-authored-by: Matt Sturgeon <matt@sturgeon.me.uk>