Essential VS Code Extensions for Go Developers: My Daily Toolkit

Introduction

As a Go developer, having the right set of Visual Studio Code extensions can dramatically boost your productivity, code quality, and overall development experience. Over time, I’ve curated a list of must-have extensions that streamline everything — from writing and formatting Go code to debugging, managing Git workflows, working with Protocol Buffers, and even catching bugs before they reach your pull requests. Below is the list of extensions I rely on daily, along with a brief overview of why each one earns a spot in my workflow. Whether you’re just starting with Go or you’re a seasoned Gopher, these tools will help you code faster, smarter, and with greater confidence.

My Go Development VS Code Extensions (Short List):

  1. Go — Official Go extension (IntelliSense, debugging, testing, gopls integration).
  2. GitLens — Supercharged Git history, blame, and code authorship insights.
  3. Git Graph — Visual Git history and branch management.
  4. Git History — Detailed log, file/line history, and commit comparisons.
  5. Buf — Enhanced Protocol Buffers editing (formatting, linting, navigation).
  6. Code Runner — Quick execution of Go files and snippets.
  7. CodeRabbit — AI-powered instant code reviews in the editor.
  8. Docker DX — Smarter Dockerfile and Compose editing with vulnerability checks.
  9. Error Lens — Inline display of errors and warnings for better visibility.
  10. GitHub Copilot — AI pair programmer for code suggestions and explanations.
  11. Postfix templates for Golang — Faster coding with postfix completions (e.g., .err.if).
  12. Prettier — Consistent formatting for JSON, Markdown, and other non-Go files.
  13. Material Icon Theme — Clean, modern file icons.
  14. Todo Tree — Highlights and organizes TODO/FIXME comments.
  15. Bookmarks — Navigate key code sections quickly.
  16. Code Spell Checker — Catches typos in comments and strings.
  17. Database Client — Query and manage databases (PostgreSQL, MySQL, SQLite, etc.).

These extensions — paired with Go-specific settings like formatOnSave and gopls—create a powerful, efficient Go development environment in VS Code.

Go in Visual Studio Code

Using the Go extension for Visual Studio Code, you get features like IntelliSense, code navigation, symbol search, testing, debugging, and many more that will help you in Go development.

Essential VS Code Extensions for Go Developers: My Daily Toolkit

You can install the Go extension from the VS Code Marketplace.

Watch “Getting started with VS Code Go” for an explanation of how to build your first Go application using VS Code Go.

This article describes only a subset of the features the Go extension provides. See the extension’s documentation for the full, up-to-date list of supported features.

IntelliSense

Essential VS Code Extensions for Go Developers: My Daily Toolkit

IntelliSense features are provided by the Go language server, gopls, maintained by the Go team. You can configure the behavior of gopls using the gopls settings.

Git Graph extension for Visual Studio Code

View a Git Graph of your repository, and easily perform Git actions from the graph. Configurable to look the way you want!

Essential VS Code Extensions for Go Developers: My Daily Toolkit

Git History, Search and More (including git log)

  • View and search git log along with the graph and details.
  • View a previous copy of the file.
  • View and search the history
  • View the history of one or all branches (git log)
  • View the history of a file
  • View the history of a line in a file (Git Blame).
  • View the history of an author
  • Compare:
  • Compare branches
  • Compare commits
  • Compare files across commits
  • Miscellaneous features:
  • Github avatars
  • Cherry-picking commits
  • Create Tag
  • Create Branch
  • Reset commit (soft and hard)
  • Reverting commits
  • Create branches from a commit
  • View commit information in a treeview (snapshot of all changes)
  • Merge and rebase

Open the file to view the history, and then Press F1 and select/type “Git: View History”, “Git: View File History” ,or “Git: View Line History”.

Buf for Visual Studio Code

The VS Code Buf extension helps you work with Protocol Buffers files in a much more intuitive way, adding smart syntax highlighting, navigation, formatting, documentation, diagnostic hovers, and integrations with Buf commands.

