Gogland Early Access Program

This page lists pre-release builds of Gogland, the emerging Go IDE from JetBrains. As this is pre-release software, stability of builds presented here, as well as their applicability to a certain purpose, may (and most probably will) vary. Please use the builds at your own risk.

Gogland is being actively developed, and we really appreciate your feedback. Please use our issue tracker to report bugs and suggest features.

Download links
Build highlights

  • Build: EAP 16, 173.3188.63
  • Released: Oct 18, 2017
  • Release notes
  • The On Save actions are replaced with the File Watchers plugin. The new functionality supports not only gofmt and goimports, but also gometalinter and any custom user commands.
  • The $GOROOT$, $GOPATH$, $GoFileImportPath$, $GoExecPath$, and $GoBinDirs$ macros now can be used with File Watchers, External Tools and Run Configurations.
  • The Generate New action now uses Settings | Editor | File and Code Templates | Code for generating tests, benchmarks, and examples.
  • The Navigate to Test action now integrates gotests and can generate tests for a package, file, and function.
  • The Go Generate action, earlier available as an inspection, can now be called on a folder.
  • Lots of new inspections:
    • The IDE now alerts you if you try to index a map or a slice which is not initialized yet.
    • If you have a type that is unused and is either unexported or resides in a main package or tests, the IDE offers to safely delete it along with its functions.
    • The IDE alerts you if you specify an explicit type when declaring a variable or a constant where the compiler can infer it automatically.
    • The inspections that rely on type inference have become more accurate for pointer types.
    • The intention action that initializes structs now supports arrays.
  • If you use database/sql, jmoiron-sqlx or markbates/pop, the IDE offers coding assistance for SQL statements.
  • The Go plugin will now be available only for IntelliJ IDEA Ultimate users. If you’re using an IntelliJ-based IDE that is not IntelliJ IDEA Ultimate, to work with Go you’ll have to switch to either Gogland or IntelliJ IDEA Ultimate.

To learn more, read the blog post.

  • Build: EAP 15, 173.2696.28
  • Released: Sep 28, 2017
  • Release notes
  • The following cases are now reported by new inspections:
    • A variable is assigned to its own value. The IDE finds this code suspicious as it may be a bug.
    • Explicit conversion is not possible.
    • The address operator is used on a non-addressable operand.
    • A type used in a switch case mismatches the type of the switch condition.
    • A 0 wrongly used as an argument for string.Replace.
    • A comment is missing a leading space (disabled by default).
    • Snake_case in identifiers. The inspection comes with a quick-fix that can rename the identifier to CamelCase automatically.
    • A variable declaration used as value in a switch condition
    • An exported function that returns an unexported type.
  • The following code now can be generated for you by intention actions:
    • The code that initializes structs.
    • Getters and setters for struct fields.
  • The gutter icons that navigate to the interface (that the struct at the caret implements), or to the structs (implemented by the interface at the caret), have gotten much better and now are enabled by default.
  • Keywords are not suggested inside an interface declaration unless it’s appropriate.
  • The type keyword is suggested in type-assertions.
  • Among other improvements:
    • The go-setup information is now collapsed in the execution output (can be expanded on click).
    • The Copyright plugin now works for Go files.
    • The maximum size of Go files that can be opened in the IDE has increased from 2.5 MB to 4 MB.
    • The context menu of the Project tool window when called on folders now shows two new actions: Open directory as a project, and Add directory to the project (as a content root)
    • In the Project tool window, calling the context menu on a folder now offers two new items: Open directory as a project, and Add directory to the project (as a content root)
  • Following the opening of IntelliJ IDEA 2017.3 EAP, Gogland has switched to the new version of the platform. Among the new platform’s features are:
    • Faster Git branch operations.
    • Git Log cosmetic improvements: Interactively Rebase from Here is now available in Log; Compact References View and Show Tag Names are now project level settings and not global as earlier.
    • A new REST client which reuses the approach from VS Code and Emacs for testing HTTP requests. To use it, simply open a new Scratch File and select HTTP Requests as its type. This will create a scratch file with the “.http” extension.
  • Several JavaScript and TypeScript improvements:
    • New and improved refactorings and intentions (ES6): Extract type alias for TypeScript, Convert type alias into interface, updated Extract parameter and Change signature refactorings
    • Better Vue.js support
    • Auto imports on paste (ES6).
    • Better ESLint and TSLint integration.
    • Various improvements in the Stylus support.
    • The built-in TypeScript compiler can now also compile JavaScript files.
    • Multiple JavaScript versions per project.
    • New Emmet syntax for JSX.
    • Support for Optional Chaining ES proposal.
  • A few database improvements:
    • Selecting a schema when running an SQL file.
    • Jumping to the console from a datasource.
    • Right-side alignment for a numeric date.
    • XQuery and XPath coding assistance for Microsoft SQL Server.

For more details, check out the release notes.

  • Improvements in code completion
  • Shadowed variables inspection
  • Division by zero inspection
  • Error-strings code style inspection
  • Ability to run Go Tools on several files.
  • Fixed bugs with performance: GO-4274, GO-4386, GO-4397
  • Other fixes and improvements

