`inputs.systems` is imported directly to evaluate a list of systems;
it has no flake inputs and we never evaluate its flake outputs, so we
may as well declare `flake=false`.
flake/dev/flake.lock updates:
• Updated input 'nixvim':
'path:../..'
→ 'path:../..'
Nixbot recently added a `build_branches` config option,¹ which allows
specifying additional branches to be built on push. This replaces the
old behaviour where all branches were built on push.
The default branch and merge-queue refs are always built on push and
Pull Requests are considered their own non-push event.
¹: https://github.com/Mic92/nixbot/commit/87c9a409c2e8f91ebcb5069e177f3a045ddfbc1e
`texlive.combined.scheme-medium` is marked for removal in 27.05, but
top-level packages like `texliveMedium` exist.
texlive.combined schemes are deprecated and will be removed from Nixpkgs 27.05.
Please switch to texliveSmall or another top level scheme.
Replace the generated bash+jq rendering pipeline with a Python
implementation.
This avoids repeatedly parsing large JSON blobs during page rendering
and significantly reduces documentation build time.
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.
This _should_ be the default, but actions/checkout is still complaining
about checking out untrusted PR code.
Technically, this workflow only runs on `merged` PRs, so the PR code _is_
trusted anyway. But currently there's no need to use the PR's code.
Represent page content as a list of typed sections, rather than a fixed
set of page attributes.
This allows pages to be composed from multiple content sources while
simplifying the rendering logic and prepares the new docs system for
additional section types such as option documentation.
Instead of recursively merging a nested tree, construct a flat map of
"option-path" → {info}.
This should be more efficient to eval, and simpler to introspect.
`autostart` was a legacy nvim-lspconfig option controlling whether a
server was automatically started for matching buffers.
Neovim's `vim.lsp.config` API does not have an `autostart` field, but
the `vim.lsp.enable()` function is effectively equivalent.
Alias legacy `plugins.lsp.servers.<name>.autostart` definitions to
`lsp.servers.<name>.activate`, which controls `vim.lsp.enable()`.
> 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.
Delay the `definitionsWithLocations` pipeline until evaluating the
assertion's `message`. The `assertion` condition itself can be a cheaper
`not any isVimPluginPackage`.
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>
`programs.nixvim` and `programs.neovim` are incompatible; both install a
`neovim` package onto the PATH in an arbitrary order.
Home Manager also installs config into `.config/nvim`, which conflicts
with `wrapRc = false` used by default in our Home Manager module.
It may be cheaper to evaluate `(version-info.toml).nixpkgs_rev` instead
of `(nixpkgs.nix).rev` in some scenarios.
I've seen some reports of `builtins.fetchTree` _eagerly_ fetching the
FOD even without forcing `outPath`.
When building with --impure, accept the following environment variables
for docs inputs:
- NIXVIM_DOCS_BASE_HREF → baseHref
- NIXVIM_DOCS_AVAILABLE_VERSIONS → availableVersions
This allows simplifying the `website` CI workflow.
Dependabot can find GHA workflows and actions in standard locations:
- /.github/workflows/*
- /action.yml
But non-standard locations like `.github/actions/**` must be specified
explicitly.
Avoid edge-cases where ignored files can indirectly break formatting.
Some of these exclusions are also outdated, as for example spellcheck
applies to markdown files.
Running this CI unconditionally also allows us to specify it as a
"required status check".
Extracting `specialArgs.lib.nixvim` from the final `programs.nixvim`
configuration is neat, but recursive. In non-lazy scenarios, it can end
up infinitely recursive.
We could extract `specialArgs.lib.nixvim` from another nixvim
configuration, such as one of the earlier `extendModules` evaluations,
however it is better to avoid evaluating multiple configurations
unnecessarily.
Instead, revert back to getting `lib.nixvim` from the same configuration
we get `extendModules` from.
Separate `overlay.nix` and `overlay.internal.nix`, to encapsulate the
`flake` argument. This allows non-flake users to import `./overlay.nix`
without providing a dummy `flake = null` attr.
The read-only `config.flake` option is only defined by `evalNixvim` when
`lib` is extended using the overlay in Nixvim's flake outputs.
Currently, `nixpkgs.source` can be affected by flake input following.
Nixvim is sensitive to the pinned Nixpkgs revision and users often
follow inputs without thinking too much about it, so warn when this is
detected.