{ pkgs, lib, ... }: let fromGitHub = repo: ref: rev: pkgs.vimUtils.buildVimPlugin { pname = "${lib.strings.sanitizeDerivationName repo}"; version = ref; src = builtins.fetchGit { url = "https://github.com/${repo}.git"; ref = ref; rev = rev; }; }; in { home.file.".config/nvim" = { source = ./config/neovim; recursive = true; }; programs.neovim = { enable = true; viAlias = true; vimAlias = true; defaultEditor = true; plugins = with pkgs.vimPlugins; [ nvim-treesitter.withAllGrammars surround-nvim telescope-nvim plenary-nvim # dependency of telescope rnvimr (fromGitHub "decaycs/decay.nvim" "HEAD" "457014541ebcfb29bd660592a0b02f22c9e2d0e2") auto-session ]; extraPackages = with pkgs; [ gcc # For treesitter complation ripgrep # Search support wayclip # Clipboard support fd # finder for telescope ]; }; }