Skip to content

Releases: golang/vscode-go

Release 0.20.0

22 Dec 22:42
Compare
Choose a tag to compare

v0.20.0 - 22nd Dec, 2020

A list of all issues and changes can be found in the v0.20.0 milestone.

📣   Announcement: We plan to enable the language server, gopls, by default early next year. (Issue 1037)

Please test and provide us your feedback on the #vscode-dev Gophers Slack channel.

Enhancements

  • Debugging
    • The new substitutePath config property allows users to translate their symlinked directories to the actual paths, and
      the local paths to the remote paths. See Launch Configurations
      and Remote Debugging for details.
    • Quick pick menu for creating launch.json was added. (Issue 131)
    • Report that next is automatically cancelled by delve if interrupted, for example, because breakpoint is set. See Issue 787 for details. (CL 261078)
  • The new tyf snippet for type name func() was added. (Issue 1002)
  • Include the gopls settings section definition based on gopls v0.6.0. (Issue 197, CL 278355)
  • go.buildFlags and go.buildTags are propagated to gopls unless "gopls": {"buildFlags": ..} is set. (Issue 155)
  • The new go.toolsManagement.checkForUpdates setting allows users to completely disable version checks.
    This deprecates go.useGoProxyToCheckForToolUpdates. (Issue 963)

Fixes

  • Added a workaround for the VSCode PATH setup issue. When go isn't
    found from PATH, the extension will check /usr/local/bin too (Issue 971).
  • Fixed language client crashes or duplicate language features on the guest side of a VS Live Share session.
    The initial fix added in v0.19.0 for VS Live Share wasn't sufficient. (Issue 605, 1024)
  • Stop requiring to install legacy tools when the language server is used. (Issue 51)
  • Update gopls if the existing version in the system is older than the minimum required version when the extension enables gopls automatically. (Issue 938)
  • Show language server start progress and allow only one outstanding language server restart request. (Issue 1011)
  • Fixed a gocode-gomod installation bug that caused to ignore GOBIN setting. (CL 275877)
  • Marked settings that are not applicable when using the language server. (Issue 155)

Code Health

  • Deprecated unused settings such as go.overwriteGoplsMiddleware and marked deprecated settings.
  • Improved stability of debug functionality tests on windows.
  • Improve the automated gopls issue template message. It includes the extension name and version.
  • Prompt users to file an issue for feedback when they choose to opt out of gopls.
  • CI test workflow now runs vsce package to detect packaging errors early.

Thanks

Thank you for your contribution, @hyangah, @suzmue, and @programmer04!

Release 0.19.1-rc.101

17 Dec 21:46
Compare
Choose a tag to compare
Release 0.19.1-rc.101 Pre-release
Pre-release

This is a variation of 0.19.1 built for Theia IDEs.
It's equivalent to 0.19.1 except the use of downgraded LSP and client versions.

See #1038 for details.

New features that depend on LSP 3.16 won't be available with this version.

Release 0.19.1

09 Dec 20:43
Compare
Choose a tag to compare

v0.19.1 - 9th Dec, 2020

A list of all issues and changes can be found in the v0.19.1 milestone.

Fixes

  • Fixed Run without Debugging for Windows. This was a regression found in v0.19.0 (Issue 918).
  • Fixed snippets that used the reserved keyword ('var') as variable names (Issue 969).
  • Fixed a file path expansion bug in subtest failure messages (Issue 956).
  • Fixed unhandled promise rejection error in debug adapter (Issue 982).

Enhancements

  • Disabled the experimental godlvdap debug configuration from the stable version. It is still available in Go Nightly (Issue 960).
  • Enabled user survey (Issue 910).

Thanks

Thank you for your contribution, @suzmue, @RomanKornev, @hyangah!

Release 0.19.0

25 Nov 18:40
Compare
Choose a tag to compare

v0.19.0 - 25 Nov, 2020

A list of all issues and changes can be found in the v0.19.0 milestone.

Community

Enhancements

  • Added a snippet for TestMain (Issue 629)
  • Added lispcase, pascalcase and keep as transform variants for go.addTags (Issue 906, 936)
  • Added support for gomodifytags's --template flag (Issue 826)
  • Language Server
    • Upgraded to the latest vscode-languageclient pre-release (Issue 42148)
  • Debugging
    • package.json: activate extension onDebugInitialConfigurations (Issue 131)

