# To use the overlay
> [!IMPORTANT]
> When using this overlay, you might encounter `error: hash mismatch in fixed-output derivation '/nix/store/...-tree-sitter-bundled-vendor-staging.drv'`.\
> The issue is that `neovim-nightly-overlay` uses and overrides the `treesitter` **from your own package set**. If this `treesitter` is different than the one we expect, you might get a hash mismatch.\
> To work around this, you can either:
>
> - Do not use this flake as an overlay, but simply get its default package output (`inputs.neovim-nightly.packages.${system}.default`)
> - Override `treesitter` with your own version: `pkgs.neovim.override ...`
## with Flakes
If you are using [flakes] to configure your system, you can either reference the
package provided by this flake directly, e.g. for nixos:
```nix
{ inputs, pkgs, ... }:
{
programs.neovim = {
enable = true;
package = inputs.neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default;
};
# or
environment.systemPackages = [
inputs.neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default
];
}
```
or you can apply the overlay to your package set, e.g for home-manager:
```nix
{
inputs = {
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
};
outputs = { self, ... }@inputs:
let
overlays = [
inputs.neovim-nightly-overlay.overlays.default
];
in
{
homeConfigurations = {
macbook-pro = inputs.home-manager.lib.homeManagerConfiguration {
modules = [
{
nixpkgs.overlays = overlays;
}
];
};
};
};
}
```
### Updating
The `neovim-nightly-overlay` flake itself is updated every day to use the latest `neovim` source code.
However, your own flake needs to be synced **manually**. Remember to regularly update your flake (e.g. by using `nix flake update`) to get a most recent neovim build.
### How to test a neovim pull-request ?
You can select an alternative branch of neovim via nix run
`github:nix-community/neovim-nightly-overlay' --override-input neovim-src github:neovim/neovim?ref=pull/XXXX/head` (replace XXXX with the PR number).
## without Flakes
Add the overlay to your home.nix (home-manager) or configuration.nix (nixos):
```nix
{
nixpkgs.overlays = [
(import (builtins.fetchTarball {
url = "https://github.com/nix-community/neovim-nightly-overlay/archive/master.tar.gz";
}))
];
}
```
Due to some nixpkgs breaking changes if you are using NixOS 24.05 use the overlay below
*also requires that you have the nixpkgs-unstable `nix-channel`*
```nix
{
nixpkgs.config = {
packageOverrides = pkgs: let
pkgs' = import {
inherit (pkgs) system;
overlays = [
(import (builtins.fetchTarball {
url = "https://github.com/nix-community/neovim-nightly-overlay/archive/master.tar.gz";
}))
];
};
in {
inherit (pkgs') neovim;
};
};
}
```
# Binary cache
See: https://app.cachix.org/cache/nix-community
[flakes]: https://wiki.nixos.org/wiki/Flakes