[release] prepare v0.23.0 release

8da2809 utils/pathUtils: add the new installation paths for windows
cbb1479 src/goModules: check goVersion isn't null before using it
6c0bda2 package.json: configure the debug adapter from launch.json
481ae47 test/integration/goDebug.test.ts: include reasons for cwd test fail
d96dc45 test/integration/goDebug.test.ts: fix local variable assertion
7f1e239 build/all.bash: use delve at master for ci
516bf10 .github/workflows: use delve at master
7dd7f7a src/goLanguageServer: remove go-langserver deprecation warning
8f31447 test/integration/goDebug.test.ts: run existing debug tests on dlv dap
66e03b8 src/pickProcess: fix regexp to detect go versions with no patch version
7fcd3d2 eslint: Fix some eslint warnings
54602c5 src/debugAdapter: disable stackTrace error pop-ups
8272510 package.json: update logOutput documentation in launch config
5e19b9d .github/workflows: update go, node versions
30b086f src/goMain: use lint tool's name as the lint diagnostic collection name
e760407 src/goDebugConfiguration.ts: remove gcflags using regexp
150a6d3 package-lock.json: update gts/prettier locked versions
8c699ae build: run with a different version of go
526ef89 .github/workflows: remove macos-latest from test-long.yml
4a719c8 CHANGELOG.md: sync CHANGELOG.md with the one in the release branch
49d737e package.json: change version to v0.23.0-dev
f7b122c docs/advanced: add info about format/import
74e266b eslint: reformat files in src with gts fix and eslint comments
289e788 docs/debugging.md: update documentation for processId
c7086f8 src/goDebugFactory.ts: remove the "godlvdap" debug type
84a6b61 package.json: add disableConcurrentTests setting
4ef4f53 eslint: Change test files so eslint does not complain
d0777c4 .github/workflows: allow to run Long Tests outside the official repo
e8a2ba3 .github/workflows: add go1.16 test to Long Tests
64f7875 test/integration: use module mode for testing
ab62b6c test/testdata: add missing go.mod file for cwdTest
9233ebf .github/workflows: install gocode-gomod
02b5116 build/all.bash: install gocode-gomode
0dc8517 goLanguageServer: prompt user to fill out survey when they disable gopls
1a9e669 Revert ".github/workflows: run Long Tests with go1.16 rc1"
32a9f15 .github/workflows: run Long Tests with go1.16 rc1
95dc50c goLanguageServer: add logic to prompt users to opt back into gopls
48c4af1 src/pickProcess.ts: add attach by process name command
3ef8679 third_party/tree-kill: remove dependency on mocha
3525068 src/pickProcess.ts: use lsof to find process exes on darwin
3fa9b0f src/debugAdapter2: remove thin adapter for dlv-dap
0c6dce4 goLanguageServer: add special handling for incorrect flags
6a14cd3 package-lock.json: update package-lock.json to lockfile version 2
2e2c885 test: use CODE_VERSION for testing
7452751 test/runTest: add --force-disable-user-env
df853b9 src/goDebugFactory.ts: run dlv-dap as a server and connect as server
555b11b docs: fix broken links
feee65b src/goMain: fix the exception caused by invalid version string
df04ba2 test/runTest: use vscode 1.52.1
6c94bb8 src/goDebugConfiguration.ts: invoke pick process for local attach
f2fcdb1 src/goMain: correct showGoWelcomePage hard-coded version string
eb53a53 package.json: fix typos
ab0629e src/goLanguageServer: add platfom info in the automated issue report
2c40d20 goLanguageServer: disable the language server with SSH URIs
6841fe0 src/goMain: use a hard-coded version string for welcome page state
306da34 src/goLanguageServer: use isInPreviewMode to enable experiments
cf5ff5f docs/settings.md: replace the old gopls doc link with the new one
1ad5c33 src/goLanguageServer: protect language restart with mutex
30b7367 package-lock.json: update ini
55b2284 src/goLanguageServer: block until the language client is ready
3c08fec package.json: add dlv to alternateTools value list
05251dd README.md: add the new video material
46a15da src/utils/wmicProcessParser.ts: get exe path from wmic
aa02c3f src/pickProcess.ts: add linux cmd for go process
cfc3d4f src/goMain: linkify documentLink deprecation warning message
5d48c07 goLanguageServer: add extra information to automated error reports
aac9542 goLanguageServer: add an opt-in "always update" setting for gopls
17e80f5 src/pickProcess.ts: fix platform process commands
db2234c src/stateUtils.ts: add command to reset memento state
4d6ed04 src/pickProcess.ts: add pick process command for local attach
ad3a7d2 build: run docker with SYS_PTRACE capability
1534912 src/goDebug: check if delve exited before attempting to get state
5f88d61 docs: delete broken links about auto formatting
63d2287 src/welcome: correct link to Gophers Slack
9a4ca54 src/goLanguageServer.ts: fix suggestUpdateGopls documentation
76ce9ba docs: minor updates of features.md and troubleshooting.md

Change-Id: Id7dfedf1bc1be02f5418e9064d1fbf4a4a502a80
tree: 3d419a6763b1b7d1c3e1179e77809eae2cb6d80c
  1. .github/
  2. .vscode/
  3. build/
  4. docs/
  5. languages/
  6. media/
  7. snippets/
  8. src/
  9. syntaxes/
  10. test/
  11. third_party/
  12. tools/
  13. typings/
  14. .editorconfig
  15. .eslintignore
  16. .eslintrc.json
  17. .gitignore
  18. .prettierrc.js
  19. .prettierrc.json
  20. .vscodeignore
  21. CHANGELOG.md
  22. CODE_OF_CONDUCT.md
  23. LICENSE
  24. package-lock.json
  25. package.json
  26. README.md
  27. SECURITY.md
  28. tsconfig.json
  29. webpack.config.js
README.md

Go for Visual Studio Code

Slack

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

📣 Gopls, the official Go language server, is now enabled in VS Code by default. Gopls replaces several legacy tools to provide IDE features while editing Go code. See issue 1037 for more information.

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.

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.

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.

⚠️ 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 conduct@golang.org.

License

MIT