{ config, pkgs, lib, inputs, system, ... }: let nil = inputs.nil.packages."${system}".default; in { home.file.".vimrc".source = ../../../.vimrc; home.packages = with pkgs; [ ripgrep ]; programs.neovim = { enable = true; package = inputs.nixpkgs-nixos-unstable.legacyPackages."${system}".neovim-unwrapped; coc = { enable = true; package = pkgs.vimUtils.buildVimPluginFrom2Nix { pname = "coc.nvim"; version = "v0.0.82"; src = pkgs.fetchFromGitHub { owner = "neoclide"; repo = "coc.nvim"; rev = "v0.0.82"; sha256 = "sha256-TIkx/Sp9jnRd+3jokab91S5Mb3JV8yyz3wy7+UAd0A0="; }; meta.homepage = "https://github.com/neoclide/coc.nvim/"; }; settings = { languageserver = { nix = { command = "${nil}/bin/nil"; rootPatterns = [ "flake.nix" ]; filetypes = [ "nix" ]; }; }; }; }; viAlias = true; vimAlias = true; vimdiffAlias = true; withNodeJs = true; withPython3 = true; withRuby = true; plugins = with pkgs; with pkgs.vimPlugins; [ (vimUtils.buildVimPluginFrom2Nix rec { pname = "vim-tada"; version = "2022-04-22"; src = fetchFromGitHub { owner = "dewyze"; repo = pname; rev = "acfda7229fc487ee6da44650164cb770d1cc608c"; sha256 = "sha256-9kvLbzrVjtBTjbXmhJ7JTggXgFvGVF7sc2YiVW9fUGY="; }; }) (vimUtils.buildVimPluginFrom2Nix rec { pname = "srht.vim"; version = "2022-01-04"; src = fetchFromSourcehut { owner = "~willdurand"; repo = pname; rev = "825e685f75464cbd41a5f8eded974e46f416355e"; sha256 = "sha256-9/Yeqmq/1ZIIsEgsrLLZ7o0cjOt/wlUgeLEzJoK7eco="; }; }) ack-vim coc-go coc-highlight coc-rust-analyzer coc-yaml committia-vim ctrlp-vim editorconfig-vim fzf-vim lsp-colors-nvim nvim-tree-lua nvim-web-devicons quickfix-reflector-vim rainbow tabular vim-airline vim-airline-themes vim-autoformat vim-colors-solarized vim-devicons vim-dirdiff vim-dispatch vim-fugitive vim-gitgutter vim-markdown vim-nix vim-sensible vim-startify vim-surround vim-toml ]; extraConfig = '' if filereadable($HOME . "/.vimrc") source $HOME/.vimrc endif ''; }; }