What’s Next: GoLand 2020.1 Roadmap

A month ago we released GoLand 2019.3. For this version, we mostly focused on giving you the most enjoyable IDE experience possible. We hope our efforts have paid off! GoLand 2019.3 consumes less CPU and performs faster than any previous versions, has more accurate code inspections, and improves its code editing features. On top of that, we’ve added new quick-fixes, enhanced the existing refactorings, and made it possible to debug your applications remotely using Mozilla rr, enable a Global File Watcher for every new project, and work with MongoDB!

If you haven’t checked out these new features yet, visit our What’s New page for detailed descriptions, GIFs, and screenshots.

Traditionally, we would like to say a big THANK YOU to the people who help us make GoLand better by sharing their product experience, feedback, and suggestions with us. The most active evaluators are getting a free 1-year subscription for GoLand and a special edition of our branded T-shirt!

Here are these wonderful folks:

Dmitry Matrenichev (YouTrack username: lepage)

Roland Illig (YouTrack username: roland.illig)

GoLand 2020.1 roadmap

Even faster

Like the IntelliJ Platform on which GoLand is built, our IDE will keep improving startup performance and indexing speed. Here’s a short summary of things to come:

  • We are planning to unlock more IDE actions while your project is still indexing so that you can perform them immediately, without having for the indexing to finish.
  • The IDE will notify you about indexing deviations, for example when file indexing is taking too long, files are reindexed too frequently, or index rebuilds are caused by exceptions.

For more details, please read this blog post by the IntelliJ Platform team.

No UI freezes

We are migrating away from our current architectural solution, which required most operations that modify the IDE’s internal data structures to run on the UI thread. The benefit of this architecture has been its simple programming model, but the obvious downside was that the UI responsiveness suffers in many scenarios.

Next year, we are going to refactor the essential UI components and APIs of the IntelliJ Platform to employ the new threading model, in order to provide you with a smooth and lag-free UI.

Go Modules support

We are planning to evolve Go Modules support in several different ways:

GO-7632 — Support for GOSUMDB и GOPRIVATE environment variables come from Go 1.13.

GoLand 2020.1 will rename imports after updating the major version of the dependency.

The Rename refactoring will help you rename “module name” to “module name/v2” in the go.mod file and update all import paths in the project accordingly.

It will be possible to search for references of dependencies via Find Usages.

For replace statements, we are planning to add the following:

  • A notification about replacements with local paths in the go.mode file before you commit.
  • Code completion to choose between replace with local dependency and replace by cloning from VCS.
  • If you are cloning from a VCS, the IDE will show a dialog that suggests entering a remote URL and the target local path. After cloning is completed, GoLand will generate an appropriate “replace” directive and attach the cloned module to the project.

Code assistance

To help you code even faster, we’re going to focus on code-editing features that require little to no interaction from the user.

Here’s what you can expect:

  • Extended Basic Code Completion and Smart Code Completion.
  • New quick-fixes and Intention actions.
  • New Postfix Templates and new Live Templates.
  • The application area of Generate Constructor will be expanded beyond the limits of struct types.
  • Various improvements for Code Formatting.
  • Rename, Extract, and Implement Interface refactorings will be polished to provide the expected behavior whenever possible.

Swap any plugin in or out, on the fly

In 2019.3, you can install and uninstall any theme and keymap plugins without restarting the IDE. We are planning to expand this feature to let you load and unload many more bundled plugins without a restart.

For third-party plugins, their developers will need to make some changes to support this capability.

Cloud execution support

Previously, GoLand supported running and debugging your code on machines other than your own, or inside containers.

GoLand 2020.1 will present a general concept of a target environment that provides a way to copy files from or to it, and to start processes there. In v2020.1, the supported environments will include your local machine, a Docker container, or a machine connected over ssh.

In a more distant future, we plan to unify our existing support for Docker and remote interpreters around the new architecture. We will also provide deeper cloud integration so that you won’t need to specify the details of a specific machine to connect to if you need to run the process on a new VM in the cloud.

That’s about all! Improvement ideas often come directly from your feedback, so please send us your feature requests via the bug tracker or tweet us @GoLandIDE. Thank you!

Comments below can no longer be edited.

6 Responses to What’s Next: GoLand 2020.1 Roadmap

  1. Avatar

    Grant Pullen says:

    December 24, 2019

    Great roadmap, can’t wait for EAP.
    The enhanced modules support, will be especially beneficial.

    • Avatar

      Ekaterina Zharova says:

      December 24, 2019

      Happy to hear!

  2. Avatar

    Paul says:

    January 13, 2020

    WSL 2 support?

    • Avatar

      Florin Pățan says:

      January 16, 2020

      Hi Paul,

      What are you look for regarding the WSL 2 integration? We are currently tracking this issue under: Vote/watch it to receive updates when we’ll have any about it.

      Thank you.

  3. Avatar

    Arthur says:

    January 19, 2020

    Hi, thank you for such a wonderful developer user experience.
    I do however have a short wish list of features I would enjoy:

    1) Colour coded items: folder, file icons
    2) Change font shortcut
    3) Change theme shortcut (e.g. when I want to switch between dark and bright modes due to the lighting conditions)
    4) A-la Sublime quick smart navigation menu
    5) Access to bookmarks from right-click
    6) Switchable terminal types (PowerShell to DOS or others)

    • Avatar

      Florin Pățan says:

      February 4, 2020

      Hi Arthur,

      Thank you for your feedback.

      Here’s a quick answer to your list of features:
      1) What do you mean by this? Where should the coloring happen?
      2) What would you like to change about the font? If it’s the size, then you can use `Settings/Preferences | Editor | General | Change font size (Zoom) with Ctrl+Mouse Wheel`
      3) You can use `Ctrl + Back Quote` on Windows/Linux and `Shift + Back Quote` on macOS for this
      4) I’m afraid I’m not familiar with Sublime, what does this menu do?
      5) You can invoke the Favorites tool window via `Alt + 2` on Windows/Linux and `Cmd + 2` on macOS. If this is still not what you desire, you can fully customize the IDE menus via `Settings/Preferences | Appearance & Behavior | Menus and Toolbars | Editor Popup Menu` and then use the `+` button to add a new action and search for `Bookmarks` to give you a list of possible actions.
      6) You can customize which shell the Terminal tab uses via `Settings/Preferences | Tools | Terminal`. If this is not enough, please describe the use-case for this.

Discover more