{ description = "A minimal and productive Neovim configuration."; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixvim = { url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; }; flake-parts.url = "github:hercules-ci/flake-parts"; # 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; }; cellular-automaton = { url = "github:Eandrju/cellular-automaton.nvim"; flake = false; }; typst-preview = { url = "github:chomosuke/typst-preview.nvim"; flake = false; }; }; outputs = { nixvim, flake-parts, ... }@inputs: flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; perSystem = { pkgs, system, ... }: let nixvimLib = nixvim.lib.${system}; nixvim' = nixvim.legacyPackages.${system}; nixvimModule = { inherit pkgs; extraSpecialArgs = { inherit inputs; }; module = import ./config; }; nvim = nixvim'.makeNixvimWithModule nixvimModule; in { formatter = pkgs.nixfmt-rfc-style; checks = { default = nixvimLib.check.mkTestDerivationFromNixvimModule nixvimModule; }; packages = { default = nvim; vimg = pkgs.writeScriptBin "vimg" '' #!/bin/sh ${nvim}/bin/nvim +Neogit ''; }; }; }; }