infra/nix/home-manager/programs/neovim.nix

167 lines
4.3 KiB
Nix

{ pkgs,
...
}:
let
unstablepkgs = import <channels-nixos-unstable> {};
in {
home.sessionVariables = {
EDITOR = "nvim";
};
nixpkgs.config = {
pidgin = {
openssl = true;
gnutls = true;
};
packageOverrides = pkgs: with pkgs; {
neovim = unstablepkgs.neovim;
vimPlugins = unstablepkgs.vimPlugins;
};
};
programs.neovim = {
enable = true;
extraPythonPackages = (ps: with ps; [ ]);
extraPython3Packages = (ps: with ps; [ ]);
configure = {
customRC = builtins.readFile ./neovim/vimrc;
vam = {
knownPlugins = with pkgs; vimPlugins // {
delimitMate = vimUtils.buildVimPlugin {
name = "delimitMate-vim";
src = fetchFromGitHub {
owner = "Raimondi";
repo = "delimitMate";
rev = "728b57a6564c1d2bdfb9b9e0f2f8c5ba3d7e0c5c";
sha256 = "0fskm9gz81dk8arcidrm71mv72a7isng1clssqkqn5wnygbiimsn";
};
buildInputs = [ zip vim ];
};
yaml-folds = vimUtils.buildVimPlugin {
name = "vim-yaml-folds";
src = fetchFromGitHub {
owner = "pedrohdz";
repo = "vim-yaml-folds";
rev = "0672d9a3b685b51b4c49d8716c2ad4e27cfa5abd";
sha256 = "0yp2jgaqiria79lh75fkrs77rw7nk518bq63w9bvyy814i7s4scn";
};
buildInputs = [ zip vim ];
};
vim-yaml = vimUtils.buildVimPlugin {
name = "vim-yaml";
src = fetchFromGitHub {
owner = "stephpy";
repo = "vim-yaml";
rev = "e97e063b16eba4e593d620676a0a15fa98613979";
sha256 = "0vqahbrnr43lxanpziyrmzaqqb3cmyny8ry1xvmy2xyd1larzfrk";
};
};
vim-markdown-toc = vimUtils.buildVimPlugin {
name = "vim-markdown-toc";
src = fetchFromGitHub {
owner = "mzlogin";
repo = "vim-markdown-toc";
rev = "a6e227023f405a7c39590a8aaf0d54dde5614a2e";
sha256 = "1vpsnjzc7hvrkp6mq68myxl3k1x363iif58rrd17njcsa4jh1zwy";
};
};
vim-perl = vimUtils.buildVimPlugin {
name = "vim-perl";
src = fetchFromGitHub {
owner = "vim-perl";
repo = "vim-perl";
rev = "21d0a0d795336acf8a9306da35f379c32cfc5e08";
sha256 = "0f2sa0v3djd89k16n4saji9n7grziyhkljq75dskcbv8r19m8i1j";
};
};
git-blame = vimUtils.buildVimPlugin {
name = "git-blame";
src = fetchFromGitHub {
"owner" = "zivyangll";
"repo" = "git-blame.vim";
"rev" = "a5b666840eead1b1ea1c351038da6ce026716bb6";
"sha256" = "181siphb87yzln9433159ssa6vmm1h2dd0kqhlx7bgsi51gng4rv";
};
};
tlib = vimPlugins.tlib_vim;
};
pluginDictionaries = let
default = [
"delimitMate"
"vim-airline"
"vim-airline-themes"
"ctrlp"
"vim-css-color"
"rainbow_parentheses"
"vim-colorschemes"
"vim-colorstepper"
"vim-signify"
"fugitive"
"ctrlp"
"vim-indent-guides"
"UltiSnips"
"fzfWrapper"
"ncm2"
"ncm2-bufword"
"ncm2-path"
"ncm2-tmux"
"ncm2-ultisnips"
"nvim-yarp"
"LanguageClient-neovim"
"Improved-AnsiEsc"
"tabular"
"git-blame"
# Nix
"vim-addon-nix" "tlib"
"vim-addon-vim2nix"
# LaTeX
"vim-latex-live-preview"
"vimtex"
# YAML
"yaml-folds"
"vim-yaml"
# Perl
# "vim-perl"
# markdown
"vim-markdown"
"vim-markdown-toc"
# misc syntax support
"vim-bazel" "maktaba"
];
in [
{ names = default; }
{ names = default ++ [
];
filename_regex = ".*\.nix\$";
}
{ names = default ++ [
];
filename_regex = ".*\.tex\$";
}
];
};
};
};
}