ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Godef

by buaazp ST2/ST3

Plugin of sublime to use godef to go to definitions accurately.

Labels go

Details

  • 2017.10.18.07.37.47
  • github.​com
  • github.​com
  • 3 months ago
  • 2 hours ago
  • 3 years ago

Installs

  • Total 6K
  • Win 2K
  • OS X 3K
  • Linux 1K
Jan 23 Jan 22 Jan 21 Jan 20 Jan 19 Jan 18 Jan 17 Jan 16 Jan 15 Jan 14 Jan 13 Jan 12 Jan 11 Jan 10 Jan 9 Jan 8 Jan 7 Jan 6 Jan 5 Jan 4 Jan 3 Jan 2 Jan 1 Dec 31 Dec 30 Dec 29 Dec 28 Dec 27 Dec 26 Dec 25 Dec 24 Dec 23 Dec 22 Dec 21 Dec 20 Dec 19 Dec 18 Dec 17 Dec 16 Dec 15 Dec 14 Dec 13 Dec 12 Dec 11 Dec 10 Dec 9
Windows 0 3 1 1 0 3 1 2 2 0 3 1 6 3 0 0 0 2 0 3 1 1 0 0 0 1 2 3 1 2 3 1 1 3 1 3 3 2 1 0 0 3 2 3 1 2
OS X 3 3 0 1 1 2 1 2 1 1 1 1 1 4 1 3 3 1 1 2 1 3 3 1 0 3 2 1 0 6 0 1 3 3 1 2 2 1 2 0 1 4 2 1 1 2
Linux 1 2 1 2 2 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 2 0 0 0 0 0 1 0 1 1 2

Readme

Source
raw.​githubusercontent.​com

Godef

This Sublime Text 2/3 golang plugin adds a godef command which uses godef or guru to find the definition under the cursor.

Compatible with GoSublime

You can use this plugin working with GoSublime because GoSublime is not support godef/guru.

This plugin support two different modes to find the definition of symbles:

godef offers faster speed. But cannot find correct definition if the package name is not matched with import path: rogpeppe/godef#40

guru tool offers improved definition lookups which are compatible with Go 1.5+ vendoring.

We use godef to find definition first, if it fails, try guru again.

Installation

The plugin assumes godef/guru is present at $GOPATH/bin/. You need install them first:

go get -v github.com/rogpeppe/godef
go get -v golang.org/x/tools/cmd/guru

Sublime Package Control

If you are using Sublime Package Control you can simply install Sublime Godef by searching for Godef in the package listing.

Manual Install

Git clone this repository and place the entire Godef directory into your Packages directory.

OSX:

# Install the plugin
git clone git@github.com:buaazp/Godef.git ~/Library/Application\ Support/Sublime\ Text\ 3/Packages/Godef

Linux:

# Install the plugin
git clone git@github.com:buaazp/Godef.git ~/.config/sublime-text-3/Packages/Godef

Windows:

Now windows is been supported. Thanks for @decker502 and @mattn's work. Please use the Sublime Package Control to install this plugin.

Settings

Configuring GOPATH and GOROOT

In most cases, you needn't set anything after installing. But if your Godef don't work you need to add gopath and goroot into the setting file before using this plugin. Here's an example Godef.sublime-settings:

{
    "goroot": "/Users/zippo/Go",
    "gopath": "/Users/zippo/gopath"
}

// or if you use windows
{
    "goroot": "C:\\Go",
    "gopath": "C:\\gopath"
}

NOTE: The value of gopath/goroot should be absolute path. Multiple path like env GOPATH are supported but relative path are not:

GOOD:
"gopath": "/opt/golang:/Users/zippo/develop/GO"

BAD:
"gopath": "~/develop/GO"
"gopath": "$HOME/develop/GO"

This plugin will determine GOPATH/GOROOT from either:

  1. The gopath/goroot value from Godef.sublime-settings
  2. The GOPATH/GOROOT environment variable

NOTE 2: In case your plugin can't resolve internals, add the installed library path to your gopath (notice the last part):

"gopath": "/opt/golang:/Users/zippo/develop/GO:/usr/lib/go"

Key Bindings

The default key of Godef is gd, which is also the default key of godef plugin for vim. Don't be afraid. This key binding will NOT modify your codes. Just press it.

Or you can click left button while pressing super/ctrl+alt. You CAN of course change it by yourself. Here's an example key binding:

{ "keys": ["super+h"], "command": "godef" }

You can also add these two key-binding into your keymap file to jump between the postions. Using j/k is because I use vim mode. Change them by yourself:

{ "keys": ["super+j"], "command": "jump_forward"},
{ "keys": ["super+k"], "command": "jump_back"},

These two command only available in ST3.

Enjoy it!

Godef doesn't work

There are so many reasons lead to godef fails. If that happens, do these:

  1. upgrade your plugin to the latest version.
  2. press ctrl + ~ to open the sublime console, then press godef shortcut key again.
  3. logs in the console will show you the reason why godef is not work.
  4. follow the logs and adjust your settings.
  5. check if your GOPATH/GOROOT is right in settings.
  6. open an issue and paste the logs in it.

License

Godef is under BSD license which is in the license file.