aboutsummaryrefslogtreecommitdiffstats
path: root/modules/tools/neovim/default.nix
blob: bc57f2fc3dc3f42de2e0731a3d559370e1092432 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{ pkgs, config, lib, ... }:

{
	options.tools.neovim = {
		enable = lib.mkEnableOption "Enables neovim.";
		profile = lib.mkOption {
			type = lib.types.enum [
				"minimal"
				"full"
			];
			default = "minimal";
			description = "The profile for neovim to use.";
		};
	};

	config = let
		plugins = import ./plugins { inherit config pkgs lib; };
	in lib.mkIf config.tools.neovim.enable {
		programs.neovim = {
			enable = true;
			viAlias = true;
			vimAlias = true;
			vimdiffAlias = true;
			defaultEditor = true;
			plugins = plugins.list;
			extraLuaConfig =
	''
${import ./config}
${plugins.configuration}
	'';
		};

		home.packages = plugins.requirements;
	};
}