The golangconfig
Sublime Text dependency was designed based on the following ideas:
Settings should be supported coming from the following sources, in order:
golang
keygolang.sublime-settings
filesThe project and global Sublime Text settings will also allow for placing settings in a platform-specific sub-dictionary to allow users to easily work across different operating systems. The keys for these are used by other ST packages to allow for platform-specific functionality:
Platform-specific settings are always higher priority than non-platform-specific, no matter what source they are pulled from
Setting names that are core to Go configuration preserve the uppercase style of environment variables. Thus the settings are named GOPATH
, GOROOT
, PATH
, etc.
When returning results, the value requested is returned along with a user-friendly source description that can be used when displaying configuration details to the user
The API eschews duck-typing in an attempt to prevent various edge-case bugs. This is largely due to the weak-typing issues of strings in Python 2 where byte strings and unicode strings are often mixed, only to cause exceptions at runtime on user machines where errors are harder to capture.