nix-config/programs/neovim/default.nix
2021-05-01 11:25:29 -07:00

60 lines
1.2 KiB
Nix

{ config, lib, pkgs, ... }:
let
custom-plugins = pkgs.callPackage ./custom-plugins.nix {
inherit (pkgs.vimUtils) buildVimPlugin;
};
plugins = pkgs.vimPlugins // custom-plugins;
overriddenPlugins = with pkgs; [];
myVimPlugins = with plugins; [
asyncrun-vim
ack-vim
coc-nvim
coc-java
coc-json
coc-metals
coc-pairs
coc-python
coc-tabnine
fzf-vim
git-messenger-vim
lightline-vim
nerdtree
nerdtree-git-plugin
rainbow
seoul256-vim
split-term-vim
vim-fugitive
vim-gitgutter
vim-polyglot
vimwiki
] ++ overriddenPlugins;
baseConfig = builtins.readFile ./config.vim;
cocConfig = builtins.readFile ./coc.vim;
cocSettings = builtins.toJSON (import ./coc-settings.nix);
vimConfig = baseConfig + cocConfig;
in
{
programs.neovim = {
enable = true;
extraConfig = vimConfig;
plugins = myVimPlugins;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
withNodeJs = true; # for coc.nvim
withPython = true; # for plugins
withPython3 = true; # for plugins
};
xdg.configFile = {
"nvim/coc-settings.json".text = cocSettings;
};
}