This repository has been archived on 2024-05-02. You can view files and clone it, but cannot push or open issues or pull requests.
neovim-flake/flake.nix

82 lines
2.1 KiB
Nix

{
description = "A very basic flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
neovim-nightly-overlay = {
url = "github:nix-community/neovim-nightly-overlay";
};
# Neovim Plugins
gopher-nvim = {
url = "github:olexsmir/gopher.nvim";
flake = false;
};
};
outputs = inputs@{ self, nixpkgs, flake-utils, home-manager, ... }:
let
inherit (self) outputs;
nixpkgsConfig = {
config.allowUnfree = false;
};
neovim-overlay = import ./nix/overlay.nix { inherit inputs; };
overlays = [
neovim-overlay
inputs.neovim-nightly-overlay.overlays.default
];
localLib = {
mkPkgs = system:
import nixpkgs {
inherit system overlays;
inherit (nixpkgsConfig) config;
};
};
in
{
overlays.default = neovim-overlay;
homeModules = rec {
default = neovim-ide;
neovim-ide = { pkgs, config, lib, ... }:
let
neovim-ide = outputs.packages.${pkgs.system}.nvim-ide;
in
{
options = {
programs.neovim-ide.enable = lib.mkEnableOption "neovim-ide";
};
config = lib.mkIf config.programs.neovim-ide.enable {
home = {
packages = [ neovim-ide ];
};
};
};
};
} //
flake-utils.lib.eachDefaultSystem
(system:
let
pkgs = localLib.mkPkgs system;
in
{
formatter = pkgs.alejandra;
packages = with pkgs; rec {
nvim-nightly = neovim-nightly;
nvim-ide = neovim-ide;
default = nvim-ide;
};
devShells = {
default = pkgs.mkShell {
name = "neovim";
buildInputs = with pkgs; [
lua-language-server
stylua
luajitPackages.luacheck
];
};
};
}
);
}