Features

  • Code navigation — Go-to definition and documentation insets for .proto symbols.
  • Syntax highlighting — Protobuf-specific color and styling of code.
  • Code editing — Formatting via buf format and annotations and hovers based on buf lint and buf breaking.
  • Documentation hovers — Documentation for definitions when hovering a reference.
  • Buf command support — Execution of buf CLI commands via the Command Palette.

Code Runner

Run code snippet or code file for multiple languages: C, C++, Java, JavaScript, PHP, Python, Perl, Perl 6, Ruby, Go, Lua, Groovy, PowerShell, BAT/CMD, BASH/SH, F# Script, F# (.NET Core), C# Script, C# (.NET Core), VBScript, TypeScript, CoffeeScript, Scala, Swift, Julia, Crystal, OCaml Script, R, AppleScript, Elixir, Visual Basic .NET, Clojure, Haxe, Objective-C, Rust, Racket, Scheme, AutoHotkey, AutoIt, Kotlin, Dart, Free Pascal, Haskell, Nim, D, Lisp, Kit, V, SCSS, Sass, CUDA, Less, Fortran, Ring, Standard ML, Zig, Mojo, Erlang, SPWN, Pkl, Gleam, and custom command

Essential VS Code Extensions for Go Developers: My Daily Toolkit

Spelling Checker for Visual Studio Code

A basic spell checker that works well with code and documents.

Functionality

Load a TypeScript, JavaScript, Text, etc. file. Words not in the dictionary files will have a squiggly underline.

Example

Essential VS Code Extensions for Go Developers: My Daily Toolkit

Suggestions

Essential VS Code Extensions for Go Developers: My Daily Toolkit

CodeRabbit: AI code reviews in your editor

AI coding tools let you write code 10x faster. But reviews still happen days later in PRs. CodeRabbit reviews your code instantly in VS Code, Cursor, and Windsurf — catching bugs before you even commit.

✨ Why CodeRabbit

  • Reviews in the IDE: No waiting for PR reviews. Get feedback on uncommitted changes as you code.
  • Works with your AI agent: One-click hand-off to Claude Code, Copilot, Cursor, or any coding agent to apply fixes.
  • Senior dev quality: Catches race conditions, security holes, and architectural issues — not just syntax errors.
  • Fix with AI: Review with CodeRabbit and pass to your coding agent in the same IDE, in one single click.
  • Full context with git integration: Connect your repository to access 40+ contextual sources, linters, security checks, and sandbox testing.
  • Language agnostic: Works with every programming language your team uses.

Container Tools for Visual Studio Code

The Container Tools extension makes it easy to build, manage, and deploy containerized applications from Visual Studio Code. It also provides one-click debugging of Node.js, Python, and .NET inside a container.

Essential VS Code Extensions for Go Developers: My Daily Toolkit

Database Client JDBC

This extension is a component of database-client, used to connect to the database through JDBC, such as IBM Db2, Hive, Presto, and Cassandra.

Essential VS Code Extensions for Go Developers: My Daily Toolkit

Bash beautify

A simple extension that just works for shell script formatting based on Paul Lutus — Bash Script Beautifier. The underlying script doesn’t do any syntax processing, hence it’s simple.

It’ll work with the default format keyboard binding when you edit a .sh file.

Bookmarks

It helps you to navigate your code, moving between important positions easily and quickly. No more need to search for code. It also supports a set of selection commands, which allow you to select bookmarked lines and regions between bookmarked lines. It’s really useful for log file analysis.

Here are some of the features that Bookmarks provides:

  • Mark/unmark positions in your code
  • Mark positions in your code and give it a name
  • Jump forward and backward between bookmarks
  • Icons in the gutter and overview ruler
  • See a list of all Bookmarks in one file and project
  • Select lines and regions with bookmarks
  • A dedicated Side Bar

Docker DX

The Docker DX (Developer Experience) Visual Studio Code extension enhances your Visual Studio Code experience with Docker-related development by adding rich editing features and vulnerability scanning.

Feature overview

Editing Dockerfiles

You can get linting checks from BuildKit and BuildX when editing your Dockerfiles.

