summaryrefslogtreecommitdiff
path: root/nvim/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/default.nix')
-rw-r--r--nvim/default.nix81
1 files changed, 33 insertions, 48 deletions
diff --git a/nvim/default.nix b/nvim/default.nix
index 87a4693..4e108f0 100644
--- a/nvim/default.nix
+++ b/nvim/default.nix
@@ -2,69 +2,54 @@
pkgs = (import ../pkgs.nix).stable {};
- misspell = pkgs.buildGoPackage rec {
- pname = "misspell";
- version = "0.3.4";
- goPackagePath = "github.com/client9/misspell";
-
- src = pkgs.fetchFromGitHub {
- owner = "client9";
- repo = "misspell";
- rev = "v${version}";
- sha256 = "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs";
- };
-
- goDeps = ./misspellDeps.nix;
+ gopls = pkgs.buildGoModule rec {
+ pname = "gopls";
+ version = "0.16.2";
+
+ src = "${pkgs.fetchFromGitHub {
+ owner = "golang";
+ repo = "tools";
+ rev = "gopls/v${version}";
+ sha256 = "sha256-amy00VMUcmyjDoZ4d9/+YswfcZ+1/cGvFsA4sAmc1dA=";
+ }}/gopls";
+
+ subPackages = ["."];
+ vendorHash = "sha256-ta94xPboFtSxFeuMtPX76XiC1O7osNl4oLk64wIyyz4=";
+ doCheck = false;
};
env = pkgs.buildEnv {
name = "nvim-env";
paths = [
- pkgs.shellcheck
- misspell
+ gopls
];
};
- envPlugins = "${env}/share/vim-plugins";
+ init = pkgs.writeText "nvim-init.lua" ''
+ vim.cmd('source ${pkgs.vimPlugins.vim-plug}/plug.vim')
- init = pkgs.writeText "nvim-init" ''
- source ${pkgs.vimPlugins.vim-plug}/plug.vim
+ local Plug = vim.fn['plug#']
- call plug#begin()
- Plug '${pkgs.vimPlugins.deoplete-nvim}'
- Plug '${pkgs.vimPlugins.nerdtree}', { 'on': 'NERDTreeToggle' }
- Plug '${pkgs.vimPlugins.nerdtree-git-plugin}'
- Plug '${pkgs.vimPlugins.vim-gitgutter}'
- Plug '${pkgs.vimPlugins.neomake}'
- Plug '${pkgs.vimPlugins.vim-go}', { 'for': 'go' }
- Plug '${pkgs.vimPlugins.vim-nix}', { 'for': 'nix' }
- Plug '${pkgs.vimPlugins.rust-vim}', { 'for': 'rust' }
- call plug#end()
+ vim.call('plug#begin')
- source ${./init.vim}
- '';
+ Plug('${pkgs.vimPlugins.nerdtree}', { ['on'] = 'NERDTreeToggle' })
+ Plug('${pkgs.vimPlugins.nerdtree-git-plugin}')
+ Plug('${pkgs.vimPlugins.vim-gitgutter}')
- nvimRaw = pkgs.writeScriptBin "nvim" ''
- #!${pkgs.bash}/bin/bash
- export PATH=${env}/bin:$PATH
- exec ${pkgs.neovim}/bin/nvim -u ${init} "$@"
- '';
+ Plug('${pkgs.vimPlugins.nvim-lspconfig}')
+ Plug('${pkgs.vimPlugins.nvim-cmp}')
+ Plug('${pkgs.vimPlugins.cmp-nvim-lsp}')
- rplugin = pkgs.stdenv.mkDerivation {
- name = "nvim-rplugin";
- buildInputs = [ pkgs.git pkgs.tree nvimRaw ];
- builder = builtins.toFile "builder.sh" ''
- source $stdenv/setup
- mkdir -p "$out"/
- export NVIM_RPLUGIN_MANIFEST="$out"/rplugin.vim
- nvim -i NONE -c ':UpdateRemotePlugins' -c ':exit' >/dev/null
- '';
- };
+ vim.call('plug#end')
+
+ vim.cmd('source ${./init.vim}')
+
+ ${builtins.readFile ./init.lua}
+ '';
nvim = pkgs.writeScriptBin "nvim" ''
#!${pkgs.bash}/bin/bash
- export NVIM_RPLUGIN_MANIFEST=${rplugin}/rplugin.vim
- exec ${nvimRaw}/bin/nvim "$@"
+ export PATH=${env}/bin:$PATH
+ exec ${pkgs.neovim}/bin/nvim -u ${init} "$@"
'';
-
}