{ pkgs, config, lib, ... }: with lib; { options.kat.neovim = mkEnableOption "neovim configuration" // { default = true; }; config = mkIf config.kat.neovim { programs.neovim = { enable = true; defaultEditor = true; plugins = with pkgs.vimPlugins; [ (nvim-treesitter.withPlugins (_: pkgs.tree-sitter.allGrammars)) nvim-treesitter.withAllGrammars vim-nix telescope-nvim todo-comments-nvim gitsigns-nvim ]; extraPackages = with pkgs; [ git ripgrep fd gcc ]; extraConfig = builtins.readFile ./nvimrc; extraLuaConfig = builtins.readFile ./nvim.lua; vimAlias = true; viAlias = true; }; }; }