aboutsummaryrefslogtreecommitdiffstats
path: root/modules/tools/editor/neovim/default.nix
blob: e06ec881067a2f4fce329711f8dfc228e335c99d (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
37
38
39
40
41
42
43
{ pkgs, config, lib, ... }:

{
	options = {
		neovim.enable = lib.mkEnableOption "Enables neovim.";
	};

	config = lib.mkIf config.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 =
	''
	${builtins.readFile ./options.lua}
	${builtins.readFile ./keybindings.lua}

	-- Plugins configuration
	${builtins.readFile ./plugins/comment.lua}
	${builtins.readFile ./plugins/lualine.lua}
	${import ./plugins/treesitter.nix config}
	${builtins.readFile ./plugins/base16.lua}
	${builtins.readFile ./plugins/nvim-tree.lua}
	'';

		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";
			}))
		];
	};
}