neovim-flake/flake.nix

84 lines
1.9 KiB
Nix
Raw Normal View History

{
2024-09-17 00:44:32 -07:00
description = "A minimal and productive Neovim configuration.";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
2024-09-17 00:45:01 -07:00
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-parts.url = "github:hercules-ci/flake-parts";
2024-09-17 00:44:32 -07:00
# Neovim plugins
render-markdown = {
url = "github:MeanderingProgrammer/render-markdown.nvim";
flake = false;
};
satellite = {
url = "github:lewis6991/satellite.nvim";
flake = false;
};
haskell-tools = {
url = "github:mrcjkb/haskell-tools.nvim";
flake = false;
};
lsp-progress = {
url = "github:linrongbin16/lsp-progress.nvim";
flake = false;
};
2024-09-18 00:32:13 -07:00
cellular-automaton = {
url = "github:Eandrju/cellular-automaton.nvim";
flake = false;
};
};
2024-09-02 18:28:53 -07:00
outputs =
{
nixvim,
flake-parts,
...
}@inputs:
flake-parts.lib.mkFlake { inherit inputs; } {
systems = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
2024-09-02 18:28:53 -07:00
perSystem =
{
pkgs,
system,
...
}:
let
nixvimLib = nixvim.lib.${system};
nixvim' = nixvim.legacyPackages.${system};
nixvimModule = {
inherit pkgs;
extraSpecialArgs = {
inherit inputs;
};
2024-09-02 18:28:53 -07:00
module = import ./config;
};
nvim = nixvim'.makeNixvimWithModule nixvimModule;
in
{
2024-09-02 18:28:53 -07:00
formatter = pkgs.nixfmt-rfc-style;
checks = {
default = nixvimLib.check.mkTestDerivationFromNixvimModule nixvimModule;
};
2024-09-02 18:28:53 -07:00
packages = {
default = nvim;
vimg = pkgs.writeScriptBin "vimg" ''
#!/bin/sh
${nvim}/bin/nvim +Neogit
'';
2024-09-02 18:28:53 -07:00
};
};
};
}