{
  inputs,
  pkgs,
  system,
  ...
}: let
  nvimConfig = inputs.nvf.lib.neovimConfiguration {
    inherit pkgs;
    modules = [
      ./options.nix
      ./languages.nix
      ./picker.nix
      ./snacks.nix
      ./keymaps.nix
      ./utils.nix
      ./mini.nix
    ];
  };
in {
  packages.${system}.nvim = nvimConfig.neovim;

  apps.${system} = {
    nvim = {
      type = "app";
      program = "${nvimConfig.neovim}/bin/nvim";
      meta = {
        description = "Improved Vim-based text editor";
        homepage = "https://neovim.io";
        license = "Apache-2.0";
      };
    };
    default = {
      type = "app";
      program = "${nvimConfig.neovim}/bin/nvim";
      meta = {
        description = "Improved Vim-based text editor";
        homepage = "https://neovim.io";
        license = "Apache-2.0";
      };
    };
  };

  homeManagerModules.nvim = {
    imports = [
      inputs.nvf.homeManagerModules.default
      ./default.nix
    ];
  };
}
