# microsoft/vscode-go

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/microsoft-vscode-go).**

5,897 stars · 641 forks · TypeScript · NOASSERTION · archived

## Links

- GitHub: https://github.com/microsoft/vscode-go
- awesome-repositories: https://awesome-repositories.com/repository/microsoft-vscode-go.md

## Description

This project is a Go language extension for VS Code that provides a comprehensive development environment through a language server client, a debugging interface, and a test automation runner. It integrates language intelligence, formatting, and debugging capabilities to support the full Go language development lifecycle.

The extension distinguishes itself by managing the Go toolchain, including the installation and configuration of external binaries required for language features. It also features a dedicated test automation interface that allows for the generation of unit test skeletons and the visualization of code coverage profiles directly within the editor.

The project covers a broad range of capabilities including static analysis for linting and vetting, symbol refactoring, and automated source code formatting. It provides tools for navigating packages and symbols, as well as utilities for interface stub generation and struct tag management. Interactive program debugging is supported through breakpoints and variable tracking.

## Tags

### Development Tools & Productivity

- [VS Code Extensions](https://awesome-repositories.com/f/development-tools-productivity/vs-code-extensions.md) — Provides a comprehensive Go language extension for the Visual Studio Code editor.
- [Code Completion](https://awesome-repositories.com/f/development-tools-productivity/code-completion.md) — Provides intelligent function, variable, and package suggestions with signature help and documentation tooltips. ([source](https://github.com/microsoft/vscode-go/blob/master/CHANGELOG.md))
- [Code Formatting Tools](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/static-analysis-engines/static-analysis-tools/code-formatting-tools.md) — Automatically organizes source code and manages imports using consistent style and formatting flags. ([source](https://github.com/microsoft/vscode-go/blob/master/CHANGELOG.md))
- [Debugging and Inspection Tools](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/debugging-inspection-tools/debugging-and-inspection-tools.md) — Provides interactive debugging with breakpoints, watch expressions, and variable tracking. ([source](https://github.com/microsoft/vscode-go/blob/master/CHANGELOG.md))
- [Editor-Integrated Debugging](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/debugging-inspection-tools/editor-integrated-debugging.md) — Integrates the Debug Adapter Protocol to map editor UI actions to the Delve backend for process inspection.
- [External Binary Lifecycle Managers](https://awesome-repositories.com/f/development-tools-productivity/external-binary-lifecycle-managers.md) — Manages the installation, updating, and path configuration of external Go tool binaries.
- [Go Debugging Utilities](https://awesome-repositories.com/f/development-tools-productivity/go-debugging-utilities.md) — Integrates a debugging interface with breakpoints and variable tracking for Go applications.
- [Language Server Clients](https://awesome-repositories.com/f/development-tools-productivity/language-server-clients.md) — Implements a language server client to connect the editor to the Go language server for advanced analysis.
- [LSP Clients](https://awesome-repositories.com/f/development-tools-productivity/lsp-clients.md) — Communicates with a separate language server process to provide autocomplete, navigation, and refactoring.
- [Static Code Linting](https://awesome-repositories.com/f/development-tools-productivity/static-code-linting.md) — Includes configurable linting and vetting tools to analyze source code for errors and style violations. ([source](https://github.com/microsoft/vscode-go/blob/master/CHANGELOG.md))
- [Symbol Navigation](https://awesome-repositories.com/f/development-tools-productivity/symbol-navigation.md) — Enables jumping to definitions, implementations, and type definitions across the workspace and module cache. ([source](https://github.com/microsoft/vscode-go/blob/master/CHANGELOG.md))
- [Code Refactoring Tools](https://awesome-repositories.com/f/development-tools-productivity/code-refactoring-tools.md) — Implements symbol refactoring capabilities such as extracting functions and renaming symbols across the project. ([source](https://github.com/microsoft/vscode-go/blob/master/CHANGELOG.md))
- [Path-Based Command Execution](https://awesome-repositories.com/f/development-tools-productivity/path-based-command-execution.md) — Wraps Go CLI commands in shell processes using workspace paths to perform formatting, linting, and testing.

### Programming Languages & Runtimes

- [Go Development Workflows](https://awesome-repositories.com/f/programming-languages-runtimes/go-development-workflows.md) — Provides a comprehensive development environment for Go including intelligence, formatting, and navigation.
- [Static Analysis Tools](https://awesome-repositories.com/f/programming-languages-runtimes/language-ecosystems-tooling/programming-environments-tooling/go-environments/static-analysis-tools.md) — Integrates a suite of static analysis tools for linting and vetting Go source code.
- [Toolchain Managers](https://awesome-repositories.com/f/programming-languages-runtimes/toolchain-managers.md) — Installs and configures the external binaries and compilers required for Go language features.
- [Program Execution](https://awesome-repositories.com/f/programming-languages-runtimes/program-execution.md) — Allows executing the current file or package using specific build flags and tags to verify output. ([source](https://github.com/microsoft/vscode-go/blob/master/CHANGELOG.md))

### Testing & Quality Assurance

- [Test Automation Interfaces](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/test-execution-orchestration/test-automation-interfaces.md) — Provides an integrated interface for executing unit tests and visualizing code coverage directly in the editor.
- [Unit Testing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/unit/unit-testing.md) — Provides comprehensive support for writing and running unit tests to verify Go code correctness.
- [Test Executions](https://awesome-repositories.com/f/testing-quality-assurance/test-executions.md) — Enables execution of specific test functions, files, or packages via code lens or commands. ([source](https://github.com/microsoft/vscode-go/blob/master/CHANGELOG.md))
- [Code Coverage Analysis](https://awesome-repositories.com/f/testing-quality-assurance/code-coverage-analysis.md) — Visualizes tested and untested code using editor decorations and gutter highlights based on coverage profiles. ([source](https://github.com/microsoft/vscode-go/blob/master/CHANGELOG.md))
- [Visual Coverage Mapping](https://awesome-repositories.com/f/testing-quality-assurance/code-coverage-analysis/coverage-exclusions/visual-coverage-mapping.md) — Parses Go coverage tool output to visualize line-specific execution counts through editor gutter decorations.
- [Automated Test Generators](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/execution-and-infrastructure/automated-test-generators.md) — Provides automated tooling to generate boilerplate unit test skeletons for functions and packages. ([source](https://github.com/microsoft/vscode-go/blob/master/CHANGELOG.md))

### Part of an Awesome List

- [Code Analysis and Refactoring](https://awesome-repositories.com/f/awesome-lists/devtools/code-analysis-and-refactoring.md) — Improves Go codebase structure through symbol renaming and function extraction.
- [Code Search and Navigation](https://awesome-repositories.com/f/awesome-lists/devtools/code-search-and-navigation.md) — Provides tools for searching and navigating available packages and files within the workspace and libraries. ([source](https://github.com/microsoft/vscode-go/blob/master/CHANGELOG.md))
