aboutsummaryrefslogtreecommitdiffstats
path: root/modules/tools/editor/neovim/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/tools/editor/neovim/default.nix')
-rw-r--r--modules/tools/editor/neovim/default.nix43
1 files changed, 43 insertions, 0 deletions
diff --git a/modules/tools/editor/neovim/default.nix b/modules/tools/editor/neovim/default.nix
new file mode 100644
index 0000000..e06ec88
--- /dev/null
+++ b/modules/tools/editor/neovim/default.nix
@@ -0,0 +1,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";
+ }))
+ ];
+ };
+}