{
  "slug": "Essential-VS-Code-Extensions-for-Go-Developers--My-Daily-Toolkit-5604c0bbaf85",
  "title": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
  "subtitle": "As a Go developer, having the right set of Visual Studio Code extensions can dramatically boost your productivity, code quality.",
  "excerpt": "As a Go developer, having the right set of Visual Studio Code extensions can dramatically boost your productivity, code quality.",
  "date": "2025-10-25",
  "tags": [
    "Star",
    "Go"
  ],
  "readingTime": "11 min",
  "url": "https://medium.com/@mobinshaterian/essential-vs-code-extensions-for-go-developers-my-daily-toolkit-5604c0bbaf85",
  "hero": "https://cdn-images-1.medium.com/max/800/1*IoyJ2AVlVYBAj-U25dE-3Q.png",
  "content": [
    {
      "type": "heading",
      "level": 2,
      "text": "Essential VS Code Extensions for Go Developers: My Daily Toolkit"
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Introduction"
    },
    {
      "type": "paragraph",
      "html": "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."
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/1*IoyJ2AVlVYBAj-U25dE-3Q.png",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 1024,
      "height": 1024
    },
    {
      "type": "heading",
      "level": 2,
      "text": "My Go Development VS Code Extensions (Short List):"
    },
    {
      "type": "list",
      "ordered": true,
      "items": [
        "Go — Official Go extension (IntelliSense, debugging, testing, <code>gopls</code> integration).",
        "GitLens — Supercharged Git history, blame, and code authorship insights.",
        "Git Graph — Visual Git history and branch management.",
        "Git History — Detailed log, file/line history, and commit comparisons.",
        "Buf — Enhanced Protocol Buffers editing (formatting, linting, navigation).",
        "Code Runner — Quick execution of Go files and snippets.",
        "CodeRabbit — AI-powered instant code reviews in the editor.",
        "Docker DX — Smarter Dockerfile and Compose editing with vulnerability checks.",
        "Error Lens — Inline display of errors and warnings for better visibility.",
        "GitHub Copilot — AI pair programmer for code suggestions and explanations.",
        "Postfix templates for Golang — Faster coding with postfix completions (e.g.,&nbsp;<code>.err</code>,&nbsp;<code>.if</code>).",
        "Prettier — Consistent formatting for JSON, Markdown, and other non-Go files.",
        "Material Icon Theme — Clean, modern file icons.",
        "Todo Tree — Highlights and organizes <code>TODO</code>/<code>FIXME</code> comments.",
        "Bookmarks — Navigate key code sections quickly.",
        "Code Spell Checker — Catches typos in comments and strings.",
        "Database Client — Query and manage databases (PostgreSQL, MySQL, SQLite, etc.)."
      ]
    },
    {
      "type": "paragraph",
      "html": "These extensions — paired with Go-specific settings like <code>formatOnSave</code> and <code>gopls</code>—create a powerful, efficient Go development environment in VS Code."
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Go in Visual Studio Code"
    },
    {
      "type": "paragraph",
      "html": "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 <a href=\"https://go.dev/\" target=\"_blank\" rel=\"noreferrer noopener\">Go</a> development."
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*9tFl34JAUtWZTZ8W.png",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 1134,
      "height": 221
    },
    {
      "type": "paragraph",
      "html": "You can install the Go extension from the VS Code <a href=\"https://marketplace.visualstudio.com/items?itemName=golang.go\" target=\"_blank\" rel=\"noreferrer noopener\">Marketplace</a>."
    },
    {
      "type": "paragraph",
      "html": "Watch <a href=\"https://youtu.be/1MXIGYrMk80\" target=\"_blank\" rel=\"noreferrer noopener\">“Getting started with VS Code Go”</a> for an explanation of how to build your first Go application using VS Code Go."
    },
    {
      "type": "paragraph",
      "html": "This article describes only a subset of the features the Go extension provides. See the extension’s <a href=\"https://github.com/golang/vscode-go/wiki/features\" target=\"_blank\" rel=\"noreferrer noopener\">documentation</a> for the full, up-to-date list of supported features."
    },
    {
      "type": "heading",
      "level": 3,
      "text": "IntelliSense"
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*AXUobZ3buzZgST6z.gif",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 2366,
      "height": 958
    },
    {
      "type": "paragraph",
      "html": "IntelliSense features are provided by the Go language server, <a href=\"https://go.dev/s/gopls\" target=\"_blank\" rel=\"noreferrer noopener\">gopls</a>, maintained by the Go team. You can configure the behavior of <code>gopls</code> using the <code><a href=\"https://github.com/golang/vscode-go/wiki/settings#settings-for-gopls\" target=\"_blank\" rel=\"noreferrer noopener\">gopls</a></code><a href=\"https://github.com/golang/vscode-go/wiki/settings#settings-for-gopls\" target=\"_blank\" rel=\"noreferrer noopener\"> settings</a>."
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Git Graph extension for Visual Studio Code"
    },
    {
      "type": "paragraph",
      "html": "View a Git Graph of your repository, and easily perform Git actions from the graph. Configurable to look the way you want!"
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*TETQBjGNDfCNj7-i.gif",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 1208,
      "height": 682
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Git History, Search and More (including git log)"
    },
    {
      "type": "list",
      "ordered": false,
      "items": [
        "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"
      ]
    },
    {
      "type": "paragraph",
      "html": "Open the file to view the history, and then Press F1 and select/type “Git: View History”, “Git: View File History”&nbsp;,or “Git: View Line History”."
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Buf for Visual Studio Code"
    },
    {
      "type": "paragraph",
      "html": "The <a href=\"https://marketplace.visualstudio.com/items?itemName=bufbuild.vscode-buf\" target=\"_blank\" rel=\"noreferrer noopener\">VS Code Buf extension</a> helps you work with <a href=\"https://protobuf.dev/\" target=\"_blank\" rel=\"noreferrer noopener\">Protocol Buffers</a> files in a much more intuitive way, adding smart syntax highlighting, navigation, formatting, documentation, diagnostic hovers, and integrations with <a href=\"https://buf.build/\" target=\"_blank\" rel=\"noreferrer noopener\">Buf</a> commands."
    },
    {
      "type": "heading",
      "level": 3,
      "text": "Features"
    },
    {
      "type": "list",
      "ordered": false,
      "items": [
        "<strong>Code navigation</strong> — Go-to definition and documentation insets for&nbsp;<code>.proto</code> symbols.",
        "<strong>Syntax highlighting</strong> — Protobuf-specific color and styling of code.",
        "<strong>Code editing</strong> — Formatting via <code>buf format</code> and annotations and hovers based on <code>buf lint</code> and <code>buf breaking</code>.",
        "<strong>Documentation hovers</strong> — Documentation for definitions when hovering a reference.",
        "<strong>Buf command support</strong> — Execution of <code>buf</code> CLI commands via the <a href=\"https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette\" target=\"_blank\" rel=\"noreferrer noopener\">Command Palette</a>."
      ]
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Code Runner"
    },
    {
      "type": "paragraph",
      "html": "Run code snippet or code file for multiple languages: <strong>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&nbsp;.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</strong>, and custom command"
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*-edNoP_Bac5Tj0x9.gif",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 1860,
      "height": 1220
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Spelling Checker for Visual Studio Code"
    },
    {
      "type": "paragraph",
      "html": "A basic spell checker that works well with code and documents."
    },
    {
      "type": "heading",
      "level": 3,
      "text": "Functionality"
    },
    {
      "type": "paragraph",
      "html": "Load a TypeScript, JavaScript, Text, etc. file. Words not in the dictionary files will have a squiggly underline."
    },
    {
      "type": "heading",
      "level": 3,
      "text": "Example"
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*dD8l7--9CyboF7pW.gif",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 745,
      "height": 539
    },
    {
      "type": "heading",
      "level": 3,
      "text": "Suggestions"
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*M8UPQCjKfF3Mu-WO.gif",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 736,
      "height": 547
    },
    {
      "type": "heading",
      "level": 2,
      "text": "CodeRabbit: AI code reviews in your editor"
    },
    {
      "type": "paragraph",
      "html": "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."
    },
    {
      "type": "heading",
      "level": 3,
      "text": "✨ Why CodeRabbit"
    },
    {
      "type": "list",
      "ordered": false,
      "items": [
        "<strong>Reviews in the IDE</strong>: No waiting for PR reviews. Get feedback on uncommitted changes as you code.",
        "<strong>Works with your AI agent</strong>: One-click hand-off to Claude Code, Copilot, Cursor, or any coding agent to apply fixes.",
        "<strong>Senior dev quality</strong>: Catches race conditions, security holes, and architectural issues — not just syntax errors.",
        "<strong>Fix with AI</strong>: Review with CodeRabbit and pass to your coding agent in the same IDE, in one single click.",
        "<strong>Full context with git integration:</strong> Connect your repository to access 40+ contextual sources, linters, security checks, and sandbox testing.",
        "<strong>Language agnostic</strong>: Works with every programming language your team uses."
      ]
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Container Tools for Visual Studio Code"
    },
    {
      "type": "paragraph",
      "html": "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&nbsp;.NET inside a container."
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*cv8_79EqAyfYDEH6.gif",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 1024,
      "height": 768
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Database Client JDBC"
    },
    {
      "type": "paragraph",
      "html": "This extension is a component of <a href=\"https://marketplace.visualstudio.com/items?itemName=cweijan.vscode-mysql-client2\" target=\"_blank\" rel=\"noreferrer noopener\">database-client</a>, used to connect to the database through JDBC, such as IBM Db2, Hive, Presto, and Cassandra."
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*cqELhyiU5_R-WU9H.png",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 754,
      "height": 593
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Bash beautify"
    },
    {
      "type": "paragraph",
      "html": "A <strong>simple</strong> extension that just works for shell script formatting based on <a href=\"https://arachnoid.com/python/beautify_bash_program.html\" target=\"_blank\" rel=\"noreferrer noopener\">Paul Lutus — Bash Script Beautifier</a>. The underlying script doesn’t do any syntax processing, hence it’s <strong>simple</strong>."
    },
    {
      "type": "paragraph",
      "html": "It’ll work with the default format keyboard binding when you edit a&nbsp;<code>.sh</code> file."
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Bookmarks"
    },
    {
      "type": "paragraph",
      "html": "It helps you to navigate your code, moving between important positions easily and quickly. <em>No more need to search for code.</em> It also supports a set of <strong>selection</strong> commands, which allow you to select bookmarked lines and regions between bookmarked lines. It’s really useful for log file analysis."
    },
    {
      "type": "paragraph",
      "html": "Here are some of the features that <strong>Bookmarks</strong> provides:"
    },
    {
      "type": "list",
      "ordered": false,
      "items": [
        "<strong>Mark/unmark positions</strong> in your code",
        "Mark positions in your code and <strong>give it a name</strong>",
        "<strong>Jump</strong> forward and backward between bookmarks",
        "Icons in the <strong>gutter</strong> and <strong>overview ruler</strong>",
        "See a list of all Bookmarks in one <strong>file</strong> and <strong>project</strong>",
        "<strong>Select lines</strong> and <strong>regions</strong> with bookmarks",
        "A dedicated <strong>Side Bar</strong>"
      ]
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Docker DX"
    },
    {
      "type": "paragraph",
      "html": "The <strong>Docker DX (Developer Experience)</strong> Visual Studio Code extension enhances your Visual Studio Code experience with Docker-related development by adding rich editing features and vulnerability scanning."
    },
    {
      "type": "heading",
      "level": 3,
      "text": "Feature overview"
    },
    {
      "type": "heading",
      "level": 3,
      "text": "Editing Dockerfiles"
    },
    {
      "type": "paragraph",
      "html": "You can get linting checks from <a href=\"https://github.com/moby/buildkit\" target=\"_blank\" rel=\"noreferrer noopener\">BuildKit</a> and <a href=\"https://github.com/docker/buildx\" target=\"_blank\" rel=\"noreferrer noopener\">BuildX</a> when editing your Dockerfiles."
    },
    {
      "type": "paragraph",
      "html": "Any references to images with vulnerabilities are also flagged. This is an <strong>experimental</strong> feature and may change in the future. Refer to our <a href=\"https://github.com/docker/vscode-extension/blob/HEAD/FAQ.md\" target=\"_blank\" rel=\"noreferrer noopener\">FAQ.md</a> to see how you can opt in or out of these warnings."
    },
    {
      "type": "paragraph",
      "html": "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)."
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*OQeQ3LzxKfPpUIYo.png",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 1672,
      "height": 539
    },
    {
      "type": "heading",
      "level": 3,
      "text": "Editing Compose files"
    },
    {
      "type": "paragraph",
      "html": "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."
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*Y7LT5ECqahRZ2RaQ.png",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 1800,
      "height": 508
    },
    {
      "type": "paragraph",
      "html": "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."
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*09okbD4Sywo73mks.png",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 1690,
      "height": 500
    },
    {
      "type": "heading",
      "level": 3,
      "text": "Editing Bake files"
    },
    {
      "type": "paragraph",
      "html": "You can get code completion when editing your <code>docker-bake.hcl</code> 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."
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*TyuoVTf7uvGQH-EL.png",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 1552,
      "height": 944
    },
    {
      "type": "paragraph",
      "html": "The extension provides inline suggestions to generate a Bake target to correspond to each build stage in your Dockerfile."
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*DmBZQyIdUgRPNAji.png",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 1800,
      "height": 771
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Error Lens"
    },
    {
      "type": "paragraph",
      "html": "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."
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*EPLy5U-kXisBoQ2u.png",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 910,
      "height": 105
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Features"
    },
    {
      "type": "list",
      "ordered": false,
      "items": [
        "Highlight lines containing diagnostics",
        "Append the diagnostic as text to the end of the line",
        "Show icons in gutter",
        "Show message in status bar"
      ]
    },
    {
      "type": "heading",
      "level": 2,
      "text": "GitHub Copilot in VS Code"
    },
    {
      "type": "paragraph",
      "html": "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."
    },
    {
      "type": "heading",
      "level": 2,
      "text": "GitLens — Supercharge Git in VS Code"
    },
    {
      "type": "heading",
      "level": 3,
      "text": "Interactive Code History"
    },
    {
      "type": "paragraph",
      "html": "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."
    },
    {
      "type": "heading",
      "level": 3,
      "text": "Blame, CodeLens, and Hovers"
    },
    {
      "type": "paragraph",
      "html": "Gain a deeper understanding of how code changed and by whom through in-editor code annotations and rich hovers."
    },
    {
      "type": "heading",
      "level": 3,
      "text": "Inline and Status Bar Blame"
    },
    {
      "type": "paragraph",
      "html": "Provides historical context about line changes through unobtrusive <strong>blame annotation</strong> at the end of the current line and on the status bar."
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*wnNXF-CuiPQWWAYv.png",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 610,
      "height": 216
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*UIPbJNTEh1Eeurum.png",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 610,
      "height": 216
    },
    {
      "type": "paragraph",
      "html": "💡 Use the <code>Toggle Line Blame</code> and <code>Toggle Git CodeLens</code> commands from the Command Palette to turn the annotations on and off."
    },
    {
      "type": "heading",
      "level": 3,
      "text": "Git CodeLens"
    },
    {
      "type": "paragraph",
      "html": "Adds contextual and actionable authorship information at the top of each file and at the beginning of each block of code."
    },
    {
      "type": "list",
      "ordered": false,
      "items": [
        "<strong>Recent Change</strong> — author and date of the most recent commit for the file or code block",
        "<strong>Authors</strong> — number of authors of the file or code block and the most prominent author (if there is more than one)"
      ]
    },
    {
      "type": "heading",
      "level": 3,
      "text": "Rich Hovers"
    },
    {
      "type": "paragraph",
      "html": "Hover over blame annotations to reveal rich details and actions."
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*Bqc4fyJVMtzLRE-L.png",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 610,
      "height": 216
    },
    {
      "type": "heading",
      "level": 3,
      "text": "File Annotations"
    },
    {
      "type": "paragraph",
      "html": "Use on-demand whole file annotations to see authorship, recent changes, and a heatmap. Annotations are rendered as visual indicators directly in the editor."
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*qwaXFrcJ9L4HxCxZ.png",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 610,
      "height": 216
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*TZXAHczqo5g0zPjO.png",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 610,
      "height": 216
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*4RKaR_3HMb-xsBDP.png",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 610,
      "height": 216
    },
    {
      "type": "paragraph",
      "html": "💡 On an active file, use the <code>Toggle File Blame</code>, <code>Toggle File Changes</code>, and <code>Toggle File Heatmap</code> commands from the Command Palette to turn the annotations on and off."
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Postfix templates for Golang"
    },
    {
      "type": "paragraph",
      "html": "Forked from <a href=\"https://github.com/yokoe/vscode-postfix-go\" target=\"_blank\" rel=\"noreferrer noopener\">vscode-postfix-go</a>"
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*EbhrIE3JZRenat7G.gif",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 640,
      "height": 100
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Editing JSON with Visual Studio Code"
    },
    {
      "type": "paragraph",
      "html": "JSON is a data format that is common in configuration files like <code>package.json</code> or <code>project.json</code>. We also use it extensively in Visual Studio Code for our configuration files. When opening a file that ends with&nbsp;<code>.json</code>, VS Code provides features to make it simpler to write or modify the file's content."
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*-y2NtKN1mCa8l2AI.png",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 750,
      "height": 272
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Material Icon Theme"
    },
    {
      "type": "paragraph",
      "html": "Add lots of icons to Vscode Idea."
    },
    {
      "type": "image",
      "src": "https://cdn-images-1.medium.com/max/800/0*zq10yYho1rMOozm4.png",
      "alt": "Essential VS Code Extensions for Go Developers: My Daily Toolkit",
      "caption": "",
      "width": 573,
      "height": 236
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Prettier Formatter for Visual Studio Code"
    },
    {
      "type": "paragraph",
      "html": "<a href=\"https://prettier.io/\" target=\"_blank\" rel=\"noreferrer noopener\">Prettier</a> 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."
    },
    {
      "type": "paragraph",
      "html": "<em>JavaScript · TypeScript · Flow · JSX · JSON</em><br><em>CSS · SCSS · Less</em><br><em>HTML · Vue · Angular HANDLEBARS · Ember · Glimmer</em><br><em>GraphQL · Markdown · YAML</em>"
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Windsurf Plugin: Free AI-powered code acceleration toolkit"
    },
    {
      "type": "heading",
      "level": 3,
      "text": "What is Windsurf?"
    },
    {
      "type": "paragraph",
      "html": "<a href=\"https://www.windsurf.com/\" target=\"_blank\" rel=\"noreferrer noopener\">Windsurf</a> 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."
    },
    {
      "type": "paragraph",
      "html": "With Windsurf, you get:"
    },
    {
      "type": "list",
      "ordered": false,
      "items": [
        "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 <a href=\"https://discord.gg/3XFf78nAx5\" target=\"_blank\" rel=\"noreferrer noopener\">Discord Community</a>."
      ]
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Todo Tree"
    },
    {
      "type": "paragraph",
      "html": "This extension quickly searches (using <a href=\"https://github.com/BurntSushi/ripgrep\" target=\"_blank\" rel=\"noreferrer noopener\">ripgrep</a>) 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)."
    },
    {
      "type": "paragraph",
      "html": "Clicking a TODO within the tree will open the file and put the cursor on the line containing the TODO."
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Database Client"
    },
    {
      "type": "paragraph",
      "html": "Database Management for MariaDB/SQLite, supports executing SQL."
    },
    {
      "type": "paragraph",
      "html": "Database client for Visual Studio Code, supports manager <strong>MySQL/MariaDB, PostgreSQL, SQLite, Redis, ClickHouse, Kafka, MongoDB, Snowflake</strong>, and <strong>ElasticSearch</strong>, and works as an <strong>SSH</strong> client, boost your maximum productivity!"
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Setting.json configuration"
    },
    {
      "type": "paragraph",
      "html": "by pressing the keys shift+ctrl+p simultaneously."
    },
    {
      "type": "code",
      "lang": "jsonc",
      "code": "{  \"http.proxy\": \"http://127.0.0.1:2080\",  \"workbench.iconTheme\": \"material-icon-theme\",\n\"workbench.editor.enablePreview\": false,"
    },
    {
      "type": "code",
      "lang": "json",
      "code": "{\n  \"files.autoSave\": \"afterDelay\",\n  \"files.autoSaveDelay\": 10000\n}"
    },
    {
      "type": "code",
      "lang": "json",
      "code": "{\n  \"editor.defaultFormatter\": \"esbenp.prettier-vscode\",\n  \"editor.largeFileOptimizations\": false,\n  \"editor.minimap.showSlider\": \"always\",\n  \"editor.minimap.size\": \"fit\"\n}"
    },
    {
      "type": "code",
      "lang": "json",
      "code": "{\n  \"[javascript]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[json]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[go]\": {\n    \"editor.defaultFormatter\": \"golang.go\",\n    \"editor.formatOnSave\": true\n  }\n}"
    },
    {
      "type": "code",
      "lang": "json",
      "code": "{\n  \"git.autofetch\": true\n}"
    },
    {
      "type": "code",
      "lang": "json",
      "code": "{\n  \"gitlens.ai.model\": \"vscode\",\n  \"gitlens.ai.vscode.model\": \"claude-3-5-sonnet-20240620\",\n  \"go.toolsManagement.autoUpdate\": true\n}"
    },
    {
      "type": "code",
      "lang": "json",
      "code": "{\n  \"database-client.autoSync\": true\n}"
    },
    {
      "type": "code",
      "lang": "json",
      "code": "{\n  \"security.workspace.trust.untrustedFiles\": \"open\"\n}"
    },
    {
      "type": "code",
      "lang": "json",
      "code": "\"explorer.confirmDelete\": false,  \"settingsSync.ignoredExtensions\": []}"
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Shortcuts"
    },
    {
      "type": "list",
      "ordered": false,
      "items": [
        "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"
      ]
    },
    {
      "type": "paragraph",
      "html": "It’s called “Folding” in VS Code. From <a href=\"https://code.visualstudio.com/docs/editor/codebasics#_folding\" target=\"_blank\" rel=\"noreferrer noopener\">docs</a>:"
    },
    {
      "type": "heading",
      "level": 2,
      "text": "Conclusion"
    },
    {
      "type": "paragraph",
      "html": "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."
    },
    {
      "type": "paragraph",
      "html": "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! 🚀"
    }
  ]
}