Any references to images with vulnerabilities are also flagged. This is an experimental feature and may change in the future. Refer to our FAQ.md to see how you can opt in or out of these warnings.

Errors are visible directly in your editor or you can look at them by opening up the Problems panel (Ctrl+Shift+M on Windows/Linux, Shift+Command+M on Mac).

Essential VS Code Extensions for Go Developers: My Daily Toolkit

Editing Compose files

Code completion support in the Docker DX extension goes beyond just the Compose schema. The Docker DX extension understands the contextual link between your Compose file and your Dockerfile.

Essential VS Code Extensions for Go Developers: My Daily Toolkit

Compose files can get pretty big and complicated when you start including other files. Docker DX lets you hover over a reference to quickly see how something is defined.

Essential VS Code Extensions for Go Developers: My Daily Toolkit

Editing Bake files

You can get code completion when editing your docker-bake.hcl file. You are also able to hover over variables and navigate around the file by jumping to a variable's definition or jumping to the build stage within a Dockerfile.

Essential VS Code Extensions for Go Developers: My Daily Toolkit

The extension provides inline suggestions to generate a Bake target to correspond to each build stage in your Dockerfile.

Essential VS Code Extensions for Go Developers: My Daily Toolkit

Error Lens

ErrorLens turbo-charges language diagnostic features by making diagnostics stand out more prominently, highlighting the entire line wherever a diagnostic is generated by the language, and also prints the message inline.

Essential VS Code Extensions for Go Developers: My Daily Toolkit

Features

  • Highlight lines containing diagnostics
  • Append the diagnostic as text to the end of the line
  • Show icons in gutter
  • Show message in status bar

GitHub Copilot in VS Code

GitHub Copilot is an AI-powered coding assistant integrated into Visual Studio Code. It provides code suggestions, explanations, and automated implementations based on natural language prompts and existing code context. Copilot has been trained on public code repositories and can assist with most programming languages and frameworks.

GitLens — Supercharge Git in VS Code

Interactive Code History

Understanding who made changes, when, and why can be challenging. GitLens simplifies this with tools like the Commit Graph, Inspect, Inline Blame, and Hovers, giving you clear context and insights. Quickly explore your repository’s history with intuitive visuals and actionable tools.

Blame, CodeLens, and Hovers

Gain a deeper understanding of how code changed and by whom through in-editor code annotations and rich hovers.

Inline and Status Bar Blame

Provides historical context about line changes through unobtrusive blame annotation at the end of the current line and on the status bar.

Essential VS Code Extensions for Go Developers: My Daily Toolkit
Essential VS Code Extensions for Go Developers: My Daily Toolkit

💡 Use the Toggle Line Blame and Toggle Git CodeLens commands from the Command Palette to turn the annotations on and off.

Git CodeLens

Adds contextual and actionable authorship information at the top of each file and at the beginning of each block of code.

  • Recent Change — author and date of the most recent commit for the file or code block
  • Authors — number of authors of the file or code block and the most prominent author (if there is more than one)

Rich Hovers

Hover over blame annotations to reveal rich details and actions.

Essential VS Code Extensions for Go Developers: My Daily Toolkit

File Annotations

Use on-demand whole file annotations to see authorship, recent changes, and a heatmap. Annotations are rendered as visual indicators directly in the editor.

Essential VS Code Extensions for Go Developers: My Daily Toolkit
Essential VS Code Extensions for Go Developers: My Daily Toolkit
Essential VS Code Extensions for Go Developers: My Daily Toolkit

💡 On an active file, use the Toggle File Blame, Toggle File Changes, and Toggle File Heatmap commands from the Command Palette to turn the annotations on and off.

Postfix templates for Golang

Forked from vscode-postfix-go

Essential VS Code Extensions for Go Developers: My Daily Toolkit

Editing JSON with Visual Studio Code

JSON is a data format that is common in configuration files like package.json or project.json. We also use it extensively in Visual Studio Code for our configuration files. When opening a file that ends with .json, VS Code provides features to make it simpler to write or modify the file's content.

