diff --git a/pkgs/development/tools/gocode/default.nix b/pkgs/development/tools/gocode/default.nix index a20e1658988c6f..bb44074dfc752b 100644 --- a/pkgs/development/tools/gocode/default.nix +++ b/pkgs/development/tools/gocode/default.nix @@ -1,20 +1,50 @@ -{ stdenv, buildGoPackage, fetchgit }: +{ stdenv, buildGoPackage, fetchFromGitHub }: buildGoPackage rec { - name = "gocode-${version}"; - version = "20170903-${stdenv.lib.strings.substring 0 7 rev}"; - rev = "c7fddb39ecbc9ebd1ebe7d2a3af473ed0fffffa1"; + name = "gocode-unstable-${version}"; + version = "2018-10-22"; + rev = "e893215113e5f7594faa3a8eb176c2700c921276"; - goPackagePath = "github.com/nsf/gocode"; + goPackagePath = "github.com/mdempsky/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; - src = fetchgit { + src = fetchFromGitHub { inherit rev; - url = "https://github.com/nsf/gocode"; - sha256 = "0qx8pq38faig41xkl1a4hrgp3ziyjyn6g53vn5wj7cdgm5kk67nb"; + + owner = "mdempsky"; + repo = "gocode"; + sha256 = "1zsll7yghv64890k7skl0g2lg9rsaiisgrfnb8kshsxrcxi1kc2l"; + }; + + 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 = '' + 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/mdempsky/gocode; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ kalbasit ]; }; } diff --git a/pkgs/development/tools/gocode/deps.nix b/pkgs/development/tools/gocode/deps.nix new file mode 100644 index 00000000000000..4eefdd9c6d0433 --- /dev/null +++ b/pkgs/development/tools/gocode/deps.nix @@ -0,0 +1,11 @@ +[ + { + goPackagePath = "golang.org/x/tools"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/tools"; + rev = "6fe81c087942f588f40c3f67b41ce284f2f70eee"; + sha256 = "04yl7rk2lf94bxz74ja5snh7ava9gcnf2yx6y002pfkk538r6w5d"; + }; + } +]