Fixes

  • Fixed test streaming output handling to correctly add -json flag (Issue 471)
  • Fixed bug that unnecessarily buffered test output (Issue 917)
  • Fixed a bug that occurred when choosing a new Go environment using the file picker (Issue 868, 864)
  • Hide running test StatusBarItem after cancelling tests
  • Tool Installation
    • Unset GOOS/GOARCH/GOROOT/... from tool installation env since the tools need to be built for the host machine (Issue 628)
    • Changed the dependency tool installation to use the go command chosen from the current GOROOT/bin for gocode-gomode too (Issue 757)
  • Filter out unsupported document types to improve VS Code Live Share experience (Issue 605)
  • Fixed language server survey computation error
  • Debugging
    • No longer shows a warning about editing Go files if there is no Go Debug Session running.
    • Now removes user set '--gcflags' before passing the program to the debugger, since the debugger adds its own flags before building resulting in an error (Issue 117)
    • Fixed bug where the working directory passed in by the user is ignored (Issue 918)

Code Health

  • Debugging
    • Added additional tests for the debug adapter including for disconnect requests and remote attach scenarios (Issue 779, 790)
    • Added tests for the debug configuration to test the user settings that should affect the debug configuration
  • Improved the extension contributor experience by renaming the test fixtures folder to avoid errors being shown for these files
  • Language Server Tests
    • Changed the test environment setup to use single file edit (Issue 655, 832)
  • Adjusted home directory used in gerrit CI since recent changes in kokoro were restricting access (Issue 833)
  • Updated Github workflows actions/setup-go to v2
  • Restructured the goTest code to be more readable and easier to test
  • Continued to improve the gopls settings documentation generator (Issue 197)

Thanks

Thank you for your contribution, @pofl, @hyangah, @perrito666, @pjweinbgo, @quoctruong, @stamblerre, @skaldesh, and @suzmue!

Release 0.18.1

02 Nov 15:08
Compare
Choose a tag to compare

v0.18.1 - 30th Oct, 2020

A list of all issues and changes can be found in the v0.18.1 milestone.

Enhancement

  • New Go: extract language server logs to editor command was added (CL 263526).

Fixes

  • Fixed a bug that hid the Go status bar when there is no active text editor (Issue 831).

Thanks

Thank you for your contributions, @suzmue, @pjweinbgo!

🌟 See also v0.18.0 Release Note.

Release 0.18.0

23 Oct 21:06
Compare
Choose a tag to compare

v0.18.0 - 23rd Oct, 2020

Unified Go status UI ⚡, many debugger feature improvements, and LSP 3.16 features! A list of all issues fixed with this release can be found in the v0.18.0 milestone.

New Features

  • The new Go status bar provides a menu to manage the go version, open the gopls trace, open the go.mod file, and more. The old Go Modules status bar was removed in favor of this new unified status bar. See VS Code Go UI documentation to learn more about this.
  • New Go: Toggle gc details command toggles the display of compiler optimization choice for the open Go source file (CL 256658).
  • Upgraded LSP to 3.16. Users of recent gopls can access new features such as Call hierarchy and Semantic tokens.

Enhancement

  • Debugging:
    • Correctly presents the reason when the debugged program stops due to panic and fatal error (Issue 648).
    • Be explicit about conditional breakpoint support (Issue 781).
    • Debug Adapter logs all the environment variables passed to dlv when verbose logging is enabled.
  • Language Server Client: sends gopls config as LSP initialization options for correct workspace symbols computation (CL 259138).
  • Snippets: adds a placeholder for the for statement snippet (Issue 734).
  • Excludes vendor directories from go.inferGopath disable mechanism (Issue 301).
  • New go.logging.level setting allows extra logging to help debugging extension issues (CL 256557).
  • For Nightly extension users, Go: Show Survey Config and Go: Reset Survey Config commands are available.

Fixes

  • Fixed the bug that caused the debug adapter to leave bogus null items in the map type variable presentation (Issue 199).
  • Fixed several debug adapter bugs that caused remote debug to hang (Issue 740, 766, 761, 764).
  • Restored the correct handling of language server configuration change when users opt for enabling language server and installing gopls. (CL 258997).
  • Fixed a diagnostics error visualization issue when multiple files with errors are open (Issue 743).
  • Changed the dependency tool installation to use the go command chosen from the current GOROOT/bin. This helps avoid using a different version of go command for asdf or direnv users (Issue 757).

Documentation

  • Documented the current limitation of symlink support in debugging (CL 257204), improved the instruction for CLI application debugging (CL 259677), and fixed syntax errors in example task configuration snippets (CL 259077).

Code Health

  • Added an initial set of tests for debug adapters (Issue 137). We will keep working to improve our test coverage.

Thanks

Thank you for your contributions, @suzmue, @vologab, @amitlevy21, @danielhelfand, @egonk, @quoctruong, @polinasok, @pjweinbgo, @stamblerre, @hyangah!

Release 0.17.2

01 Oct 20:13
Compare
Choose a tag to compare

v0.17.2 - 29th Sep, 2020