For more details, read the blog post.

  • Build: EAP 12, 172.3757.46
  • Released: Aug 11, 2017
  • Release notes

Major new features:

  • Inline refactoring for variables (Ctrl+Alt+N or Cmd+Alt+N for macOS)
  • A new Inspection that checks range clauses
  • The Go Application Run Configuration now supports running directories
  • Navigation between tests and their test subjects via Go to Test/Test Subject (Ctrl+Shift+T or Shift+Cmd+T for macOS)

Notable bugs addressed:

  • The Windows installer wasn't signed
  • Incorrect type comparison for structs with included pointer-type structures
  • The Project Wizard didn't allow to create projects with no SDK specified
  • Incorrect cache invalidation
  • Incorrect type aliases highlighting
  • A Debugger related issue (solved by updating to a newer Delve version)
  • The IDE didn’t resolve "vendored" libraries located under GOPATH in some cases

For more details, read the blog post.

We’ve changed the way Gogland indexes libraries inside GOPATH: non-Go files are now ignored, which, depending on your workspace, might make indexing up to twice as fast.

The refactorings family now includes two more members: Extract a Constant and Inline a Constant.

Annoying issues fixed:

  • Create Function quick-fix sometimes created functions in a wrong source package
  • The binary wasn’t retained in the output directory after the Run Configuration finished
  • The Debugger stuck on Evaluating when after clicking View to see full content of a variable
  • VCS commits occurring before the Go fmt option (in the Before Commit section) has finished its work

Also, the update brings the new platform features from IntelliJ Platform 2017.2.

For more details, read the blog post.

  • Build: EAP 10, 171.4694.61
  • Released: June 27, 2017
  • Release notes
  • Better Debugger, with support for remote debugging of Docker containers
  • Support for Go 1.9, with type aliases
  • Run icon in Scratch Files

For more details, read the blog post.

  • Remote debugging with Delve
  • Displaying Logs within Run rool window
  • New inspections: reporting misplaced fallthrough statements and functions without bodies
  • The Go SDK is now selected automatically when you import a project
  • Better startup and overall performance
  • The IDE configuration related to imports (sorting, exclusion) is now stored on the project level
  • A number of bugfixes around auto-imports and sorting imports

For more details, read the blog post.

  • Postfix Completion that supports !, nil, nn, not, notnull, par and var templates.
  • The new Bool condition inspection that reports redundant bool expressions and helps simplify them.
  • The new Context Info action that shows the current method or class declaration when it is not visible.
  • The updated Spellchecker that now reports mistypes in string literals
  • Many debugger improvements due to the upgrade of Delve to 1.0.0-rc.1, that among many other fixes adds support for LLDB on macOS.
  • Bugfixes in the Formatter, Inspections, Refactorings and Completion.
  • The IntelliJ platform improvements: better font rendering for Linux; better Find in Path usability; and manual column reordering in Git Log.
  • The support for nightly builds if the Go plugin. All it takes is registering "https://plugins.jetbrains.com/plugins/nightly/9568" as a Repository URL in Settings | Plugins | Browse repositories | Manage repositories.

For more details, read the blog post.

  • Build: 1.0 EAP 171.3780.106
  • Released: March 22, 2017
  • Release notes
  • The IntelliJ IDEA 2017.1 platform features, incl. reworked Find in Path, better
    JavaScript support, and more
  • A separate Go plugin for IntelliJ IDEA Ultimate and other paid IDEs
  • Debugger improvements: Run to cursor, Conditional breakpoints, better data
  • Faster Code completion
  • Rename and Find usages for packages, imports and qualifiers
  • New Add import alias intention
  • New Run `go generate` intention for generated comments
  • Validation of canonical import paths
  • File Rename now renames the corresponding test file as well
  • Highlighting and filtering generated files in Find usages and Refactorings
    according to the proposal
  • Two new Folding options: One line returns and One line panics
  • Bugfixes in the Formatter, Inspections, Refactorings and Completion

For more details, read the blog post.

  • Build: 1.0 EAP 163.12024.32
  • Released: February 13, 2017
  • Release notes
  • The Debugger now supports Go 1.8
  • Fixes addressing the issues with German, Spanish and other non-English keymaps
  • The Stop Process command broken earlier in the Terminal has been fixed
  • Several bugfixes for the Extract Method refactoring

  • Build: 1.0 EAP 163.12024.27
  • Released: February 6, 2017
  • Release notes
  • A fix for the problems with the built-in Terminal
  • Other minor fixes

  • Build: 1.0 EAP 163.12024.20
  • Released: February 2, 2017
  • Release notes
  • C syntax highlighting in injected fragments
  • Formatting with gofmt or goimports when saving files
  • Default location for new projects is now correct
  • Improved Implement interface action: it doesn’t add already existing methods; suggests only interfaces
  • Inspection for private fields with tags
  • Create function quick fix is available when functional types are expected
  • Adjusting import paths when renaming directories

  • Build: 1.0 EAP 163.10615.22
  • Released: January 11, 2017
  • Release notes
  • Brand new Parameter name completion

For more details, read the blog post.