1{ lib, buildGoPackage, fetchFromGitHub }:
2
3buildGoPackage rec {
4 pname = "gocode-unstable";
5 version = "2020-04-06";
6 rev = "4acdcbdea79de6b3dee1c637eca5cbea0fdbe37c";
7
8 goPackagePath = "github.com/mdempsky/gocode";
9
10 # we must allow references to the original `go` package,
11 # because `gocode` needs to dig into $GOROOT to provide completions for the
12 # standard packages.
13 allowGoReference = true;
14
15 src = fetchFromGitHub {
16 inherit rev;
17
18 owner = "mdempsky";
19 repo = "gocode";
20 sha256 = "0i1hc089gb6a4mcgg56vn5l0q96wrlza2n08l4349s3dc2j559fb";
21 };
22
23 goDeps = ./deps.nix;
24
25 meta = with lib; {
26 description = "An autocompletion daemon for the Go programming language";
27 longDescription = ''
28 Gocode is a helper tool which is intended to be integrated with your
29 source code editor, like vim, neovim and emacs. It provides several
30 advanced capabilities, which currently includes:
31
32 - Context-sensitive autocompletion
33
34 It is called daemon, because it uses client/server architecture for
35 caching purposes. In particular, it makes autocompletions very fast.
36 Typical autocompletion time with warm cache is 30ms, which is barely
37 noticeable.
38 '';
39 homepage = "https://github.com/mdempsky/gocode";
40 license = licenses.mit;
41 maintainers = with maintainers; [ kalbasit ];
42 };
43}