Skip to content

Releases: golang/vscode-go

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).

Release 0.15.0

29 Jun 20:56
Compare
Choose a tag to compare

New Features

  • The new command Go: Subtest At Cursor runs an individual subtest if the subtest's name is a simple string (cl/235447).
  • The new setting go.trace.server controls tracing between VS Code and the language server (cl/232458). Unlike tracing using gopls flags, this controls client-side tracing, and does not require to restart the server to change the value. This client-side trace is presented in the gopls output channel. The server-side trace has been moved to the new gopls (server) output channel (cl/233598).
  • There is now a new Go version status bar item. Clicking it currently only pops up the current GOROOT. We plan to add Go version switch, and other features using this status bar item.

Enhancement

  • Go: Add Tags To Struct Fields prompts transform parameter input if the setting go.addTags.promptForTags is true (Issue 2546).
  • Go: Locate Go Tools command output includes the GOBIN value. (cl/235197).
  • Improved debugging experience
    • The debug adapter automatically infers the mapping between remote and local paths for easy remote debugging (cl/234020, Issue 45).
    • The debug adapter handles errors that can occur during remote connection setup (cl/237550, Issue 215).
    • Failed watch expression evaluation no longer pops up error message windows. The error is visible in the watch window instead (cl/236999, Issue 143).
  • Better language server integration
    • Restart the language server automatically when changes in its configuration or the language server version are detected (cl/232598 cl/233159).
    • Prompts user to file an issue if gopls crashes (cl/233325).
  • go.gopath, go.goroot, go.toolsGopath are now machine-overridable (cl/236539, Issue 2981).
  • The extension does not mutate the GOROOT environment variable any more. go.goroot is used to select the go command under the specified directory (Issue 146).
  • A redundant code action provider was removed when using the language server (cl/239284).

Fixed

  • Fixed gopls version detection and upgrade logic when pre-release versions are involved (cl/235524).
  • Processes started with Run > Run Without Debugging (^F5) are now cleaned up when the run sessions end (cl/236879).
  • When go.alternateTools.go is set, the path to $(go env GOROOT)/bin is passed to underlying tools to ensure they use the same go version (cl/239697).
  • Now the extension avoids invoking buggy pgrep on mac OS (cl/236538, Issue 90).

Code Health

  • More test coverage
    • Added new tests for gopls update logic (cl/233158), tools installation behavior (cl/233557).
    • Fixed Build Tags checking tests (cl/233517).
  • Upgraded dependencies including websocket-extensions from 0.1.3 to 0.1.4 (cl/228617, cl/236839, pr/3261).

Thanks

Thank you for your contribution, Brayden Cloud, Bulent Rahim Kazanci, Eli Bendersky, Hana Kim, Polina Sokolova, Quoc Truong, Rebecca Stambler, Rohan Talip, Ryan Koski, Sean Caffery, Ted Silbernagel, Vincent Jo, and codekid!

dev.go2go.20200616

16 Jun 22:18
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.

0.14.4

09 Jun 17:07
Compare
Choose a tag to compare

This is the first version published with golang publisher ID. This version is functionally identical to 0.14.3 except the following modifications.

  • Rebecca Stambler (@stamblerre)

    • Update documentation to reflect repository migration.
  • Hyang-Ah Hana Kim (@hyangah)

    • Remove old telemetry code.