Skip to content

Releases: golang/vscode-go

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)

Release 0.16.1

06 Aug 13:17
Compare
Choose a tag to compare

Fixed

  • Fixed the bug that made test output verbose by default (Issue 471).
  • Fixed the extension host crash bug due to a process-wide uncaught exception handler accidentally installed along with the inlined debug adapter. This crash bug also caused connection drops when used with the VS Code Remote extension (Issue 467, 469).
  • Readded the predefined variable resolution support for go.goroot and go.toolsEnvVars (Issue 464, 413).

Release 0.16.0

03 Aug 15:07
Compare
Choose a tag to compare

v0.16.0 - 3rd Aug, 2020

This version requires VS Code 1.46+.

Older versions of VS Code will not receive updates any more.

New Features

  • Users can select/install a different version of Go with Go: Choose Go Environment command.
    When clicking the Go status bar that displays the currently active Go version, users will be prompted with the list of Go versions installed locally or available for download. This feature was built based on the golang.org/dl tools. The selected Go version applies to the workspace, takes precedence over the system default or the "go.goroot" and "go.alternateTools" settings, and persists across sessions. You can clear the choice by selecting the Clear Selection item.
    (Issue 253)
  • When the Go version changes, the extension prepends $GOROOT/bin to the PATH or Path environment variable which then applies the change to the integrated terminal windows.
  • This version includes an experimental version of the new Debug Adapter that uses Delve's native DAP implementation. It currently supports launch type requests in debug or test mode. This is still in the early stages and requires dlv built from its unreleased, master branch. Subscribe to golang/vscode-go#23 for updates.

Enhancement

  • Bundles the extension using webpack, which reduced the extension size (4.7MB -> 1MB) and the extension loading overhead (3.4K files -> 3 files) (Issue 53).
  • Go: Apply Cover Profile applies code coverage for multiple packages (CL 238697). We fixed bugs in processing coverage profiles on Windows.
  • Suggests the official Go download page when no go tool is found.
  • Utilizes the GOMODCACHE environment variable, introduced in Go 1.15.
  • Prevents multiple debug sessions from launching (Issue 109).
  • Streams test output when tests run with the -v option.
    This feature requires 1.14 or newer versions of Go (Issue 316).
  • Sets additionalProperties to false for the settings that don't expect more properties. This allows VS Code to handle these settings better in its new settings GUI (Issue 284).
  • Go: Locate Configured Go Tools includes go env results (Issue 195).
  • Avoids prompting users to switch the default format tool in modules mode if users enable the language server.

Fixed

  • Fixed the PATH environment variable adjustment when users use a wrapper as an alternate tool for go (CL 239697).
  • Fixed a bug in test output processing, which prevented VS code from linking test log messages with locations in the source file.
  • Fixed a gocode-gomod installation bug when GOPATH includes multiple directories (Issue 368).
  • Avoids attempting to kill already terminated processes (Issue 334).
  • Fixed godef to locate standard packages correctly by passing the GOROOT environment variable.
  • Fixed a golangci-lint integration bug that prevented displaying the lint results correctly when linters like nolintlint are enabled (Issue 411).
  • Fixed lost test function name arguments when running Go: Test Previous (Issue 269).

Code Health

  • Many enhancements to improve test reliability and test coverage were made during this dev cycle.
  • TryBot is enabled, and the test results are posted to Gerrit CL. Currently, only the internal team members can see the details of the test results, but we will continue working to make them public.
  • Windows tests are now fixed and enabled in GitHub Action-based CI.
  • Refactored code shared by the extension and the debug adapters to prevent accidental debug adapter breakages.
  • Updated json-rpc2 and lodash to address vulnerability reports from npm audit.

Thanks

Thank you for your contribution, fujimoto kyosuke, OneOfOne, Aditya Thakral, Oleg Butuzov, Rebecca Stambler, Peter Weinberger, Brayden Cloud, Eli Bendersky, Robert Findley, Hana Kim!

Release 0.15.2

22 Jul 15:33
Compare
Choose a tag to compare

Fixed

  • Do not fail tools installation when gocode is not already running (Issue 355).

dev.go2go.20200722

22 Jul 20:44
Compare
Choose a tag to compare

A version of vscode-go to work with the new generics prototype. See golang/go#39619 for full context.
This is an updated version of https://github.com/golang/vscode-go/releases/tag/20200616.

Release 0.15.1

08 Jul 00:56
Compare
Choose a tag to compare

Enhancement

  • Improved gopls error report suggestion and changed to send reports to the vscode-go issue tracker instead of the go issue tracker (cl/240506).

Fixed

  • Removed the preview note in the published extension (Issue 273).