The golangconfig
package is a reusable library that Go-related Sublime Text packages can use to obtain information about your Go environment.
This documentation details how you can set OS-specific, per-project and global Sublime Text configuration for all packages that utilize golangconfig
.
By default golangconfig
tries to detect all of your Go configuration by invoking your login shell. It will pull in your PATH
, GOPATH
, and any other environment variables you have set.
Generally, autodetecting the shell environment is sufficient for most users with a homogenous Go environment. If your Go configuration is more complex, Sublime Text settings may be used to handle it, via:
Settings are loading using the following precedence, from most-to-least specific:
To set variables for use in Sublime Text windows, you will want to edit your golang.sublime-settings
file. This can be accessed via the menu:
Settings are placed in a json structure. Common settings include:
PATH
- a list of directories to search for executables within. On Windows these are separated by ;
. OS X and Linux use :
as a directory separator.GOPATH
- a string of the path to the root of your Go environmentOther Go settings may, or may not, be supported by the packages using these settings. Examples include: GOOS
, GOARCH
, GOROOT
.
{ "PATH": "/Users/jsmith/go/bin", "GOPATH": "/Users/jsmith/go" }
For users that are working on different operating systems, it may be necessary to segement settings per OS. All settings may be nested under a key of one of the following strings:
{ "osx": { "PATH": "/Users/jsmith/go/bin", "GOPATH": "/Users/jsmith/go" }, "windows": { "PATH": "C:\\Users\\jsmith\\go\\bin", "GOPATH": "C:\\Users\\jsmith\\go" }, "linux": { "PATH": "/home/jsmith/go/bin", "GOPATH": "/home/jsmith/go" }, }
When working on Go projects that use different environments, it may be necessary to define settings in a Sublime Text project file. The Project menu in Sublime Text provides the interface to create and edit project files.
Within projects, all Go settings are placed under the "settings"
key and then further under a subkey named "golang"
.
{ "folders": { "/Users/jsmith/projects/myproj" }, "settings": { "golang": { "PATH": "/Users/jsmith/projects/myproj/env/bin", "GOPATH": "/Users/jsmith/projects/myproj/env" } } }
Project-specific settings may also utilize the OS-specific settings feature.
{ "folders": { "/Users/jsmith/projects/myproj" }, "settings": { "golang": { "osx": { "PATH": "/Users/jsmith/projects/myproj/env/bin", "GOPATH": "/Users/jsmith/projects/myproj/env" }, "linux": { "PATH": "/home/jsmith/projects/myproj/env/bin", "GOPATH": "/home/jsmith/projects/myproj/env" } } } }