Table of Contents
Editors and IDEs for Go
Popular
The Go Developer Survey showed these as the most popular editors.
-
Visual Studio Code: Free & open source IDE by Microsoft. Visual Studio Code supports Go syntax highlighting out of the box. Additional features are provided by the official vscode-go plugin.
-
GoLand: JetBrains's cross-platform, fully featured Go IDE (commercial). Free for students, teachers, open-source developers, and user-groups (see details). Also available as part of IntelliJ IDEA Ultimate.
-
Vim & Neovim: Vi Improved. There are a number of plugins available that make editing Go code easier.
- The vim-go plugin includes misc/vim and has many other new improvements.
- The Syntastic plugin gives instant feedback on compile errors
- The tagbar plugin uses Gotags, above, to show an outline of the current file
- A vim compiler plugin for syntax checking
- A vim-godef plugin integrates with the 'godef' tool, above
- A vim-go-extra is vim plugin based on misc/vim in go repository. This works fine on windows too!
- The go-ide is a Neovim configuration file that ties go related plugins together making autocomplete, auto-importing, snippets, code formatting, and file search/browsing easier.
- govim is an LSP-driven vim plugin for Go development, written in Go using Vim8’s channel support.
-
Emacs: Extensible and customizable text editor. It has generic LSP support that works well with gopls, the official Go language server.
- LSP Mode provides LSP support with a batteries-included approach, with many integrations enabled “out of the box” and several additional behaviors provided by lsp-mode itself.
- Eglot provides LSP support with a minimally-intrusive approach, focusing on smooth integration with other established packages. It provides a few of its own eglot- commands but no additional keybindings by default.
- Mode file maintained at https://github.com/dominikh/go-mode.el.
- GoFlyMake Flymake-style syntax checking for Go
- go-errcheck.el Errcheck integration for Emacs
- flycheck-metalinter Flycheck integration for go-metalinter utility
- go-playground Local playground inside Emacs
Less popular
These editors are less popular, and may have less modern Go support. In particular, they may not support Go modules.
- Atom: JavaScript-based editor from GitHub. Go support at go-plus
- BBEdit: free text editor for macOS (with paid upgrade for pro features).
- Go support available with the Go-bbpackage module including syntax highlighting, clippings, ctags standard library completion, and tools
- Brackets: a modern, open source text editor that understands web design.
- go-ide Go support with autocompletion through gocode.
- Chime: Capable. Focused. Fast. A Go editor for macOS.
- CodePerfect 95: A blazing fast IDE for Go.
- jEdit: open-source, cross-platform text editor written in Java. Syntax-highlighting file available.
- Kate Kate is an advanced, cross-platform text editor developed by KDE, with Go support out-of-the-box.
- Komodo IDE Powerful cross-platform IDE with built-in Go support
- Komodo Edit Powerful cross-platform text editor, Go-lang support available via plugin
- LiteIDE: A simple, open source and cross-platform Go IDE
- Micro: A modern and intuitive terminal-based text editor written in Go
- Go language support (gofmt and goimports) via plugin
- Notepad++: Free source code editor for Windows.
- notepadplus-go Syntax highlighting, functions list panel (for code browsing), code completion for keywords & builtins.
- The GOnpp plugin (available via Notepad++'s built-in Plugin Manager) provides code completion (requires gocode), function calltips, goimports integration, and keyboard shortcuts for common go commands. [sources, binaries].
- GoAutocomplete is another code completion plugin.
- Nova: Native Mac code editor.
- Go Language Definition for Nova — Go syntax highlighting and interface with the Language Server Protocol (LSP) using Google's official
goplslanguage server for Go (if installed). - Go Tools — Run
goimportson save or via a command. Syntax highlighting for Go.
- Go Language Definition for Nova — Go syntax highlighting and interface with the Language Server Protocol (LSP) using Google's official
- Source Insight: Commercial programming editor & code browser with built-in live analysis for C, C++, C#, Java, and more; helping you understand large projects.
- golang.xclf is a Custom Language file adding syntax formatting and some parsing support to Source Insight for Go language.
- Sublime Text: Commercial text editor.
- (Sublime Text 4 only) LSP + gopls is a plugin collection with IDE-like features available.
- GoSublime is a plugin collection with IDE-like features available.
- Golang Build is the official Sublime Text package for Go build system integration.
- Textadept: Textadept is a fast, minimalist, and remarkably extensible cross-platform text editor. Supports Go syntax highlighting out of the box.
- TextMate: Commercial text editor for macOS. Source code available under the GPLv3. Bundle for Go available.
Cloud Based IDEs
AVX512 Articles AssemblyPolicy Benchmarks Blogs Books BoundingResourceUse CSSStyleGuide ChromeOS CodeReview CodeReviewComments CodeReviewConcurrency CodeTools Comments CommitMessage CommonMistakes CompilerOptimizations Conferences Configuring GoLand for WebAssembly Contributing to gopls CoreDumpDebugging Courses CreatingSubRepository CustomPprofProfiles Darwin DashboardBuilders Deprecated DesignDocuments Diagnostics Download build farm failed logs and debugging DragonFly BSD ErrorValueFAQ Errors ExperienceReports FileTreeDocumentation FreeBSD FromXToGo Frozen Fuzzing trophy case GOPATH Gardening GcToolchainTricks GccgoCrossCompilation GerritAccess GerritBot GithubAccess Go 1.10 Release Party Go 1.6 release party Go 1.8 Release Party Go Community Slides Go Release Cycle Go2 Go2ErrorHandlingFeedback Go2ErrorValuesFeedback Go2GenericsFeedback GoArm GoForCPPProgrammers GoGenerateTools GoGetProxyConfig GoGetTools GoMips GoStrings GoTalks GoUserGroups GoUsers Gomote Gopher HandlingIssues Home HostedContinuousIntegration How to ask for help HowToAsk IDEsAndTextEditorPlugins InstallFromSource InstallTroubleshooting InterfaceSlice InvalidFlag Iota Learn LearnConcurrency LearnErrorHandling LearnServerProgramming LearnTesting Linux LinuxKernelSignalVectorBug Livestreams LockOSThread MacOS12BSDThreadRegisterIssue MethodSets MinimumRequirements MinorReleases Mobile Modules MutexOrChannel NativeClient NetBSD NewSpeakers NoMeToo NoPlusOne NonEnglish OpenBSD PackagePublishing PanicAndRecover PerfDashboard Performance Plan9 Podcasts PortingPolicy PriorDiscussion Projects Proposals ProviderIntegration Questions Quiet Weeks Range RateLimiting ResearchPapers Resolving Problems From Modified Module Path Resources for slog SQLDrivers SQLInterface Screencasts SettingGOPATH SignalHandling SimultaneousAssignment SliceTricks SlowBots Solaris Spectre Spelling Style SuccessStories Switch TableDrivenTests TargetSpecific TestComments TestFailures Timeouts Training Ubuntu Watchflakes WebAccessibilityResourcesAndTips Well known struct tags WhyGo Windows WindowsBuild WindowsCrossCompiling WindowsDLLs X Repositories _Footer cgo golang tools gopherbot gopls integrator FAQ gopls heapdump13 heapdump14 heapdump15 through heapdump17 heapdump15