aboutsummaryrefslogtreecommitdiffstats
path: root/modules/tools/editor/neovim/default.nix
blob: 87fad55d118bf863ba72ca69234935e9a3c97859 (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.";
	};

	config = 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;

		programs.neovim.extraPackages = with pkgs; [
			gcc # Required for treesitter
		];

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

		programs.neovim.plugins = with pkgs.vimPlugins; [
			comment-nvim
			lualine-nvim
			nvim-treesitter
			nvim-web-devicons
			nvim-tree-lua
			(base16-vim.overrideAttrs (old: {
				patchPhase = "ln -s ${config.scheme base16-vim} colors/base16-scheme.vim";
			}))
		];
	};
}