Merge pull request #49815 from kalbasit/nixpkgs_fix-vim-go

vimPlugins: vim-go: make gocode, gocode-mod and keyify available to it
This commit is contained in:
Jörg Thalheim 2018-11-06 15:50:18 +00:00 committed by GitHub
commit bd2111696c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 75 additions and 14 deletions

@ -0,0 +1,50 @@
{ stdenv, buildGoPackage, fetchFromGitHub }:
buildGoPackage rec {
name = "gocode-gomod-unstable-${version}";
version = "2018-10-16";
rev = "12640289f65065d652cc942ffa01a52bece1dd53";
goPackagePath = "github.com/stamblerre/gocode";
# we must allow references to the original `go` package,
# because `gocode` needs to dig into $GOROOT to provide completions for the
# standard packages.
allowGoReference = true;
excludedPackages = ''internal/suggest/testdata'';
src = fetchFromGitHub {
inherit rev;
owner = "stamblerre";
repo = "gocode";
sha256 = "1avv0b5p2l8pv38m5gg97k57ndr5k9yy0rfkmmwjq96pa221hs1q";
};
goDeps = ./deps.nix;
postInstall = ''
mv $bin/bin/gocode $bin/bin/gocode-gomod
'';
meta = with stdenv.lib; {
description = "An autocompletion daemon for the Go programming language";
longDescription = ''
Gocode is a helper tool which is intended to be integrated with your
source code editor, like vim, neovim and emacs. It provides several
advanced capabilities, which currently includes:
- Context-sensitive autocompletion
It is called daemon, because it uses client/server architecture for
caching purposes. In particular, it makes autocompletions very fast.
Typical autocompletion time with warm cache is 30ms, which is barely
noticeable.
'';
homepage = https://github.com/stamblerre/gocode;
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ kalbasit ];
};
}

@ -0,0 +1,11 @@
[
{
goPackagePath = "golang.org/x/tools";
fetch = {
type = "git";
url = "https://go.googlesource.com/tools";
rev = "78dc5bac0cacea7969e98b79c3b86597e0aa4e25";
sha256 = "16jg2x1sfm39kz4rchn0gxyq99fnkxw6v51wxriqbs76a2wrznp9";
};
}
]

@ -2,10 +2,11 @@
buildGoPackage rec {
name = "gocode-unstable-${version}";
version = "2018-10-22";
rev = "e893215113e5f7594faa3a8eb176c2700c921276";
version = "2018-11-05";
rev = "0af7a86943a6e0237c90f8aeb74a882e1862c898";
goPackagePath = "github.com/mdempsky/gocode";
excludedPackages = ''internal/suggest/testdata'';
# we must allow references to the original `go` package,
# because `gocode` needs to dig into $GOROOT to provide completions for the
@ -17,17 +18,11 @@ buildGoPackage rec {
owner = "mdempsky";
repo = "gocode";
sha256 = "1zsll7yghv64890k7skl0g2lg9rsaiisgrfnb8kshsxrcxi1kc2l";
sha256 = "0fxqn0v6dbwarn444lc1xrx5vfkcidi73f4ba7l4clsb9qdqgyam";
};
goDeps = ./deps.nix;
preBuild = ''
# getting an error building the testdata because they contain invalid files
# on purpose as part of the testing.
rm -r go/src/$goPackagePath/internal/suggest/testdata
'';
meta = with stdenv.lib; {
description = "An autocompletion daemon for the Go programming language";
longDescription = ''

@ -4,8 +4,8 @@
fetch = {
type = "git";
url = "https://go.googlesource.com/tools";
rev = "6fe81c087942f588f40c3f67b41ce284f2f70eee";
sha256 = "04yl7rk2lf94bxz74ja5snh7ava9gcnf2yx6y002pfkk538r6w5d";
rev = "78dc5bac0cacea7969e98b79c3b86597e0aa4e25";
sha256 = "16jg2x1sfm39kz4rchn0gxyq99fnkxw6v51wxriqbs76a2wrznp9";
};
}
]

@ -14,7 +14,7 @@
, asmfmt, delve, errcheck, godef, golint
, gomodifytags, gotags, gotools, motion
, gnused, reftools, gogetdoc, gometalinter
, impl, iferr
, impl, iferr, gocode, gocode-gomod, go-tools
}:
let
@ -261,6 +261,9 @@ with generated;
asmfmt
delve
errcheck
go-tools
gocode
gocode-gomod
godef
gogetdoc
golint
@ -276,8 +279,8 @@ with generated;
in {
postPatch = ''
${gnused}/bin/sed \
-Ee 's@let go_bin_path = go#path#BinPath\(\)@let go_bin_path = "${binPath}"@g' \
-i autoload/go/path.vim
-Ee 's@"go_bin_path", ""@"go_bin_path", "${binPath}"@g' \
-i autoload/go/config.vim
'';
});

@ -14698,6 +14698,8 @@ with pkgs;
gocode = callPackage ../development/tools/gocode { };
gocode-gomod = callPackage ../development/tools/gocode-gomod { };
goconst = callPackage ../development/tools/goconst { };
goconvey = callPackage ../development/tools/goconvey { };