A curated guide to the best tips and tricks for mastering GoLand.
Whether you're new to GoLand or a seasoned user, this repository helps you unlock the IDE's full potential:
- 🐛 Debug Like a Pro — Master goroutine labeling, smart step-into, and core dumps
- 🧪 Automate Testing — Generate and run tests with minimal effort
- 🔄 JSON ↔ Struct — Convert JSON to Go structs in seconds
- 🐳 Cloud-Native Ready — Docker and Kubernetes workflows out of the box
- ⚡ Performance Insights — CPU, memory, and block profiling made simple
- 🤖 AI-Powered Coding — Explore Junie and MCP for smarter development
- 🔍 Structural Refactoring — Pattern-based search and replace across your codebase
💡 Each module includes hands-on demos — learn by doing, not just reading.
Before you begin, ensure you have the following installed:
- Go 1.22+
- GoLand IDE (Latest version recommended)
- Docker (Required for Docker and Kubernetes modules)
- Kubernetes / kubectl (Required for Kubernetes modules)
- Clone the repository:
git clone https://github.com/mukulmantosh/awesome_goland.git cd awesome_goland - Open in GoLand:
- Launch GoLand.
- Click
Openand select theawesome_golanddirectory.
- Download dependencies:
- GoLand will automatically detect
go.modfiles and prompt you to download dependencies. - Alternatively, run:
go mod downloadin the root (though many modules have their owngo.mod).
- GoLand will automatically detect
Each module is designed to demonstrate specific GoLand capabilities. Look for DEMO.md or README.md in each directory for detailed walkthroughs.
-
Debugging: Master the debugger with Smart Step Into, Goroutine Labeling, and Core Dumps.
-
Testing: Streamline your testing workflow with automated test generation and execution. View Demo.
-
JSON to Struct: Effortlessly convert JSON data into Go structs.
-
Resource Leak Detection: Detect and fix resource leaks early in the development cycle. View Demo.
-
Structural Search & Replace: Powerfully refactor code using pattern-based search. Watch Video.
- gRPC CRUD: A complete gRPC service implementation with Create, Read, Update, and Delete operations. Read More.
- Endpoint Discovery: Use the Endpoints tool window to discover and test your REST APIs. View Demo.
- Docker Run Targets: Learn how to run and debug Go applications inside Docker containers. View Demo.
- Kubernetes Integration: Orchestrate your Go services with Kubernetes integration. View Walkthrough.
- Debugging Kubernetes Pods with Telepresence: Learn how to debug pods directly in the cluster.
- Deploying Go Apps with Kubernetes: Step-by-step guide from the official JetBrains blog.
- Profilers: Analyze CPU, Memory, and Block profiles to optimize your Go code performance.
- Junie: Explore AI-assisted development workflows. View Demo.
- MCP (Model Context Protocol): Enhancing LLM interactions within the IDE. View Demo.
- Junie Guidelines for Go Apps: A GitHub repository that provides a collection of technology-specific guidelines to improve Junie code generation.
Discover quick and powerful ways to boost your productivity in GoLand. Here is the complete list of tips available in this repository:
Click to expand the full list of 100+ tips
- Add Field to Struct
- Add Line After Before
- Ask Mode Junie
- Assert Completion in Testify
- Attach Process
- Auto Run Tests
- Back and Forth
- Basic Code Completion
- Better Go Version Handling
- Better Time Format Completion
- Better View of Attached Projects
- Boilerplate with Junie
- Builtin HTML Preview
- Call Hierarchy
- Change Font Size Using Mouse Wheel and From Keyboard
- Change Struct Tag Style
- Check APIs From The IDE
- Check Vulnerabilities in Go Mod
- Cleanup Unused IDE Directories
- Code Completion in Evaluate Expression and Watches
- Code Completion in Language Injections
- Code Completion in Run Configurations
- Code Coverage for Applications
- Code Folding Options
- Code Vision in Editor
- Compare With Clipboard
- Complete Current Statement
- Completion for Non Imported Go Modules
- Completion With The Tab Key
- Containers Device Cgroup Rules Values Inspection
- Containers Pause and Unpause
- Containers Port Mapping Inspection
- Containers Restart a Running Container
- Containers Shm Size Inspection
- Convert Between Different String Types
- Convert Empty Interfaces to Any
- Convert Integers to Strings
- Create Function in Any Package
- Create Getters and Setters
- Create Inspections With Regular Expressions
- Create Missing Struct Type With All Fields
- Create Parameter Refactoring
- Custom Printf Like Functions
- Custom Structure Tags
- Cyclic Expand Word
- Delete Type Parameter With Empty Parameter List
- Disable Tabs
- Download Kubernetes Pod Log
- Drag and Drop Editor Tabs
- Dump Goroutines
- Evaluate Expression
- Exclude From Imports and Completion
- Expanding Shrinking Selection
- Extract Type Refactoring
- Fill Paragraph for Go Comments
- FLCC With GoLand
- Generate a Test for an Element
- Generate a Test for Generic Function
- Generate Go Work
- Generate Imports While Typing
- Get Container and Tag Completion for Docker Files
- Go 1.17 Convert Slice to Array Pointer
- Go 1.16 Retract Directive
- Go Embed Support
- Go to From a Test
- Goroutines Profiler Labels
- Guidelines With Junie
- Handle Go Errors With Postfix Completion
- Hide All Tool Windows
- Implement an Interface
- Implement Unexported Interfaces
- Inline Watches in Debugger
- Inspect Context Cancel Func Usage
- Inspect Detect Incorrect Usage of Println Like Function
- Install and Import
- Integrated Go Playground
- JSON to Go Struct Type
- Kubernetes Configure Custom Namespaces Manually
- Kubernetes Convert Resources Format
- Kubernetes Delete Resource From Run Button
- Live Template for For Loop in Bench Function
- Live Template for Go Bench Function
- Live Template for Go Test Function
- Load GoMod Changes Manually
- Mermaid JS Support in Markdown
- Method Like Completion for Functions
- Move Block
- Multiple Selections
- Navigate Between Opened Files Using the Switcher
- Navigate Test in Table Test
- Navigate to File
- Navigate to Symbol
- New Scratch File From Selection
- Open Console in Kubernetes
- Open File in Split Editor
- Open Shell in Kubernetes
- Optimize Imports
- Parameter Info
- Partial Match Completion
- Paste From History
- Postfix Completion
- Preview File Contents
- Put Project Under VCS
- Quick Docs
- Quick Documentation
- Quick Documentation Go Doc Comments
- Quickly Handle Go Error
- Recent Locations
- Reduce Clutter
- Remove Scratch File When Closing
- Rename Constants That Use Names of Builtin Constants
- Rename File
- Rename Generic Receivers
- Rename Go Module Name
- Rename Symbol
- Rerun Testify Subtest
- Run Actions on Save
- Run Anything
- Run Gofmt After Builtin Formatter
- Run Individual Testify Test Suites
- Run Targets Docker
- Run Tests Fuzzing
- Run Tests With Coverage
- Run to Cursor
- Select All Occurrences in a File
- Select In
- Show Usages
- Simple Math in Search Everywhere
- Smart Code Completion
- Speed Typing
- Split Screen Without Tabs
- Step Over
- Stop Remote Process
- Structure Popup
- Structure Tags
- Switch to the Editor
- Sync IDE Theme With OS Theme
- Tailwind CSS Support
- Terminal Cursor Shape
- Terminal Select Shell
- Test Bench Fatal Calls
- Test Name Completion in Testify
- Text Search in Local History
- Type Hierarchy
- Unused Dependency in Go Mod Inspection
- Variable Shadowing Display
- VCS Cleanup Code Before Commit
- VCS Run Inspections Before Commit
- VCS Run Tests Before Commit
- VCS Sign Commit With GPG
- Vue Support
- Web Arrow Function Live Template
- Web Completion for Parameter Types Based on Function Calls
- Web React Completion for Classnames Clsx Libraries
- Web React Refactor Names in UseState Hooks
- Web Support for TypeScript in JSDoc
- Workspaces Group Use Directives
💡 Tip: Click the summary above to see the full collection of over 140+ GoLand productivity tips!
- Explore Modules: Navigate to any directory in
features/to see specific examples. - Follow Demos: Most modules include a
DEMO.mdfile with step-by-step instructions. - Run Code: Use GoLand's gutter icons (run/debug) to execute the
main.goor*_test.gofiles.
- Moving Your Codebase to Go 1.26 With GoLand Syntax Updates
- Best Practices for Secure Error Handling in Go
- Write Modern Go Code With Junie and Claude Code
- “GoLand Can Do That?” Ten Secret Superpowers You Might Not Know
- Preventing Resource Leaks in Go: How GoLand Helps You Write Safer Code
- Interprocedural Analysis: Catch nil Dereferences Before They Crash Your Code
- Data Flow Analysis for Go
- Profiling Go Code with GoLand
- Comprehensive Guide to Testing in Go
- Build a Blog With Go Templates
- GoLand Playlist
- Spot the Nil Dereference: How to avoid a billion-dollar mistake
- GopherCon 2025: Nil Today, Outage Tomorrow - Mukul Mantosh
- GopherCon 2023: The Blueprints to Building Your Own Badass Community - Benjamin Bryant
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Join the conversation and connect with other Go developers:
- Gophers Slack — Official Slack community for Go developers. Join the
#golandchannel for GoLand discussions. - Follow GoLand on X — New features:
#NewInGoLand| Tips and tricks:#GoLandTip
Found this helpful? Consider giving it a ⭐ it means a lot!
MIT
