Go extension for VS Code

Related tags

Editor vscode-go
Overview

Go for Visual Studio Code

Slack

The VS Code Go extension provides rich language support for the Go programming language.

Quick Start

Welcome! πŸ‘‹πŸ»
Whether you are new to Go or an experienced Go developer, we hope this extension fits your needs and enhances your development experience.

  • Step 1. If you haven't done so already, install Go and the VS Code Go extension.
  • Step 2. To activate the extension, open any directory or workspace containing Go code. Once activated, the Go status bar will appear in the bottom left corner of the window and show the recognized Go version.
  • Step 3. The extension depends on a set of extra command-line tools. If they are missing, the extension will show the " ⚠️ Analysis Tools Missing" warning. Click the notification to complete the installation.


(Install Missing Tools)

You are ready to Go :-)    πŸŽ‰ πŸŽ‰ πŸŽ‰

Please be sure to learn more about the many features of this extension, as well as how to customize them. Take a look at Troubleshooting and Help for further guidance.

If you are new to Go, this article provides the overview on Go code organization and basic go commands. Watch "Getting started with VS Code Go" for an explanation of how to build your first Go application using VS Code Go.

Features

This extension provides many features, including IntelliSense, code navigation, and code editing support. It also shows diagnostics as you work and provides enhanced support for testing and debugging your programs. See the full feature breakdown for more details and to learn how to tune its behavior.


(Code completion and Signature Help)

In addition to integrated editing features, the extension provides several commands for working with Go files. You can access any of these by opening the Command Palette (Ctrl+Shift+P on Linux/Windows and Cmd+Shift+P on Mac), and then typing in the command name. See the full list of commands provided by this extension.


(Toggle Test File)

⚠️ Note: the default syntax highlighting for Go files is provided by a TextMate rule embedded in VS Code, not by this extension.

Tools

The extension uses a few command-line tools developed by the Go community. In particular, go, gopls, and dlv must be installed for this extension to work correctly. See the tools documentation for a complete list of tools the extension depends on.

In order to locate these command-line tools, the extension searches GOPATH/bin and directories specified in the PATH environment variable (or Path on Windows) with which the VS Code process has started. If the tools are not found, the extension will prompt you to install the missing tools and show the " ⚠️ Analysis Tools Missing" warning in the bottom right corner. Please install them by responding to the warning notification, or by manually running the Go: Install/Update Tools command.

Setting up your workspace

Go modules are how Go manages dependencies in recent versions of Go. Modules replace the GOPATH-based approach to specifying which source files are used in a given build, and they are the default build mode in go1.16+. While this extension continues to support both Go modules and GOPATH modes, we highly recommend Go development in module mode. If you are working on existing projects, please consider migrating to modules.

Unlike the traditional GOPATH mode, module mode does not require the workspace to be located under GOPATH nor to use a specific structure. A module is defined by a directory tree of Go source files with a go.mod file in the tree's root directory.

Your project may involve one or more modules. If you are working with multiple modules or uncommon project layouts, you will need to configure your workspace by using Workspace Folders. Please see this documentation about supported workspace layouts.

Customization

The extension needs no configuration and should work out of the box. However, you may wish to adjust settings to customize its behavior. Please see the settings documentation for a comprehensive list of settings. See advanced topics for further customizations and unique use cases.

Troubleshooting

If the extension isn't working as you expect, you can take a look at our troubleshooting guides. There is one for general troubleshooting, and another specifically for troubleshooting the debugging feature.

Ask for help

If the troubleshooting guides did not resolve the issue, please reach out to us by filing an issue, starting a GitHub discussion, or by asking a question in the Gophers Slack. We hang out in the #vscode channel!

Also, you can take a look at learn.go.dev and golang.org/help for more general guidance on using Go.

Preview version

If you'd like to get early access to new features and bug fixes, you can use the nightly build of this extension. Learn how to install it in by reading the Go Nightly documentation.

Contributing

We welcome your contributions and thank you for working to improve the Go development experience in VS Code. If you would like to help work on the VS Code Go extension, please see our contribution guide. It explains how to build and run the extension locally, and describes the process of sending a contribution.

Code of Conduct

This project follows the Go Community Code of Conduct. If you encounter a conduct-related issue, please mail [email protected].

License

MIT

