{}: rec { pkgs = (import ../pkgs.nix).stable {}; 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 = [ gopls ]; }; init = pkgs.writeText "nvim-init.lua" '' vim.cmd('source ${pkgs.vimPlugins.vim-plug}/plug.vim') local Plug = vim.fn['plug#'] vim.call('plug#begin') Plug('${pkgs.vimPlugins.nerdtree}', { ['on'] = 'NERDTreeToggle' }) Plug('${pkgs.vimPlugins.nerdtree-git-plugin}') Plug('${pkgs.vimPlugins.vim-gitgutter}') Plug('${pkgs.vimPlugins.nvim-lspconfig}') Plug('${pkgs.vimPlugins.nvim-cmp}') Plug('${pkgs.vimPlugins.cmp-nvim-lsp}') vim.call('plug#end') vim.cmd('source ${./init.vim}') ${builtins.readFile ./init.lua} ''; nvim = pkgs.writeScriptBin "nvim" '' #!${pkgs.bash}/bin/bash export PATH=${env}/bin:$PATH exec ${pkgs.neovim}/bin/nvim -u ${init} "$@" ''; }