aboutsummaryrefslogtreecommitdiffstats
path: root/modules/tools/editor/neovim/default.nix
blob: 7d257ba03193fbfe8df6d0d86302ffd872d95894 (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
36
{ pkgs, config, lib, ... }:

{
	options.tools.editor.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.editor.neovim.enable {
		programs.neovim.enable = true;
		programs.neovim.viAlias = true;
		programs.neovim.vimAlias = true;
		programs.neovim.vimdiffAlias = true;
		programs.neovim.defaultEditor = true;

		home.packages = plugins.requirements;

		programs.neovim.extraLuaConfig =
	''
${import ./config}
${plugins.configuration}
	'';

		programs.neovim.plugins = plugins.list;
	};
}