Fixes

  • Fixed a regression caused by the change for Issue 679.
    If go is not found from PATH available to the extension, the extension tries
    a couple of well-known default locations to find the go binary. In this case, we
    need to mutate PATH so other tools includinggopls or dlv can choose the
    same go version. (Issue 713).

Release 0.17.1

29 Sep 16:30
Compare
Choose a tag to compare

v0.17.1 - 28th Sep, 2020

Enhancement

  • Mutate the PATH/Path environment variable only if users
    explicitly configure to select the go command using go.goroot,
    go.alternateTools, or Go: Choose Go Environment menu.
    (Issue 679)
  • Includes sanitized gopls crash traces in the automated gopls crash report.
    (CL 256878)

Fixes

  • Changed the default of go.coverMode to be default. (Issue 666)
  • Fixed a missing promise reject when go is not found. (Issue 660)

Thank you for reporting issues!

Release 0.17.0

18 Sep 14:48
Compare
Choose a tag to compare

Go code debugging and code coverage support is getting better.

The extension will help you stay updated with the new Go releases.

New Features

  • Delve's call feature is now accessible. To use this feature, explicitly specify the call command. E.g. call myAwesomeFunc(). It is an experimental feature in Delve. Please see the current limitations. (Issue 100)
  • The extension checks the go official download site and notifies users of newly available Go versions. When a newer version is available,
    Go Update Available status bar item will appear. This feature is available only if go.useGoProxyToCheckForToolUpdates
    is set true. (Issue 483)
  • The new go.coverMode setting allows to use different coverage modes (atomic, count, set (default)). go.coverShowCounts,
    go.coverageDecorator.{coveredBorderColor, uncoveredBorderColor} were newly added. We are still investigating better ways to visualize the count coverage data; feedback and contribution is welcome! (Issue 256,
    594)

Enhancement

  • Expands '~' in the cwd attribute of the launch configuration. (Issue 116)
  • Debug config's showGlobalVariables is disabled by default, and this change improves speed. You can still inspect the global
    variables by registering them in the WATCH section, or by configuring showGlobalVariables in launch.json. (Issue 138)
  • gofumpt, gofumports is added to recognized formatters list. (Issue 587)
  • Automatically restarts the language server if go.toolsEnvVars configuration is changed. (CL 254370)
  • Reports go env failures. (Issue 555)

Fixes

  • Fixed to use absolute file paths in error messages appearing in the DEBUG OUTPUT. This allows VS Code to locate the correct files.
    (Issue 456)
  • Fixed handling of absolute file paths in coverage profile, on windows. (Issue 553)
  • Changed to pass GOROOT when invoking the gopkgs tool so gopkgs continues to work with different go versions without being recompiled. (CL 254137)
  • Fixed to provide explicit directory for running go list and go version. (Issue 610,
    CL 253600, 253602)
  • Fixed to trigger extension activation when commands for diagnostics, such as Go: Locate Configured Go Tools are invoked. (Issue 457)
  • Fixed to prepend GOROOT/bin to integrated terminal's PATH environment variable when go.goroot is set on OS X. (Issue 544)
  • Fixed to correctly apply environment variables setting read from envFile in the launch configuration. We reworked how the environment variables configuration is processed during this cycle. Now the extension processes the envFile attribute instead of asking the debug adapter process to read the specified envFile. (Issue 452)
  • Disabled go.installDependenciesWhenBuilding by default. When this is enabled, the extension runs go commands with -i, which is no longer recommended with recent versions of Go. (Issue 568)
  • Fixed a bug where we are not sending back 'configuration done' response. (Issue eclipse-theia/theia#8455, CL 254959)

Documentation

Code Health

  • Removed the obsolete string-type coverageDecorator support. (Issue 519)
  • When gopls integration tests fail, tests print the observed gopls traces to help debugging.

Experimental Features

  • We plan to delegate computation of various run test CodeLenses to gopls. This experimental feature can be enabled with the following setting:
"go.useLanguageServer": true,
"gopls": {
	"codelens": { "test": true }
}

Thanks

Thank you for your contribution, @suzmue, @pjweinbgo, @ekulabuhov, @stamblerre, @tpbg, @FiloSottile, @findleyr, @quoctruong, @polinasok, @hyangah!

Release 0.16.2

02 Sep 22:02
Compare
Choose a tag to compare

Fixed

  • Fixed the compile error message parsing bug that prevented correct file name expansion in test output. (Issue 522).
  • Fixed the regression that caused to run tests in the local directory mode and
    result in more verbose output than the package list mode. (Issue 528).
  • Fixed "go.alternateTools" settings to accept any tool names without
    settings.json diagnostics warning. (Issue 526)