Users can specify which systems to use by having our `systems` input
follow a different file or flake:
```nix
{
inputs = {
# Here we list systems in a local file
inputs.systems.url = "path:./systems.nix";
inputs.systems.flake = false;
inputs.nixvim.url = "github:nix-community/nixvim";
# Here we override the list of systems with only our own
inputs.nixvim.inputs.systems.follows = "systems";
# ...
};
outputs = inputs: {
# ...
};
}
```
Alternatively, instead of users listing systems in a local file, they
can use an external flake, e.g.:
- github:nix-systems/default
- Exposes aarch64 and x86_64 for linux and darwin
- github:nix-systems/default-linux
- Exposes aarch64 and x86_64 for linux
- github:nix-systems/default-darwin
- Exposes aarch64 and x86_64 for darwin
- github:nix-systems/aarch64-darwin
- github:nix-systems/aarch64-linux
- github:nix-systems/x86_64-darwin
- github:nix-systems/x86_64-linux
See https://github.com/nix-systems/nix-systems
This removes the need for end-users to manually set
`nixvim.inputs.devshell.follows = ""` (etc)
We offload evaluation of some of our flake modules into a `dev`
partition submodule.
- When its not needed, this submodule is not evaluated.
- When it is needed, it fetches extra inputs from `flake/dev/flake.nix`
as part of evaluating the submodule.
See https://flake.parts/options/flake-parts-partitions.html
Unfortunately this will print a confirmation when first using the flake:
```
do you want to allow configuration setting 'allow-import-from-derivation' to be set to 'false' (y/N)?
```
This is no different to the cachix configs though, so probably no big
deal.
treefmt isn't actually using flake-root to find the flake's root; it
does it itself.
All we were doing was passing flake-root's default `projectRootFile` to
treefmt, which is `"flake.nix"`;
* docs: mdbook init
* Separate sub-options into their section
* docs: enable fold
* docs: merge core options into a single section
* doc generation: fix submodules index pages
* docs: add contributing section
* docs: rename 'core' group to 'Neovim Options'
docs: removed the index pages of empty sections
docs: remove obsolete 'mergeFunctionResults' function
* docs: use nix syntax highlighting
* docs: point to the new repo url
* docs: use recursive generation
docs: split submodules into subsections
* docs: fix contributing separator
docs: fix missing submodules docs
* Added simple flake template
* Added readme to template
* Updated readme to show how to use the template
* Formatting
* removed unused file from template
* Fixed template url and pkgs
* Formatting
The tests can be executed using `nix flake check`, they check that
modules can be built, and they execute in neovim without any errors.
This commit only implements tests for tokyonight-nvim upstream defaults