Neovim's generated keyset types `fg`, `bg`, `sp`, `ctermfg`, `ctermbg`,
and `link` as `integer|string`, and `nvim_set_hl` accepts an integer for
each. Verified against the pinned 0.12.4:
nvim_set_hl(0, "X", { fg = 16711680, ctermfg = 1 })
Nixvim declared all six through `mkNullOrStr`, so those values failed to
evaluate even though the highlight submodule is freeform and would
otherwise have passed them through.
Widen them to `either int str`. An integer means a different thing per
attribute, so say which in each description: `fg`, `bg`, and `sp` take a
24-bit RGB value, `ctermfg` and `ctermbg` take a palette index, and
`link` takes a highlight group id.
`mkNullOrStr` has no remaining use in this file, so drop the import.
`mkNullOrStr` is `maybeRaw str`, so the string attributes of the
highlight submodule already take raw Lua. `5ae4714e` added that for
strings only, which left every boolean and `blend` on a plain type that
rejects it.
Wrap those in `maybeRaw` as well, so computing any highlight attribute
in Lua no longer needs a workaround for the ones that happen to be
booleans.
`combinePlugins` dropped the `runtimeDeps` of the combined plugins.
The neovim wrapper then lost those PATH entries when
`autowrapRuntimeDeps` was enabled.
Aggregate `runtimeDeps` from the combined plugins and pass them through the
plugin pack. nixpkgs reads the resulting `plugin.runtimeDeps` in
`plugin-submodule.nix`.
Modules with a false default did not expose the user option.
Users could not force standard setup generation.
Keep null as the built-in fallback.
Omit the option when Lua configuration is unavailable.
This commit improves Nixvim's native tree-sitter setup for the modern
nvim-treesitter main branch. The intent was to bring more customizations
that were lost after switching from master branch. In particular:
- `highlight.disable` option now accepts a raw function compatible with
disable parameter from master branch. Additionally it accepts a third
filetype parameter
- add `highlight.enableVimSyntax` option to enable :h syntax for chosen
filetypes. Syntax is sometimes needed for indent files, some vim
scripts, or to improve highlighting for compopund filetypes
- `indent` and `folding` now also have `disable` support
- all features are now enabled only when the parser and queries are
available for current filetype. This avoids setting 'indentexpr' and
'foldexpr' when they cannot work because of missing parser or queries
- adds commands to `b:undo_ftplugin` variable to undo options set. The
content of this variable is automatically executed by Nvim when
switching filetype (by ftplugin). This is needed so that options were
reset if the filetype is changed. Previously stale options were left.
Migrate flake outputs, config files, etc from buildbot-nix to nixbot.
This is not urgent, because nixbot falls back to buildbot-nix.toml when
nixbot.toml is missing.
> ERROR: [ClaudeCode] [config] [WARN] focus_after_send=true does not focus a Claude session running outside Neovim (terminal.provider="external"). Use a `User ClaudeCodeSendComplete` autocmd to focus it yourself.
Include the definition locations of offending vim-plugins in the
`extraPackages` & `extraPackagesAfter` assertion messages.
This makes it easier to track down the plugin declarations,
especially when values originate from multiple modules.
When passing a string to `disabledModules`, it is appended to
`modulesPath`. To avoid this, explicitly pass a `{key}` module.
Adds an assertion module to the platform-wrapper integration tests:
Failed assertions:
- Expected programs.nixvim._module.check to be true. Definitions:
- In `/nix/store/XXXX-source/flake/wrappers.nix': false
Co-authored-by: MrQubo <jakub.jakub.nowak@gmail.com>