All Versions
Latest Version
Avg Release Cycle
72 days
Latest Release
1353 days ago

Changelog History
Page 2

  • v18.10.06 Changes

    • ⏪ restore support for running individual test functions by pressing ctrl+.,ctrl+g or ctrl+shift + left/right-click on the function declaration's name

    • ➕ add support for having multiple builtins with the same name

    • API breakage: mg.ExecRunFunc() was replaced with the pattern CmdCtx.WithCmd().Run() the former bypasses builtins so running go install has no linting support

  • v18.09.30 Changes

    September 30, 2018
    • 👌 Improve autocompletion scope detection

      • snippets should now the shown when there is a comment above the package statement
      • completion should no longer be shown when there is no package statement
    • misc tweaks to the method snippets

      • for pointer method receivers, only the * is selected for the initial method definition
      • when there are syntax errors in the file, methods should no longer be suggested for the invalid type _
  • v18.09.25 Changes

    • 0️⃣ Switch golang.Gocode and golang.GocodeCalltips to new mode SrcImporterWithFallback by default

    This should improve the experience a lot:

    • in the old Source: true mode, CGO packages often failed
    • in the old Source: false mode, you had to make sure the package was installed and up-to-date
    • in this new mode, we try the more reliable source mode and fallback to the binary mode if it fails

    As a result, the Source: bool fields are now ignored. To restore the old behaviour, use the golang.MarGocodeCtl reducer:

        ImporterMode: golang.SrcImporterOnly,
        // or
        ImporterMode: golang.BinImporterOnly,
    • replace margocodectl cache-list-by-key and cache-list-by-dur with cache-list see margocodectl cache-list --help

    • 👌 Improve FmtCmd's error message

    When goimports fails due to a syntax error, the parse error should now be shown as well and not just the meaningless exit 2 error message

  • v18.09.18 Changes

    • 🛠 fix a case where margo exits due to IPC shutdown you will need to restart Sublime Text
    • return all possible completions in gocode to allow the editor to do filtering. this restores the old behaviour where typing abc.X proposes abc.XYX123
  • v18.09.14 Changes

    • 🚀 This release adds a new experimental update notifier.

    MOTD keeps you updated about new versions and important announcements

    It adds a new command motd.sync available via the UserCmd palette as Sync MOTD

    Interval can be set in order to enable automatic update fetching.

    When new updates are found, it displays the message in the status bar e.g. ★ ★ a url where you see the upcoming changes before updating

    It sends the following data to the url

    • current editor plugin name e.g. ?client=gosublime this tells us which editor plugin's changelog to check
    • current editor plugin version e.g. ?tag=r18.09.14-1 this allows us to determine if there any updates
    • whether or not this is the first request of the day e.g. ?firstHit=1 this allows us to get an estimated count of active users without storing any personally identifiable data

    No other data is sent. For more info contact privacy at

    To enabled it, add the following reducer:

        // Interval, if set, specifies how often to automatically fetch messages from Endpoint
        // Interval: 3600e9, // automatically fetch updates every hour

    You will need to restart Sublime Text. Unless you uncomment/set Interval, you will need to manually check for updates using the Sync MOTD command from the usercmd palette ctrl+.,ctrl+c / super+.,super+c

    • The GoSublime: Go syntax was switched to a new syntax based on the Go syntax shipped in Sublime Text

      • if you find any breakages, please file an issue at
      • if you prefer the colouring of the previous version, you can switch back to the old syntax via Menu > View > Syntax > Open all with current extension as... > GoSublime > GoSublime: Go (Deprecated) please not that this version is buggy and will not receive any fixes
    • golang.Gocode, golang.GocodeCalltips:

      • reduce memory use with Source: true
      • support syscall/js
    • 👍 golang.Guru gained support for syscall/js guru is now called with -tags "js wasm" if syscall/js is imported in the package

  • v18.08.31 Changes

    • ✅ Switch the ctrl+.,ctrl+t / cmd+.,cmd+t keybinding to the new &golang.TestCmds{} reducer:
        // additional args to add to the command when running tests and examples
        TestArgs: []string{},
        // additional args to add to the command when running benchmarks
        BenchArgs: []string{"-benchmem"},
  • v18.08.29 Changes

    • implement more aggressive gocode caching. behind the scenes, imported/type-checked packages are cached until the respective package is edited.

      • it should now be ok to use Source: true option without slowdowns.
      • as a bonus, go modules should now have completion with Source: true
      • please note that Source: true uses a lot more memory (see below for details about cache pruning)
      • if both &golang.Gocode{Source: true} and &golang.GocodeCalltips{Source: true} use Source: true, they will share the cache (less memory use)
    • ➕ add new reducer &golang.MarGocodeCtl{} this allows manual cache management using the new margocodectl command

      • to clear the cache use the command margocodectl cache-prune run margocodectl for info about how to use the command
      • automated cache pruning will be implemented in the future
  • v18.08.22 Changes

    • 🔀 merge all shell env vars named ^(MARGO|GO|CGO)\w+ into the GoSublime environment this ensures new env vars like GOPROXY and GO111MODULE work correctly

    • 🏗 try to prevent GO111MODULE leaking into the agent build process

    • ➕ add support for UserCmd prompts

    this enables the creation of UserCmds like the following, without dedicated support from margo:

        Title:   "GoRename",
        Name:    "gorename",
        Args:    []string{"-offset={{.View.Filename}}:#{{.View.Pos}}", "-to={{index .Prompts 0}}"},
        Prompts: []string{"New Name"},
    • 🛠 fix #853 a build failure when using snap packaged go1.10

    • 🛠 fix caching of packages in GOPATH when doing gocode completion this might slow completion, but there should no longer be any stale non-GOROOT package completions

    • ➕ add new Source option to use source code for gocode completions this will most likely be very slow

      &golang.Gocode{ Source: true }
      &golang.GocodeCalltips{ Source: true }
  • v18.08.15 Changes

    • 🛠 fix missing go command integration by default

    • you may need to add the reducer &golang.GoCmd{}

    • this adds new commands (callable through 9o):

      • go: Wrapper around the go command, adding linter support
      • Automatically build and run go commands or run go test for packages with support for linting and unsaved files
      • go.replay: Wrapper around limited to a single instance by default this command is bound to ctrl+.,ctrl+r or cmd+.,cmd+r

    UserCmds (ctrl+.,ctrl+c / cmd+.,cmd+c) are also added for Go Play and Go RePlay

  • v18.07.31

    July 31, 2018