Search code examples
goemacsautocomplete

Autocomplete in golang in emacs


I'm aware a lot is involved in getting autocomplete to work in emacs, including:

  • auto-complete
  • company
  • flymake

I am not sure which components are responsible for which aspects. What is the package that when I start typing...

fmt.P

Would finish with

fmt.Println

?

I believe I have company as my auto-complete, and at present, if I start:

fm

It finishes fmt, but

fmt.

Produces nothing, and

fmt.P

Produces

fmt.package 

Which is entirely wrong. What package should I investigate to understand what is going on?


Solution

  • Autocomplete, company-mode, flymake, oh my. I recommend you uninstall all of the above and use Emacs' native completion instead:

    1. install gocode and make sure the binary is in Emacs' PATH;
    2. install the go-complete package in Emacs (I got it from melpa, but you may prefer to install it manually);
    3. add the following to your .emacs:

      (add-hook 'completion-at-point-functions 'go-complete-at-point)
      
    4. press M-TAB in a go-mode buffer.