Go logo

GoLand

A cross-platform Go IDE with extended support for JavaScript, TypeScript, and databases

Early Access Program GoLand

GoLand 2021.1 Early Access Program Begins!

The GoLand 2021.1 Early Access Program has now started! You can find a detailed description of what to expect from the EAP in our roadmap for 2021.1.

You can get the first EAP build via the Toolbox App, download it from our website, or use a snap package (for Ubuntu). Or from inside GoLand, select Automatically check updates for Early Access Program in Preferences / Settings | Appearance & Behavior | System Settings | Updates.

Download GoLand 2021.1 EAP #1

What the Early Access Program is:

EAP builds let you try out the latest features and enhancements in GoLand while they are still works in progress. These builds are not fully tested and might be unstable, but this is where you can help us. By taking these builds and their new features for a test drive in your real-world projects and scenarios, you can help us polish them. This way, when the final version is released, it will work smoothly for you.

  • The EAP lets you be first to try out the newest features.
  • EAP builds are free to use for 30 days from the build date. You can use this period as an extended trial of GoLand.
  • We provide a series of EAP builds until a stable release is almost ready. For the upcoming version 2021.1, the EAP period will last roughly to the end of March.
  • In each release cycle, we reward the most active evaluators, the people who helped us make GoLand better by sharing their product experience, feedback, and suggestions with us, with a free 1-year GoLand subscription.
  • Fresh builds come out almost every day. If you don’t want to wait for the official EAP build announcements, you can simply download our nightly builds, which are only available via the Toolbox App. Note that the nightly builds often do not meet the quality standards for official EAP builds, and they don’t come with release notes. Like EAP builds, they expire within 30 days of being released.

Now that we’ve laid out the basics, let’s dive into features we’ve packed into the first EAP build.

Work with JSON

It’s now much easier to create JSON and XML tags for all the exported fields in the struct.

Invoke Add key to tags on the struct or on any field in the struct via Alt+Enter. GoLand adds a tag to all fields in the struct with field names. If you want to change the field name style in all tags, press Alt+Enter again on any key and choose Change field name style in tags. The supported styles are fieldName, FieldName, field-name, and field_name. The Update key value in tags intention action will add carets at the end of tag values in every field to let you update them all at once. Call it via Alt+Enter on any tag value in your struct.

Additionally, the IDE provides a completion for well-known tokens inside tag values provided by SDK for json, xml, and asn1.

The Generate type from JSON intention will convert JSON in a struct with fields and tags in only a few seconds. Copy data in the JSON format and invoke Alt+Enter or choose this intention via the Generate menu. GoLand will open the Generate Go type from JSON window with the copied JSON. Then you just need to press the Generate button and your struct is ready to go. Of course it’s also possible to paste JSON in the window manually.

Additionally, it’s possible to convert JSON inside an already existing empty struct. Call the Generate struct fields from JSON intention action using Alt+Enter or the Generate menu in an empty struct.

GoLand will notify you if your JSON is not valid in the Generate Go type from JSON window.

Rename refactoring for Go modules names

Sometimes you need to rename the module once you have sufficiently experimented with the project and done all your initial work. We’ve added a Rename refactoring to the go.mod file. It allows you to give the module a new name safely and without needing to do a search and replace in the project tree to replace the old module name.

Invoke the Rename refactoring on the module name with ⇧F6 on macOS or Shift + F6 on Windows/Linux. GoLand will open the Rename window, where you can change the current name, choose whether to change it in comments and strings, and open a preview of the refactoring. From the Refactoring Preview tab, you can navigate to all usages of this module name. You can use undo to quickly revert all changes implemented using the refactoring.

Run program with sudo using elevation service

This EAP build allows you to run a long-living sudo session. On the first run, GoLand will ask whether you want to keep sudo running or terminate immediately. If you would like to change your first response, go to Preferences/Settings | Appearance & Behavior | System Settings | Process Elevation.

Please note that by enabling this option you grant GoLand and all third-party plugins access to your system.

Quick Access Menu

The Configuration widget, which was previously available in the bottom left-hand corner of the IDE, has been replaced with a quick access menu. This new menu appears in the top right-hand corner. Press the gear icon to switch themes or keymaps, navigate to plugins, or go to the settings.

Code Completion based on machine learning

We’ve enabled Machine Learning-Assisted Completion. This change introduces the early stages of code completion based on machine learning (ML), which is an alternative to the standard ranking mechanism.

This code completion applies sorting rules learned from data we have gathered anonymously during our EAPs, resulting in better suggestions. Note that we have not collected any source code, only information about interactions with the code completion UI.

Tick Mark position changes in the completion popup in Preferences/Settings | Editor | General | Code Completion to mark options reranked by ML completion with up/down arrow icons in the completion list.

That’s all for today! Please share your thoughts on new features. We are eager to get your opinion. Send us your feature requests via the bug tracker or tweet to us @GoLandIDE. Thank you!

image description