Issues
  • debugAdapter: add tests for remote attach scenarios

    debugAdapter: add tests for remote attach scenarios

    Fixes golang/vscode-go#779 by:

    • A test program that spins up a server at http://localhost:8080 to return helloworld.
    • Adding 4 remote attach tests:
    1. Attaching to a headless instance of Delve running the program. This tests that the initialization sequence up to configuration done request is good.
    2. Attaching with a breakpoint already set. This tests that the breakpoint is hit when we hit the program's URL.
    3. Attaching without any breakpoint and set the breakpoint afterwards. This tests that the breakpoint is hit when we hit the program's URL.
    4. Test that the program still runs after we disconnect from it.
    cla: yes 
    opened by quoctruong 59
  • debugAdapter: Fix bugs that cause remote debug to hang

    debugAdapter: Fix bugs that cause remote debug to hang

    The issues being fixed in this PR:

    1. There are instances where we are issuing a blocking call to Delve while it is running. That blocks subsequent requests to Delve and can cause the debugger to appear as hanged. Hence, we will need to check Delve's debug state before issuing blocking request in stacktraceRequest and threadsRequest (fixes golang/vscode-go#740).

    2. When disconnecting, multiple requests disconnectRequest can be received. Subsequent disconnectRequest should not invoke Delve through the JSON RPC connection again as this may already be closed so we need to guard against that (fixes golang/vscode-go#766).

    3. Also, even if Delve is blocked in disconnectRequest, disconnectResponse should always be sent back to VSCode after a period of time. Otherwise, in the case of Theia in particular, users will not be able to reset (fixes golang/vscode-go#761).

    4. In close function of Delve class, we are not resolving a promise in the case of remote debugging and this causes the close function to hang and not send the disconnectResponse back (fixes golang/vscode-go#764).

    5. Add more logging to help us easily debug similar scenarios in the future (fixes golang/vscode-go#763).

    Repro

    1. Clones a Go program (for example: https://github.com/GoogleCloudPlatform/cloud-code-samples/tree/master/golang/go-hello-world).
    2. Runs the program in Delve through a terminal: dlv debug --continue --accept-multiclient --api-version=2 --headless --listen=:3456 --log
    3. Connect to it by creating a configuration:
            {
                "name": "Connect to server",
                "type": "go",
                "request": "attach",
                "mode": "remote",
                "remotePath": "${workspaceFolder}",
                "port": 3456,
                "host": "127.0.0.1",
                "cwd": "${workspaceFolder}"
            }
    
    1. Sets a breakpoint and sees that it's not working.
    2. Disconnecting also does not work.
    cla: yes release-blocker 
    opened by quoctruong 57
  • Frequent pop-up on save:

    Frequent pop-up on save: "Getting code actions: Go, Go, ..."

    Copied from https://github.com/microsoft/vscode-go/issues/3179:

    If you encounter this issue, please try the following steps to troubleshoot:

    1. Check your other installed extensions and see if disabling them but the Go extension helps. Go Group Imports, Spell Right, and Go Test Explorer have both been identified as causing slow saves.
    2. Your workspace may have errors which are causing gopls to be slow. Capture your gopls logs (instructions) and post them in a new issue (if you're able to share them). Detailed gopls logs are best, so please add -rpc.trace to go.languageServerFlags.

    For reference, this bug is referring to an error that appears like this:

    79361744-b837eb00-7f13-11ea-8bae-9683b4b61afc

    This issue consolidates https://github.com/microsoft/vscode-go/issues/3179, https://github.com/microsoft/vscode-go/issues/3063, https://github.com/microsoft/vscode-go/issues/3105, https://github.com/microsoft/vscode-go/issues/3141, https://github.com/microsoft/vscode-go/issues/3170, etc.

    upstream-tools 
    opened by stamblerre 53
  • package.json: add support for replay and core debug modes

    package.json: add support for replay and core debug modes

    New launch modes: replay and core

    The following modes are added:

    • replay: Replays an rr trace, allowing backwards flows (reverse continue and stepback). Requires a traceDirPath property on launch.json pointing to a valid rr trace directory. Equivalent to dlv replay <tracedir> command.
    • core: Replays a core dump file, showing its callstack and the file matching the callsite. Requires a coreFilePath property on launch.json pointing to a valid coredump file. Equivalent to dlv core <exe> <corefile> command.

    With the new dap service, most of the heavy work will go to delve, so this PR mainly involves getting around passing the corresponding launchArgs to delve. ItΒ΄s service counterpart lies on https://github.com/go-delve/delve/pull/2367

    Fixes #168 Fixes #1243 Updates #110

    cla: yes 
    opened by lggomez 44
  • src/goTestExplorer: implement a test provider for the new test api

    src/goTestExplorer: implement a test provider for the new test api

    What this does:

    • Implements a test provider using the new API
    • Populates the test explorer with a list of modules and/or workspaces
    • Populates each module/workspace/package/file as it is expanded
    • Creates test entries for the current file, and package/module parents
    • Runs tests!

    What this does not:

    • Debug tests
    • Handle stretchr suites

    Issues:

    • Handling of benchmarks isn't great. But I'm not sure it can get much better without changes to go test.
    • If a test has subtests, I add those subtests. This can get annoying if you have a bunch of subtests. Should this be configurable? Disabling testing.followRunningTest can improve this UX.

    Fixes golang/vscode-go#1579

    cla: yes 
    opened by firelizzard18 42
  • debug: abiltiy to debug with root privileges

    debug: abiltiy to debug with root privileges

    Add ability to debug with Delve with sudo flag. Similar as it it done for Python: https://code.visualstudio.com/docs/python/debugging#_sudo

    It is needed to debug modules that require root access, i.e. gopacket/pcap to capture traffic.

    Debug 
    opened by dzvancuks 35
  • debug: use Delve's DAP implementation

    debug: use Delve's DAP implementation

    Delve supports debug adapter protocol natively (dlv dap). https://github.com/go-delve/delve/tree/master/service/dap

    Implement the debug feature using it and deprecate the dlv wrapper (src/debug/goDebug.ts).

    @polinasok @quoctruong @ramya-rao-a

    Debug FrozenDueToAge 
    opened by hyangah 33
  • debugAdapter: add go module name check

    debugAdapter: add go module name check

    This change modifies the extension to check for the go module name matching before setting a breakpoint. The bug this is trying to address (summed up by @hyangah):

    In the go-guestbook sample, there are two go programs (frontend/main.go and backend/main.go). They will start in separate containers - each of which builds main.go by copying the code into a work directory and running go build there. The frontend and the backend happen to be in different modules in this sample.

    VS Code supports debugging two binaries together - a user can set breakpoints in both frontend/main.go and backend/main.go. VS Code by design sends breakpoint requests for all the files to all the debug adapters.

    Since we cannot make any assumption on where the source code is copied in the remote container (i.e. in the sample, frontend/main.go is copied to /app/frontend/main.go, but it's also possible that the user just copy the source code to /app and build the binary from /app), the debug adapter tries to find the best match by doing some sort of longest suffix matching.

    So, this longest suffix matching will end up associating /app/frontend/main.go on the remote frontend container with both frontend/main.go and backend/main.go in this specific example. As a result, the breakpoints set in backend/main.go will apply to the frontend/main.go.

    cla: yes 
    opened by quoctruong 32
  • debug: implement new prototype thin DA for delve

    debug: implement new prototype thin DA for delve

    Updates golang/vscode-go#23

    This DA serves as a DAP proxy between the editor and a DAP-capable Delve. Right now all it does is launch Delve (in DAP mode) when LaunchRequest is received from the editor, and then relays all messages between the editor and Delve back and forth.

    package.json section is copied from the current DA as-is. Some of its options will be removed and cleaned up in the subsequent PRs to make the diffs more obvious (see golang/vscode-go#271).

    cla: yes 
    opened by eliben 32
  • debug: support

    debug: support "console" property in launch.json (RunInTerminal)

    From https://github.com/microsoft/vscode-go/issues/843

    Please support "console" Property in launch.json, which have "none", "integratedTerminal", "externalTerminal" three Value like python's, and I can debug my go project at outside console and also support standard input.

    This feature request has a lot of upvotes https://github.com/microsoft/vscode-go/issues/843, please follow the discussion there for more context and user scenarios where this feature would be relevant

    FeatureRequest Debug 
    opened by ramya-rao-a 29
  • Testing API

    Testing API

    Does vscode-go intend to implement/participate in the new Testing API for VSCode? I am the author of Go Test Explorer, which integrates with the Test Explorer UI.

    If and when this extension implements the Testing API, I will retire my extension.

    FeatureRequest NeedsInvestigation 
    opened by firelizzard18 27
  • Environment Variable interpolation in settings.json

    Environment Variable interpolation in settings.json

    Describe the problem VSCode does not resolve env vars in settings.json - this is left for extensions to implement themselves. For example, in the following ${env:BAR} will not be replaced:

    # .vscode/settings.json
    {
    "go.testEnvVars": {
      "FOOBAR": "foo ${env:BAR}"
     },
    }
    

    Describe the solution you'd like Strings of the form ${env:FOOBAR} should be replaced with the environment variable value.

    Describe alternatives you've considered You'd think this should be implemented in VSCode but that's not going to happen. See https://github.com/microsoft/vscode/issues/2809 and https://github.com/microsoft/vscode/pull/148514

    I'm happy to contribute if there is agreement that this should be added.

    opened by hrobertson 0
  • variable view won't expand this nested map ...

    variable view won't expand this nested map ...

    What version of Go, VS Code & VS Code Go extension are you using?

    Version Information
    • Run go version to get version of Go from the VS Code integrated terminal.
      • go version go1.18.3 darwin/arm64
    • Run gopls -v version to get version of Gopls from the VS Code integrated terminal.
      • Build info

    golang.org/x/tools/gopls v0.9.1 golang.org/x/tools/[email protected] h1:SigsTL4Hpv3a6b/a7oPCLRv5QUeSM6PZNdta1oKY4B0= github.com/BurntSushi/[email protected] h1:dtDWrepsVPfW9H/4y7dDgFc2MBUSeJhlaDtK13CxFlU= github.com/google/[email protected] h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= github.com/sergi/[email protected] h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= golang.org/x/exp/[email protected] h1:qyrTQ++p1afMkO4DPEeLGq/3oTsdlvdH4vqZUBWzUKM= golang.org/x/[email protected] h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= golang.org/x/[email protected] h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/[email protected] h1:rm+CHSpPEEW2IsXUib1ThaHIjuBVZjxNgSKmBLFfD4c= golang.org/x/[email protected] h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/[email protected] h1:Ljlba2fVWOA1049JjsKii44g8nZN2GjpxMlzVc8AnQM= golang.org/x/[email protected] h1:r5bbIROBQtRRgoutV8Q3sFY58VzHW6jMBYl48ANSyS4= honnef.co/go/[email protected] h1:ytYb4rOqyp1TSa2EPvNVwtPQJctSELKaMyLfqNP4+34= mvdan.cc/[email protected] h1:kTojdZo9AcEYbQYhGuLf/zszYthRdhDNDUi2JKTxas4= mvdan.cc/xurls/[email protected] h1:tzxjVAj+wSBmDcF6zBB7/myTy3gX9xvi8Tyr28AuQgc= go: go1.18.3

    • Run code -v or code-insiders -v to get version of VS Code or VS Code Insiders.

      • 1.69.2 3b889b090b5ad5793f524b5d1d39fda662b96a2a arm64
    • Check your installed extensions to get the version of the VS Code Go extension

      • v0.35.1
    • Run Ctrl+Shift+P (Cmd+Shift+P on Mac OS) > Go: Locate Configured Go Tools command.

      • Checking configured tools.... GOBIN: undefined toolsGopath: gopath: /Users/ncohen/go GOROOT: /usr/local/go PATH: /Users/ncohen/fauna/google-cloud-sdk/bin:/Users/ncohen/fauna/ops/util/cache/dependencies/hashicorp/bin:/Users/ncohen/fauna/ops/bin:/Users/ncohen/miniconda3/bin:/Users/ncohen/miniconda3/condabin:/Users/ncohen/.asdf/shims:/opt/homebrew/opt/asdf/libexec/bin:/Users/ncohen/fauna/backup-restore-functions/node_modules/.bin:/Users/ncohen/go/bin:/Users/ncohen/bin:/Users/ncohen/.deno/bin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/usr/local/go/bin

      go: /usr/local/go/bin/go: go version go1.18.3 darwin/arm64

      gotests: /Users/ncohen/go/bin/gotests (version: v1.6.0 built with go: go1.18) gomodifytags: /Users/ncohen/go/bin/gomodifytags (version: v1.16.0 built with go: go1.18) impl: /Users/ncohen/go/bin/impl (version: v1.1.0 built with go: go1.18) goplay: /Users/ncohen/go/bin/goplay (version: v1.0.0 built with go: go1.18) dlv: /Users/ncohen/go/bin/dlv (version: v1.9.0 built with go: go1.18.3) staticcheck: /Users/ncohen/go/bin/staticcheck (version: v0.2.2 built with go: go1.18) gopls: /Users/ncohen/go/bin/gopls (version: v0.9.1 built with go: go1.18.3)

    go env Workspace Folder (ops/): /Users/ncohen/fauna/ops

    Share the Go related settings you have added/edited

    Run Preferences: Open Settings (JSON) command to open your settings.json file. Share all the settings with the go. or ["go"] or gopls prefixes.

      "go.toolsManagement.autoUpdate": true,
      "[go]": {
        "editor.defaultFormatter": "golang.go"
      },
    

    Describe the bug

    I can't get the debugger view to expand certain values ... The nested map shown below shows length 2 but I can't see the other key/value ...

    image

    Steps to reproduce the behavior:

    1. Try to debug a deeply nested response from the faunadb driver
    opened by breathe 0
  • No icon for go.sum.work file

    No icon for go.sum.work file

    Is your feature request related to a problem? Please describe.

    image

    Describe the solution you'd like A clear and concise description of what you want to happen.

    Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

    Additional context version: v0.35.1

    opened by islishude 0
  • vscode locks on storage.json on ubuntu 22.04 when a new folder is opened

    vscode locks on storage.json on ubuntu 22.04 when a new folder is opened

    What version of Go, VS Code & VS Code Go extension are you using?

    Version Information
    • Run go version to get version of Go from the VS Code integrated terminal.
    $go version
    go version go1.18 linux/amd64
    
    • Run gopls -v version to get version of Gopls from the VS Code integrated terminal.
    $gopls -v version
    Build info
    ----------
    golang.org/x/tools/gopls v0.9.1
        golang.org/x/tools/[email protected] h1:SigsTL4Hpv3a6b/a7oPCLRv5QUeSM6PZNdta1oKY4B0=
        github.com/BurntSushi/[email protected] h1:dtDWrepsVPfW9H/4y7dDgFc2MBUSeJhlaDtK13CxFlU=
        github.com/google/[email protected] h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o=
        github.com/sergi/[email protected] h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
        golang.org/x/exp/[email protected] h1:qyrTQ++p1afMkO4DPEeLGq/3oTsdlvdH4vqZUBWzUKM=
        golang.org/x/[email protected] h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s=
        golang.org/x/[email protected] h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
        golang.org/x/[email protected] h1:rm+CHSpPEEW2IsXUib1ThaHIjuBVZjxNgSKmBLFfD4c=
        golang.org/x/[email protected] h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
        golang.org/x/[email protected] h1:Ljlba2fVWOA1049JjsKii44g8nZN2GjpxMlzVc8AnQM=
        golang.org/x/[email protected] h1:r5bbIROBQtRRgoutV8Q3sFY58VzHW6jMBYl48ANSyS4=
        honnef.co/go/[email protected] h1:ytYb4rOqyp1TSa2EPvNVwtPQJctSELKaMyLfqNP4+34=
        mvdan.cc/[email protected] h1:kTojdZo9AcEYbQYhGuLf/zszYthRdhDNDUi2JKTxas4=
        mvdan.cc/xurls/[email protected] h1:tzxjVAj+wSBmDcF6zBB7/myTy3gX9xvi8Tyr28AuQgc=
    go: go1.18
    
    • Run code -v or code-insiders -v to get version of VS Code or VS Code Insiders.
    VS Code version: Code - Insiders 1.70.0-insider (1259bfe0090ac90afbf5d53335c43761de6bb19f, 2022-08-02T05:49:33.165Z)
    OS version: Linux x64 5.15.0-41-generic
    Modes:
    
    |Item|Value|
    |---|---|
    |CPUs|AMD Ryzen 9 5950X 16-Core Processor (32 x 2200)|
    |GPU Status|2d_canvas: unavailable_software<br>canvas_oop_rasterization: disabled_off<br>direct_rendering_display_compositor: disabled_off_ok<br>gpu_compositing: disabled_software<br>multiple_raster_threads: enabled_on<br>opengl: disabled_off<br>rasterization: disabled_software<br>raw_draw: disabled_off_ok<br>skia_renderer: enabled_on<br>video_decode: disabled_software<br>video_encode: disabled_software<br>vulkan: disabled_off<br>webgl: unavailable_software<br>webgl2: unavailable_software|
    |Load (avg)|0, 1, 1|
    |Memory (System)|62.71GB (17.26GB free)|
    |Process Argv|--disable-gpu --user-data-dir /home/ymo/3rdp/dev/vscode/wspace/code-insider-pf-go/data --extensions-dir /home/ymo/3rdp/dev/vscode/wspace/code-insider-pf-go/extensions --crash-reporter-id da3b3803-c43d-46d0-b343-c2d7550834e4|
    |Screen Reader|no|
    |VM|0%|
    |DESKTOP_SESSION|i3|
    |XDG_CURRENT_DESKTOP|i3|
    |XDG_SESSION_DESKTOP|i3|
    |XDG_SESSION_TYPE|x11|
    
    • Check your installed extensions to get the version of the VS Code Go extension Extension|Author (truncated)|Version
    go|gol|0.35.1
    cuelang|nic|0.0.1
    material-theme|zhu|3.15.2
    
    • Run Ctrl+Shift+P (Cmd+Shift+P on Mac OS) > Go: Locate Configured Go Tools command.
    Checking configured tools....
    GOBIN: /home/ymo/3rdp/dev/golang/releases/golatest-packages/bin
    toolsGopath: 
    gopath: /home/ymo/3rdp/dev/golang/releases/golatest-packages
    GOROOT: /home/ymo/3rdp/dev/golang/releases/golatest
    PATH: /home/ymo/3rdp/dev/golang/releases/golatest/bin:/home/ymo/3rdp/dev/golang/releases/golatest-packages/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
    
    	go:	/home/ymo/3rdp/dev/golang/releases/golatest/bin/go: go version go1.18 linux/amd64
    
    	gotests:	/home/ymo/3rdp/dev/golang/releases/golatest-packages/bin/gotests	(version: v1.6.0 built with go: go1.18)
    	gomodifytags:	/home/ymo/3rdp/dev/golang/releases/golatest-packages/bin/gomodifytags	(version: v1.16.0 built with go: go1.18)
    	impl:	/home/ymo/3rdp/dev/golang/releases/golatest-packages/bin/impl	(version: v1.1.0 built with go: go1.18)
    	goplay:	/home/ymo/3rdp/dev/golang/releases/golatest-packages/bin/goplay	(version: v1.0.0 built with go: go1.18)
    	dlv:	/home/ymo/3rdp/dev/golang/releases/golatest-packages/bin/dlv	(version: v1.9.0 built with go: go1.18)
    	staticcheck:	/home/ymo/3rdp/dev/golang/releases/golatest-packages/bin/staticcheck	(version: v0.3.3 built with go: go1.18)
    	gopls:	/home/ymo/3rdp/dev/golang/releases/golatest-packages/bin/gopls	(version: v0.9.1 built with go: go1.18)
    
    go env
    Workspace Folder (case-002): /home/ymo/3rdp/dev/vscode/support/case-002
    	GO111MODULE=""
    	GOARCH="amd64"
    	GOBIN="/home/ymo/3rdp/dev/golang/releases/golatest-packages/bin"
    	GOCACHE="/home/ymo/.cache/go-build"
    	GOENV="/home/ymo/.config/go/env"
    	GOEXE=""
    	GOEXPERIMENT=""
    	GOFLAGS=""
    	GOHOSTARCH="amd64"
    	GOHOSTOS="linux"
    	GOINSECURE=""
    	GOMODCACHE="/home/ymo/3rdp/dev/golang/releases/golatest-packages/pkg/mod"
    	GONOPROXY="github.com/unnug"
    	GONOSUMDB="github.com/unnug"
    	GOOS="linux"
    	GOPATH="/home/ymo/3rdp/dev/golang/releases/golatest-packages"
    	GOPRIVATE="github.com/unnug"
    	GOPROXY="https://proxy.golang.org,direct"
    	GOROOT="/home/ymo/3rdp/dev/golang/releases/golatest"
    	GOSUMDB="sum.golang.org"
    	GOTMPDIR=""
    	GOTOOLDIR="/home/ymo/3rdp/dev/golang/releases/golatest/pkg/tool/linux_amd64"
    	GOVCS=""
    	GOVERSION="go1.18"
    	GCCGO="gccgo"
    	GOAMD64="v1"
    	AR="ar"
    	CC="gcc"
    	CXX="g++"
    	CGO_ENABLED="1"
    	GOMOD="/dev/null"
    	GOWORK=""
    	CGO_CFLAGS="-g -O2"
    	CGO_CPPFLAGS=""
    	CGO_CXXFLAGS="-g -O2"
    	CGO_FFLAGS="-g -O2"
    	CGO_LDFLAGS="-g -O2"
    	PKG_CONFIG="pkg-config"
    	GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build3139709138=/tmp/go-build -gno-record-gcc-switches"
    

    Share the Go related settings you have added/edited

    Run Preferences: Open Settings (JSON) command to open your settings.json file. Share all the settings with the go. or ["go"] or gopls prefixes.

      // go settings
      "go.useLanguageServer": true,
    
      "[go]": {
        "editor.tabSize": 2,
        "editor.insertSpaces": true,
    
        // "editor.snippetSuggestions": "none",
    
        "editor.formatOnSave": true,
        "editor.codeActionsOnSave": {
          "source.organizeImports": true
        },
    
    		"editor.rulers": [
    			{
    				"column": 80,
    				"color": "#2d3764",
    			}
    		]
      },
    

    Describe the bug

    This really feels like a concurrency bug on the file system

    This is how i run vscode

      export GOROOT="/home/ymo/3rdp/dev/golang/releases/golatest"
      export GOPKGS="/home/ymo/3rdp/dev/golang/releases/golatest-packages"
      export GOPATH="${GOPKGS}"
      export GOBIN="${GOPATH}/bin"
      export PATH="${GOROOT}/bin:${GOBIN}:${HTSHELL2X_PATH}"
    
      strace -DD -qq -e trace=file -o /home/ymo/3rdp/dev/vscode/wspace/code-insider-pf-go/logs/code-insiders.trace \
        /home/ymo/3rdp/dev/vscode/releases/code-insider-latest/code-insiders \
        --verbose \
        --user-data-dir \
        /home/ymo/3rdp/dev/vscode/wspace/code-insider-pf-go/data \
        --extensions-dir \
        /home/ymo/3rdp/dev/vscode/wspace/code-insider-pf-go/extensions \
         | tee /home/ymo/3rdp/dev/vscode/wspace/code-insider-pf-go/logs/code-insiders.verbose.log ${@} 
    
    

    The expectation was that i should be able to open a new window

    I am attaching the strace and verbose log i was able to attain. I hope someone can see why this locsk contention is happening

    Steps to reproduce the behavior:

    The problem is that there is so far no easy way to reproduce this bug. It always happens agter i open a new folder but i cant tell when or how to reproduce it consistently :-(

    WaitingForInfo 
    opened by ymolists 6
  • gopls: automated issue report (initialization)

    gopls: automated issue report (initialization)

    gopls version: v0.9.1 (go1.18.4) gopls flags: -remote=auto -logfile=auto -debug=:0 -rpc.trace update flags: proxy extension version: 2022.7.2516 go version: 1.18.4 environment: Visual Studio Code win32 initialization error: Error: Pending response rejected since connection got disposed issue timestamp: Mon, 01 Aug 2022 10:00:47 GMT restart history: Mon, 01 Aug 2022 10:00:22 GMT: activation (enabled: true)

    ATTENTION: PLEASE PROVIDE THE DETAILS REQUESTED BELOW.

    Describe what you observed.

    Please attach the stack trace from the crash. A window with the error message should have popped up in the lower half of your screen. Please copy the stack trace and error messages from that window and paste it in this issue.

    Failed to auto-collect gopls trace: no gopls log.

    OPTIONAL: If you would like to share more information, you can attach your complete gopls logs.

    NOTE: THESE MAY CONTAIN SENSITIVE INFORMATION ABOUT YOUR CODEBASE. DO NOT SHARE LOGS IF YOU ARE WORKING IN A PRIVATE REPOSITORY.

    <OPTIONAL: ATTACH LOGS HERE>

    WaitingForInfo 
    opened by lxqan2010 0
Releases(v0.35.1)
  • v0.35.1(Jul 19, 2022)

  • v0.35.0(Jul 18, 2022)

    v0.35.0 - 18 July, 2022

    A list of all issues and changes can be found in the v0.35.0 milestone and commit history.

    Features

    • This release adds support for inlay hints (Issue 1631).

    inlayhings-new

    • Add logic to support ${workspaceFolderBasename} substitution in extension settings (Issue 2310).
    • Add support for multi-file test suite (Issue 1130).
    • Add support for custom formatters.

    Bug Fix

    • Fixed (Issue 2339) that prevented updating delve on arm64 Macs.

    Thanks

    Thank you for your contribution, @hyangah, @nirhaas, @bentekkie, @jamalc, and @suzmue.

    Source code(tar.gz)
    Source code(zip)
    go-0.35.0.vsix(755.58 KB)
  • v0.35.0-rc.3(Jul 14, 2022)

    • Milestone: https://github.com/golang/vscode-go/issues?q=milestone%3Av0.35.0

    • Commits: https://github.com/golang/vscode-go/compare/v0.34.1...v0.35.0-rc.1

    • How to test prerelease

      • Download the .vsix file from this Releases page.
      • Navigate to the Extensions view in VS Code (Ctrl+Shift+X). Click on the "..." in the top-right corner, select "Install from VSIX", and select the .vsix file you downloaded. Alternatively, you can run code --install-extension Go-latest.vsix or open the Command Palette and run the "Extensions: Install from VSIX..." command.
      • If prompted, reload VS Code.
    Source code(tar.gz)
    Source code(zip)
    go-0.35.0-rc.3.vsix(755.59 KB)
  • v0.34.1(Jun 30, 2022)

  • v0.34.1-rc.2(Jun 29, 2022)

    • Milestone: https://github.com/golang/vscode-go/issues?q=milestone%3Av0.34.1

    • Commits: https://github.com/golang/vscode-go/compare/v0.34.0...v0.34.1-rc.1

    • How to test prerelease

      • Download the .vsix file from this Releases page.
      • Navigate to the Extensions view in VS Code (Ctrl+Shift+X). Click on the "..." in the top-right corner, select "Install from VSIX", and select the .vsix file you downloaded. Alternatively, you can run code --install-extension Go-latest.vsix or open the Command Palette and run the "Extensions: Install from VSIX..." command.
      • If prompted, reload VS Code.
    Source code(tar.gz)
    Source code(zip)
    go-0.34.1-rc.2.vsix(753.69 KB)
  • v0.34.0(Jun 21, 2022)

    v0.34.0 - 22 June, 2022

    This release adds support for LSP 3.17 and requires Visual Studio Code 1.67+.

    Features

    This release includes improvements to the Go: Run Vulncheck (Experimental) command (Issue 2185, 2186, 2214). Use it to find security issues in your dependencies.

    Documentation

    Documentation for vscode-go can now be found on the wiki (Issue 2094).

    Thanks @thediveo for updating the debugging documentation!

    Bug Fixes

    TestMain(m *testing.M) is no longer treated as a test (Issue 482, 2039)

    Code Health

    • Enabled strict type checking (Issue 57)
    • Updated release notes generation script to improve release process automation
    • Fixed bugs in testing

    Thanks

    Thank you for your contribution, @hyangah, @jamalc, @polinasok, @suzmue, @thediveo, and @dle8!

    Source code(tar.gz)
    Source code(zip)
    go-0.34.0.vsix(753.54 KB)
  • v0.34.0-rc.2(Jun 17, 2022)

    • Milestone: https://github.com/golang/vscode-go/issues?q=milestone%3Av0.34.0

    • Commits: https://github.com/golang/vscode-go/compare/v0.33.1...v0.34.0-rc.2

    • How to test prerelease

      • Download the .vsix file from this Releases page.
      • Navigate to the Extensions view in VS Code (Ctrl+Shift+X). Click on the "..." in the top-right corner, select "Install from VSIX", and select the .vsix file you downloaded. Alternatively, you can run code --install-extension Go-latest.vsix or open the Command Palette and run the "Extensions: Install from VSIX..." command.
      • If prompted, reload VS Code.
    Source code(tar.gz)
    Source code(zip)
    go-0.34.0-rc.2.vsix(753.55 KB)
  • v0.34.0-rc.1(Jun 10, 2022)

    • Milestone: https://github.com/golang/vscode-go/issues?q=milestone%3Av0.34.0

    • Commits: https://github.com/golang/vscode-go/compare/v0.33.1...v0.34.0-rc.1

    • How to test prerelease

      • Download the .vsix file from this Releases page.
      • Navigate to the Extensions view in VS Code (Ctrl+Shift+X). Click on the "..." in the top-right corner, select "Install from VSIX", and select the .vsix file you downloaded. Alternatively, you can run code --install-extension Go-latest.vsix or open the Command Palette and run the "Extensions: Install from VSIX..." command.
      • If prompted, reload VS Code.
    Source code(tar.gz)
    Source code(zip)
    go-0.34.0-rc.1.vsix(753.37 KB)
  • v0.33.1(May 24, 2022)

  • v0.33.1-rc.1(May 24, 2022)

    • Milestone: https://github.com/golang/vscode-go/issues?q=milestone%3Av0.33.1

    • Commits: https://github.com/golang/vscode-go/compare/v0.33.0...v0.33.1-rc.1

    • How to test prerelease

      • Download the .vsix file from this Releases page.
      • Navigate to the Extensions view in VS Code (Ctrl+Shift+X). Click on the "..." in the top-right corner, select "Install from VSIX", and select the .vsix file you downloaded. Alternatively, you can run code --install-extension Go-latest.vsix or open the Command Palette and run the "Extensions: Install from VSIX..." command.
      • If prompted, reload VS Code.
    Source code(tar.gz)
    Source code(zip)
    go-0.33.1-rc.1.vsix(728.63 KB)
  • v0.33.0(May 2, 2022)

    v0.33.0 - 1 May 2022

    πŸ“£ Remote attach debugging is now available via Delve's native DAP implementation with Delve v1.7.3 or newer. It is now the default with the Go Nightly and will become the default for the stable releases in mid 2022.

    Changes

    • staticcheck: if go 1.16.x or older is used in installing tools, the extension chooses [email protected]. In order to use the latest version of staticcheck while working on projects that require older versions of go, you can utilize the "go.toolsManagement.go" setting to specify a newer version of go for tool installation. (Issue 2162)

    • go-outline: go-outline is no longer required when gopls (v0.8.2+) is used.

    • Activation: the extension defers commands and feature provider registrations until it runs go version and go env, and starts gopls. This change prevent the extension prematually export its features, but may result in a slight increase in extension activation time if those commands run slow.

    • Survey: we show the Gopls opt-out survey prompt only when users change the setting to disable gopls.

    • Test Explorer: fixed a bug in go.mod file parsing (Issue 2171)

    • Debugging: we removed the informational popup at the start of remote attach session with dlv-dap. (Issue 2018)

    Experimental features

    This version includes two highly experimental features. They are still in early stage and we are looking forward to hearing more user feedback.

    https://user-images.githubusercontent.com/4999471/166291768-b7a78776-6fe5-4e4c-afa5-4db44cfced96.mov

    (Demo: Using the Go Explorer view UI to quickly change GOOS setup)

    • Go: Run Vulncheck (Experimental) command: it runs the govulncheck command embedded in gopls, which identifies known vulnerabilities by call graph traversal and module dependency analysis. (Issue 2096)

    Thanks

    @jamalc, @polinasok, @dlipovetsky, @vladdoster, @suzmue, @hyangah

    Source code(tar.gz)
    Source code(zip)
    go-0.33.0.vsix(728.25 KB)
  • v0.32.0(Mar 8, 2022)

    v0.32.0 - 8 Mar, 2022

    This version includes features to enhance Go 1.18 support. It works best when paired with the latest Go Language Server (gopls v0.8.0+) and Delve (dlv v1.8.0+).

    Go 1.18 introduces substantial changes to the language spec, so many tools need rebuilding with Go 1.18 or newer. The extension now suggests updates of tools if it finds they were built with old versions of go which are inadequate for the version used for the project. If you opted in for auto-update, tools will be auto-updated.

    In order to use Go 1.18, please follow the instruction to configure your Visual Studio Code to locate the right go binary, and run the Go tools using the "Go: Install/Update Tools" command.

    A list of all issues and changes can be found in the v0.32.0 milestone and commit history.

    Changes

    • Starting with Go 1.18, the go command provides native support for multi-module workspaces, via go.work files. The new "Open 'go.work'" option in the Go status bar's quickpick menu allows users to access the corresponding go.work file. go work short

    • The extension no longer depends on gopkgs. Its use for "Go: Browse Packages" and "Go: Add Import" commands had been replaced with go list or commands in gopls. (Issue 258)

    • The extension uses gopls instead of go-outline if gopls v0.8.0 or newer is used. We plan to complete the replacement work in the next release. (Issue 1020)

    • The new "go.toolsManagement.go" setting allows users to specify the Go command for tools installation/updates separate from the Go command used for the project.

    • The latest gopls requires go 1.13+ for installation, so the extension no longer asks for gopls updates when an older versions of go is used. (Issue 2030) Note gopls compiled with go 1.13 or newer can still process projects that use go 1.12. In case, you want to update gopls while working with an older version of Go, utilize the new "go.toolsManagement.go" setting.

    • Reduced the verbosity of "Go: Locate Configured Go Tools" output.

    Code Health

    • Updated to [email protected] (CVE-2021-23566).
    • Deflaked debug tests.
    • Changed to check go.dev/dl instead of golang.org/dl for Go release.
    • Improved documentation for the default formatting behavior and template support.

    Thanks

    @jamalc @suzmue @pavlelee @dekimsey @hyangah

    Source code(tar.gz)
    Source code(zip)
    go-0.32.0.vsix(761.49 KB)
  • v0.31.1(Feb 9, 2022)

  • v0.31.0(Jan 26, 2022)

    v0.31.0 - 26 Jan, 2022

    A list of all issues and changes can be found in the v0.31.0 milestone and commit history.

    Fixes

    • src/goStatus: assign id/name to each status bar item (Issue 1571)
    • Change go template file language id to gotmpl (Issue 1957)

    Debugging

    Test Explorer

    • src/goTest: don't resolve tests in virtual files
    • src/goTest: fix output for subtests (Issue 1837)

    Development Process Updates

    • Recommend that contributers use npm ci instead of npm install when developing vscode-go (Issue 2010)
    • test: use @vscode/test-electron instead of vscode-test
    • go.mod: update imports to latest versions
    • package.json: pin direct dependencies (Issue 2010)
    • Enable tests with go1.18beta1 (Issue 1950)

    Thanks

    Thank you for your contribution, @firelizzard18, @hyangah, @jamalc, @polinasok, @TheNagaPraneeth, @suzmue!

    Source code(tar.gz)
    Source code(zip)
    go-0.31.0.vsix(759.87 KB)
  • v0.30.0(Dec 16, 2021)

    v0.30.0 - 16 Dec, 2021

    πŸ“£ Remote attach debugging is now available via Delve's native DAP implementation with Delve v1.7.3 or newer. We plan to enable this as the default in early 2022 to enhance remote debugging with the same debugging features that are already in use for local debugging. We recommend switching your remote attach configurations in launch.json to use "debugAdapter":"dlv-dap" now to verify that this works for you. Please file a new issue if you encounter any problems.

    Full list of all issues and changes can be found in the v0.30.0 milestone and commit history.

    Changes

    • Debugging

      • dlv-dap is pinned at @2f136727.
      • Remote debugging support using dlv-dap is available.
        Please follow the instruction to enable remote debugging using dlv-dap. (Issue 1861)
      • Launch configuration:
      • Runtime frames are no longer deemphasized. (Issue 1916)
      • Logpoints support is available. (Issue 123)
      • DEBUG CONSOLE accepts the new dlv command that allows users to dynamically inspect/adjust debug configuration. Please run dlv help from DEBUG CONSOLE to see the list of supported options.
      • Bug fixes:
        • Correctly infer mode for attach requests. (Issue 1929)
        • Stop debugging when delve remote connection ends in legacy remote debugging. (CL 366936)
        • Allow users to debug with older versions of dlv-dap. (Issue 1814)
    • Enabled Go template file processing. (Issue 609) By default, files with .tmpl and .gotmpl extension are treated as Go template files.

    • Include Fuzz* functions in Testing UI and adds test codelens. (Issue 1794)

    • gofumports is pinned at v0.1.1. We plan to remove it from the recognized formatter tool list since gofumports is officially deprecated early next year.

    • Disabled separate linting if gopls's 'staticcheck' is enabled. (Issue 1867)

    • Updated the in-editor user survey URL. (CL 360775)

    • Limited Go file search scope for extension activation (Issue 1894)

    • Code Health

      • Enabled esModuleInterop. (CL 349170)
      • Bumped TS target to ES2017. (Issue 1712)
      • Updated json-schema to 0.4.0

    Thanks

    Thank you for your contribution, @polinasok, @suzmue, @firelizzard18, @hashedhyphen, @fengwei2002, @devuo, @fflewddur, @hyangah

    Source code(tar.gz)
    Source code(zip)
    go-0.30.0.vsix(742.53 KB)
  • v0.29.0(Oct 27, 2021)

    v0.29.0 - 26 Oct, 2021

    A list of all issues and changes can be found in the v0.29.0 milestone and commit history.

    Changes

    • Prompt users for the 2021 Go Developer survey. go.survey.prompt is a new setting to control survey prompts.
    • Use go install for tools installation when using go1.16+. From go1.18, go get will no longer build/install tools. See the deprecation notice. (Issue 1825) The extension runs go install from the workspace root directory, and the old workaround for Issue 757 is unnecessary.
    • Language Server:
      • Print all GOPATHs when there are multiple GOPATHs. (Issue 1848)
      • Synced settings @ gopls/v0.7.3
    • "Go: Generate Interface Stubs" allows '-' as an acceptable char for interface names. (Issue 1670)
    • Test UX: pprof
    • Debug:
      • Added showLog/logOutput/dlvFlags to go.delveConfig setting that change the default values for them. (Issue 1723)
      • Handle directory with '.' in its name correctly and warn users for invalid program (Issue 1826, 1769)

    Thanks

    Thank you for your contribution, @firelizzard18, @Zamiell, @mislav, @polinasok, @hyangah, @stamblerre, @suzmue, and @yinheli!

    Source code(tar.gz)
    Source code(zip)
    go-0.29.0.vsix(739.22 KB)
  • v0.28.1(Sep 24, 2021)

  • v0.28.0(Sep 20, 2021)

    v0.28.0 - 16 Sep, 2021

    This version requires VS Code 1.59 or newer.

    πŸŽ‰πŸ§ͺ The extension implements the Testing API of VS Code. You can navigate and run/profile tests using the test explorer UI! Windows support and further work for better profiling and debugging support through the test explorer is underway. Please give it a try and provide feedback.

    A list of all issues and changes can be found in the v0.28.0 milestone and commit history.

    Changes

    • Require VS Code engine 1.59+.
    • Implement the Testing API (Issue 1579). The test provider discovers all Go tests and benchmarks including stretchr test suits (Issue 1641) and sub-tests (Issue 1641). You can adjust behavior with the go.testExplorer.* settings.
    • Offer basic profiling support through the testing API. (Issue 1685)
    • Debugging
      • Allow to connect to a Delve DAP server running on a different host using host and port launch properties. (Issue 1729)
      • Disabled check for active debug session (Issue 1710). This will allow to run multiple debug sessions simultaneously.
      • Disabled the go version check by supplying the --check-go-version=false delve flag (Issue 1716). This is to allow users of older versions of Go to debug using Delve DAP which requires Delve 1.6.1 or newer. If you need to use Delve 1.6.0 or older, please use the legacy debug adapter.
      • Fixed a legacy debug adapter's bug that broke remote debugging when breakpoints were set in irrelevant files. (Issue 1762)
      • Added the new FAQs section.
    • Removed tools version check hack that triggerred unnecessary warnings about go and tools version mismatch issues (Issue 1698).
    • Export an API with which other extensions can query the location of go tools. (Issue 233)
    • Fixed regexps for test function names (CL 344130).
    • Track the language server's restart history and include it in the automated gopls crash report (CL 344130).
    • Code Health

    Thanks

    Thank you for your contribution, @nlepage, @180909, @polinasok, @stamblerre , and @suzmue! Special thanks to @firelizzard18 for the Test Explorer work!

    Source code(tar.gz)
    Source code(zip)
    go-0.28.0.vsix(735.43 KB)
  • v0.27.2(Sep 1, 2021)

    v0.27.2 - 1st Sep, 2021

    A list of all issues and changes can be found in the v0.27.2 milestone and commit history.

    Enhancement

    • Supports replay and core debug launch modes. (PR 1268)
    • gopls now watches changes in go.work files to support Go Proposal 45713.

    Fixes

    • Fixed issues around building binaries for debugging when symlinks or case-insensitive file systems are involved. (Issues 1680, 1677, 1713)
    • Clarified the dlvLoadConfig setting is no longer necessary with the new debug adapter (dlv-dap). (CL 344370)
    • Increased the timeout limit from 5sec to 30sec. If dlv-dap still fails to start, please check firewall/security settings do not prevent installation or execution of the dlv-dap (or dlv-dap.exe) binary. (Issue 1693)
    • Go: Install/Update Tools command picks the dlv-dap from the main branch.

    Thanks

    Thanks for your contributions, Suzy Mueller, Luis Gabriel Gomez, Polina Sokolova, Julie Qiu, and Hana Kim!

    Source code(tar.gz)
    Source code(zip)
    go-0.27.2.vsix(1.05 MB)
  • v0.27.2-rc.1(Aug 31, 2021)

  • v0.27.1(Aug 12, 2021)

    v0.27.1 - 12 Aug, 2021

    ✨ See the new features and update in v0.27.0 (Release Note)

    A list of all issues and changes in v0.27.1 can be found in the v0.27.1 milestone and commit history.

    Enhancement

    • Supports replay and core debug launch modes. (PR 1268)

    Fixes

    • Fixed process pickers used in attach mode debugging. (Issue 1679)
    • Fixed the failure of debugging when CGO_CFLAGS is set. (Issue 1678)
    • Fixed the dlv-dap installation issue. (Issue 1682)

    Thanks

    Thanks for your contributions, Luis Gabriel Gomez, Suzy Mueller, and Hana Kim!

    Source code(tar.gz)
    Source code(zip)
    go-0.27.1.vsix(1.05 MB)
  • v0.27.1-rc.1(Aug 12, 2021)

  • v0.27.0(Aug 9, 2021)

    v0.27.0 - 9 Aug, 2021

    πŸ“£ Delve's native DAP implementation (dlv-dap) is enabled by default for local debugging. We updated the Documentation for Debugging to show the new features available with dlv-dap. This change does not apply to remote debugging yet. For remote debugging, keep following the instruction in the legacy debug adapter documentation.

    A list of all issues and changes can be found in the v0.27.0 milestone and [commit history](A list of all issues and changes can be found in the v0.26.0 milestone and commit history.

    Enhancements

    Fixes

    • Debugging
      • Setting the logOutput property without showLog: true does not break debugging any more.
      • Fixed a bug in the legacy debug adapter that caused jumping at each step after upgrading to VS Code 1.58+. (Issue 1617, 1647)
      • Fixed a bug that broke Attach mode debugging using the legacy debug adapter if cwd is not set. (Issue 1608)
      • Made the dlv-dap mode ignore the port property. It was initially suggested as a temporary alternative to the remote debugging, but we decided to revisit the functionality for better remote debugging support. Use the debugServer property if you want to connect to a manually launched dlv dap server.

    Code Health

    • The version of dlv-dap is pinned to v1.7.1-0.20210804080032-f95340ae1bf9 and dlv-dap is marked as a required tool.
    • Updated the hard-coded default gopls version string to v0.7.1.
    • Added tools/relnotes, a script to help generate CHANGELOG.md.
    • Added go1.17 RC to CI. (Issue 1640)
    • Enabled tests that were skipped in dlv-dap mode since dlv-dap reached feature parity.
    • Use StackOverflow as the channel for Q&A.

    Thanks

    Thank you for your contribution, Ahmed W, Hana, Michael Currin, Polina Sokolova, Rebecca Stambler, Suzy Mueller, and Sven Efftinge!

    Source code(tar.gz)
    Source code(zip)
    go-0.27.0.vsix(1.05 MB)
  • v0.27.0-rc.3(Aug 9, 2021)

  • v0.27.0-rc.2(Aug 6, 2021)

  • v0.27.0-rc.1(Aug 5, 2021)

  • v0.26.0(Jun 17, 2021)

    V0.26.0 - 17 Jun, 2021

    πŸ“£ Delve's native DAP implementation is now available for use. In order to use this new debug adapter (dlv-dap) when debugging Go programs, add the following settings in your settings.json:

        "go.delveConfig": {
            "debugAdapter": "dlv-dap",
        },
    

    dlvdap-install

    Please learn more about the new adapter's features and configuration parameters, and share your feedback and report the issues in our issue tracker.

    A list of all issues and changes can be found in the v0.26.0 milestone and commit history.

    Enhancements

    • dlv-dap is ready for use in local debugging.
    • Added the new "Go: Test Function At Cursor or Test Previous" command. (PR 1509)
    • "Go: Add Imports" command uses gopls instead of gopkg. This requires [email protected] or newer. (Go Issue 43351)

    Fixes

    • Fixed "Go: Lint Workspace" that failed no editor is active. (Issue 1520)
    • Fixed gopls crash caused by Untitled files. (Issue 1559)

    Thanks

    Thanks for your contributions, @mislav, @marwan-at-work, @findleyr, @lggomez, @fflewddur, @suzmue, @hyangah!

    Source code(tar.gz)
    Source code(zip)
    go-0.26.0.vsix(1.02 MB)
  • v0.25.1(May 25, 2021)

    v0.25.1 - 24 May, 2021

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

    Fixes

    • Change the default path separator to / when applying substitutePath debug configuration. (Issue 1497)
    • Warn users when go.goroot setting is used. (Issue 1501)

    Enhancements

    • Update to latest version of dlv-dap. Some of newest additions to dlv dap include optimized function detection, exception info, pause, function breakpoints while running, evaluate over hover, set variables. Documentation of current features and limitations can be found in the documentation.
    • Adjusted feedback survey prompt probability.

    Thanks

    Thanks for the contribution, @suzmue, @fflewddur!

    Source code(tar.gz)
    Source code(zip)
    go-0.25.1.vsix(1.02 MB)
  • v0.25.0(May 12, 2021)

    v0.25.0 - 12 May, 2021

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

    If you have a feature requests for this extension, please file it through the github issue tracker.

    Enhancements

    • Update to latest version of dlv-dap. Documentation of current features and limitations can be found in the documentation
    • Add debug previous command (Issue 798)
    • Add Go: Initialize go.mod command to run go mod init in the current workspace folder (Issue 1449)
    • Use program in debug configuration to determine mode in auto (Issue 1422)
    • Auto update dlv-dap if autoUpdates enabled (Issue 1404)
    • Set editor.suggest.snippetsPreventQuickSuggestions to false by default to enable code completion and quick suggestions inside a snippet (Issue 839)

    Fixes

    • Set the GOROOT to the user specified GOROOT in go.goroot
    • Fixed missing file bug in debug adapter (Issue 1447)
    • Fixed inconsistent workpsaceFolder value bug in debug configuration (Issue 1448)
    • Allow dlv-dap to shut down gracefully and clean up debugged process (Issue 120)

    Thanks

    Thank you for your contribution, @hyangah, @JadenSimon, @stamblerre, @polinasok, @rfindley, and @suzmue!

    Source code(tar.gz)
    Source code(zip)
    go-0.25.0.vsix(1.02 MB)
Owner
Go
The Go Programming Language
Go
VS Code code snippet generator

VS Code code snippets generator.

Randy 61 May 9, 2022
Source code editor written in Go using go-gtk bindings. It aims to handle navigation effectively among large number of files.

tabby Source code editor written in Go using go-gtk bindings. It aims to handle navigation effectively among large number of files. screenshot: depend

Mikhail Trushnikov 49 Dec 30, 2021
A Golang plugin collection for SublimeText 3, providing code completion and other IDE-like features.

GoSublime Intro GoSublime is an IDE-like plugin for Sublime Text 3 mainly, but not limited to, providing integration for most of your Go/Golang develo

null 3.4k Jul 21, 2022
Test your code without writing mocks with ephemeral Docker containers πŸ“¦ Setup popular services with just a couple lines of code ⏱️ No bash, no yaml, only code πŸ’»

Gnomock – tests without mocks ??️ Spin up entire dependency stack ?? Setup initial dependency state – easily! ?? Test against actual, close to product

Yury Fedorov 881 Aug 7, 2022
:triangular_ruler:gofmtmd formats go source code block in Markdown. detects fenced code & formats code using gofmt.

gofmtmd gofmtmd formats go source code block in Markdown. detects fenced code & formats code using gofmt. Installation $ go get github.com/po3rin/gofm

po3rin 90 Apr 3, 2022
octocov is a tool for collecting code metrics (code coverage, code to test ratio and test execution time).

octocov is a tool for collecting code metrics (code coverage, code to test ratio and test execution time).

Ken’ichiro Oyama 94 Jul 27, 2022
sail is an operation framework based on Ansible/Helm. sail follows the principles of Infrastructure as Code (IaC), Operation as Code (OaC), and Everything as Code. So it is a tool for DevOps.

sail δΈ­ζ–‡ζ–‡ζ‘£ sail is an operation framework based on Ansible/Helm. sail follows the principles of Infrastructure as Code (IaC), Operation as Code (OaC),a

Bougou Nisou 10 Dec 16, 2021
Carbon for Golang, an extension for Time

Carbon A simple extension for Time based on PHP's Carbon library. Features: Time is embedded into Carbon (provides access to all of Time's functionali

Uniplaces LTD 719 Jul 25, 2022
Theia Go Extension

Theia Go Extension An extension for the Theia-IDE to support the Go language, using the Go language server. Getting started Install nvm. curl -o- http

theia-ide 16 Nov 14, 2021
kubequery is a Osquery extension that provides SQL based analytics for Kubernetes clusters

kubequery powered by Osquery kubequery is a Osquery extension that provides SQL based analytics for Kubernetes clusters kubequery will be packaged as

Uptycs Inc 73 Jul 30, 2022
Clojure-esque extension language for Go.

let-go Greetings loafers! (Ξ»-gophers haha, get it?) This is supposed to be a compiler and bytecode VM for a language resembling Clojure as close as po

Marcin Gasperowicz 41 Jun 6, 2022
Client extension for interacting with Kubernetes clusters from your k6 tests.

⚠️ This is a proof of concept As this is a proof of concept, it won't be supported by the k6 team. It may also break in the future as xk6 evolves. USE

k6 17 Aug 4, 2022
βš™οΈ A k6 extension for Tarantool

xk6-tarantool This is a k6 extension using the xk6 system. ❗ This is a proof of concept, isn't supported by the k6 team, and may break in the future.

Sergey Kononenko 7 Jan 20, 2022
Worker failover support for PostgreSQL Citus extension using pg_auto_failover.

citus-failover Worker failover support for citus community version using pg_auto_failover. What is this? This is a simple service to monitor changes i

Navid Zarepak 22 Aug 3, 2022
Lambda Extension for iamlive

iamlive Lambda Extension The iamlive Lambda Extension helps generate a least-privilege IAM policy by monitoring the AWS calls made within the Lambda e

Ian Mckay 33 May 26, 2022
Kubernetes OS Server - Kubernetes Extension API server exposing OS configuration like sysctl via Kubernetes API

KOSS is a Extension API Server which exposes OS properties and functionality using Kubernetes API, so it can be accessed using e.g. kubectl. At the moment this is highly experimental and only managing sysctl is supported. To make things actually usable, you must run KOSS binary as root on the machine you will be managing.

Mateusz Gozdek 3 May 19, 2021
k6 prometheus output extension

xk6-prometheus A k6 extension implements Prometheus HTTP exporter as k6 output extension. Using xk6-prometheus output extension you can collect metric

IvΓ‘n Szkiba 34 Jul 23, 2022
General Pod Autoscaler(GPA) is a extension for K8s HPA, which can be used not only for serving, also for game.

Introduction General Pod Autoscaler(GPA) is a extension for K8s HPA, which can be used not only for serving, also for game. Features Compatible with a

Open Cloud-native Game-application Initiative 14 Aug 6, 2022
Standalone client for proxies of Windscribe browser extension

windscribe-proxy Standalone Windscribe proxy client. Younger brother of opera-proxy. Just run it and it'll start a plain HTTP proxy server forwarding

null 44 Jul 29, 2022
An extension for the GitHub Cli application that displays your current contribution graph

gh-graph An extension for the GitHub Cli application that displays your current contribution graph in the terminal (logged out contribution graph) Ins

Benjamin Chadwick 14 Sep 29, 2021
An extension for discordgo to create a Discord bot quickly using the Builder pattern.

botbuilder An extension for discordgo to create a Discord bot quickly using the Builder pattern. Example usage: package main import ( "log" "os"

baka da yo 5 Apr 15, 2022
Small gh extension that suggests issues to work on in a given GitHub repository

gh contribute being a gh extension for finding issues to help with in a GitHub repository. This extension suggests an issue in a given repository to w

Nate Smith 23 Jul 27, 2022
entviz is an ent extension that provides visualization of the schema graph

entviz entviz is an ent extension that creates visual graph (html file) of your ent's schema. install go get github.com/hedwigz/entviz add this exten

Amit Shani 75 Jul 9, 2022
being a gh extension that runs animated terminal "screensavers"

gh-screensaver being a gh extension that runs animated terminal "screensavers" usage gh screensaver run a random screensaver gh screensaver -s pipes r

Nate Smith 114 Jul 27, 2022
extension of SMx crypto support for go standard lib

Crypto Extension support of China crypto standards for go lib. You can simply copy and replace them to [your_go_src_path]/crypto Use as vendor is alte

null 4 Dec 3, 2021
gh extension for bumping version of a repository

gh bump a gh extension for bumping version of a repository. Usage gh bump with another repository. gh bump -R <repository> Installation gh extension

null 35 Jul 29, 2022
a gh extension that prints out an oblique strategy

gh-oblique being a gh extension that prints one of the oblique strategies install gh extension install vilmibm/gh-oblique run $ gh oblique Be dirty.

Nate Smith 9 Jul 11, 2022
A plugin for running Open Policy Agent (OPA) in AWS Lambda as a Lambda Extension.

opa-lambda-extension-plugin A custom plugin for running Open Policy Agent (OPA) in AWS Lambda as a Lambda Extension. To learn more about how Lambda Ex

GoDaddy 23 May 10, 2022
PolarDB-X Operator is a Kubernetes extension that aims to create and manage PolarDB-X cluster on Kubernetes.

GalaxyKube -- PolarDB-X Operator PolarDB-X Operator is a Kubernetes extension that aims to create and manage PolarDB-X cluster on Kubernetes. It follo

null 63 Jul 27, 2022