{ config, pkgs, lib, inputs, system, ... }: let unstablePackages = inputs.nixpkgs-nixos-unstable.legacyPackages."${system}"; nil = inputs.nil.packages."${system}".default; cocPackage = unstablePackages.vimPlugins.coc-nvim; nvimPackage = unstablePackages.neovim-unwrapped; in { home.file.".vimrc".source = ../../../.vimrc; home.packages = with pkgs; [ripgrep]; programs.neovim = { enable = true; package = nvimPackage; coc = { enable = true; package = cocPackage; settings = { "suggest.noselect" = false; "suggest.enablePreselect" = true; "suggest.fixInsertedWord" = true; "suggest.removeDuplicateItems" = true; "suggest.virtualText" = true; 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 ''; }; }