{
	inputs,
	pkgs,
	util,
	...
} @args: let
	nvimRc = { runtimes, configs }: let
		# Plugin paths to install.
		runtimeRc = builtins.foldl' (acc: r:
			acc + "set runtimepath+=${r}\n"
		) "" runtimes;

		# My configuration files combined into one big file.
		config = pkgs.writeText "nvimRc" (util.catText configs args);

		# Tell Neovim to load this file.
		configRc = "lua dofile(\"${config}\")";
	in
		runtimeRc + configRc;
in {
	text = nvimRc {
		runtimes = [
			"~/.cache/nvim"
			"~/.cache/nvim/treesitter"
			"${inputs.nvimAlign}"
			"${inputs.nvimAutoclose}"
			"${inputs.nvimBufferline}"
			"${inputs.nvimCloseBuffers}"
			"${inputs.nvimColorizer}"
			"${inputs.nvimDevicons}"
			"${inputs.nvimDressing}"
			"${inputs.nvimGen}"
			"${inputs.nvimGitsigns}"
			"${inputs.nvimGruvboxMaterial}"
			"${inputs.nvimIndentoMatic}"
			"${inputs.nvimLspconfig}"
			"${inputs.nvimPlenary}"
			"${inputs.nvimTelescope}"
			"${inputs.nvimTodo}"
			"${inputs.nvimTreesitter}"
			"${inputs.nvimTree}"
			"${inputs.nvimTrouble}"
		];

		configs = [
			./module/key/Rekey.nix
			./module/key/Leader.nix
			./module/config/Autoread.nix
			./module/config/Etc.nix
			./module/config/Search.nix
			./module/config/Tab.nix
			./module/config/Highlight.nix
			./module/plugin/Filetree.nix
			./module/plugin/Gruvbox.nix
			./module/plugin/Bufferline.nix
			./module/plugin/Autoclose.nix
			./module/plugin/Gitsigns.nix
			./module/plugin/Trouble.nix
			./module/plugin/Closebuffers.nix
			./module/plugin/Telescope.nix
			./module/plugin/Todo.nix
			./module/plugin/Indent.nix
			./module/plugin/Align.nix
			./module/plugin/Treesitter.nix
			./module/plugin/Fold.nix
			./module/plugin/Gen.nix
			./module/plugin/Colorizer.nix
			./module/plugin/Dressing.nix
			./module/plugin/lsp/Go.nix
			./module/plugin/lsp/Haskell.nix
			./module/plugin/lsp/Lua.nix
			./module/plugin/lsp/Nix.nix
			./module/plugin/lsp/Rust.nix
			./module/plugin/lsp/Tex.nix
			./module/key/Autocomplete.nix
			./module/key/Buffer.nix
			./module/key/Cmd.nix
			./module/key/Colorscheme.nix
			./module/key/Filetree.nix
			./module/key/Gitsigns.nix
			./module/key/Navigation.nix
			./module/key/Prompt.nix
			./module/key/Save.nix
			./module/key/Sort.nix
			./module/key/TabWidth.nix
			./module/key/Telescope.nix
			./module/key/Terminal.nix
			./module/key/Trouble.nix
		];
	};
}