Essential VS Code Extensions for Go Developers: My Daily Toolkit

Material Icon Theme

Add lots of icons to Vscode Idea.

Essential VS Code Extensions for Go Developers: My Daily Toolkit

Prettier Formatter for Visual Studio Code

Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.

JavaScript · TypeScript · Flow · JSX · JSON
CSS · SCSS · Less
HTML · Vue · Angular HANDLEBARS · Ember · Glimmer
GraphQL · Markdown · YAML

Windsurf Plugin: Free AI-powered code acceleration toolkit

What is Windsurf?

Windsurf is the modern coding superpower, a free code acceleration toolkit built on cutting edge AI technology. The Windsurf VSCode Plugin provides autocomplete, chat, and search capabilities in 70+ languages, with lightning fast speeds and state-of-the-art suggestion quality.

With Windsurf, you get:

  • Unlimited single and multi-line code completions forever
  • IDE-integrated chat: no need to leave VSCode to ChatGPT, and use convenient suggestions such as Refactor and Explain
  • Support for 70+ programming languages: Javascript, Python, Typescript, PHP, Go, Java, C, C++, Rust, Ruby, and more.
  • Support through our Discord Community.

Todo Tree

This extension quickly searches (using ripgrep) your workspace for comment tags like TODO and FIXME, and displays them in a tree view in the activity bar. The view can be dragged out of the activity bar into the explorer pane (or anywhere else you would prefer it to be).

Clicking a TODO within the tree will open the file and put the cursor on the line containing the TODO.

Database Client

Database Management for MariaDB/SQLite, supports executing SQL.

Database client for Visual Studio Code, supports manager MySQL/MariaDB, PostgreSQL, SQLite, Redis, ClickHouse, Kafka, MongoDB, Snowflake, and ElasticSearch, and works as an SSH client, boost your maximum productivity!

Setting.json configuration

by pressing the keys shift+ctrl+p simultaneously.

jsonc
{  "http.proxy": "http://127.0.0.1:2080",  "workbench.iconTheme": "material-icon-theme",
"workbench.editor.enablePreview": false,
json
{
  "files.autoSave": "afterDelay",
  "files.autoSaveDelay": 10000
}
json
{
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.largeFileOptimizations": false,
  "editor.minimap.showSlider": "always",
  "editor.minimap.size": "fit"
}
json
{
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[json]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[go]": {
    "editor.defaultFormatter": "golang.go",
    "editor.formatOnSave": true
  }
}
json
{
  "git.autofetch": true
}
json
{
  "gitlens.ai.model": "vscode",
  "gitlens.ai.vscode.model": "claude-3-5-sonnet-20240620",
  "go.toolsManagement.autoUpdate": true
}
json
{
  "database-client.autoSync": true
}
json
{
  "security.workspace.trust.untrustedFiles": "open"
}
json
"explorer.confirmDelete": false,  "settingsSync.ignoredExtensions": []}

Shortcuts

  • Ctrl + K + Ctrl + 0: fold all levels (namespace, class, method, and block)
  • Ctrl + K + Ctrl + 1: namespace / @Component(For Angular)
  • Ctrl + K + Ctrl + 2: class / methods
  • Ctrl + K + Ctrl + 3: methods / blocks
  • Ctrl + K + Ctrl + 4: blocks / inner blocks
  • Ctrl + K + Ctrl + [ or Ctrl + k + ]: current cursor block
  • Ctrl + K + Ctrl + j: UnFold

It’s called “Folding” in VS Code. From docs:

Conclusion

With the right combination of VS Code extensions, Go development becomes faster, cleaner, and more enjoyable. The tools listed above cover every aspect of my workflow — from intelligent code completion and real-time linting to Git management, container support, AI-assisted reviews, and database access. While the official Go extension forms the core of the experience, the supporting extensions fill in the gaps to create a truly integrated and productive environment.

Feel free to pick and choose based on your needs, but even adopting a few of these can significantly level up your daily coding. Happy Go programming! 🚀