News

What’s Next: GoLand Roadmap 2023.2

At the beginning of April, we released GoLand 2023.1

If you haven’t had a chance to check it out, here’s a brief overview: 

GoLand 2023.1 introduces the vulnerability checker, better navigation in gRPC code, and the Rename refactoring for generic receivers.

Interface implementations are now shown in the editor with Code Vision.

You can now run scratch files with non-standard-library packages, use regular expressions to create your own search and replace inspections, and quickly convert raw string literals to double-quoted ones and vice versa. The Implement interface intention action now works for unexported interfaces.

You will also find several improvements to the new UI, updates for Docker and Kubernetes, and additional enhancements for web development.

You can read more about the new features on the What’s New page.

If you prefer an interactive approach to learning about the new functionality, check out the What’s New in GoLand 2023.1 tutorial, which can be accessed from the Welcome screen.

Download GoLand 2023.1

The team really enjoyed working on this release. But we didn’t do it alone. Many users helped us improve GoLand by sharing their feedback and suggesting improvements, and we’d like to shout out to them here. You rock!

These authors provided the most valuable contributions to the 2023.1 EAP:

  • Nazar Pysko (nazarpysko)
  • Notealot Yu (714804968)
  • Eric Ye (trghoer)

Thanks a lot – your time and effort are greatly appreciated! We will contact you shortly to offer a 1-year GoLand subscription and a branded T-shirt.

As usual, after releasing a major version, we’d like to share our plans for the next one.

GoLand 2023.2: What’s coming next?

Please note: We can’t guarantee that all of the features listed below will be included in GoLand 2023.2.

We plan to focus on two main areas: user experience and error handling.

UX

In the user experience area, we’d like to implement several solutions and fixes. We hope these improvements will make using GoLand more enjoyable for you:

  • Migration from VS Code. We will bundle the VS Code keymap and add a VS Code migration dialog to the Welcome screen.
  • go mod download. To download Go modules in a project in GoLand, right now you need to apply a quick-fix. Some users want GoLand to run go mod download automatically. The discussion about which approach is better has continued for some time. In v2023.2, we will implement a solution allowing users to turn the automatic download of modules on and off.
  • GOPATH. The “GOPATH is empty” notification may confuse some users (mostly new ones). As of Go 1.18, you don’t need to set GOPATH manually because it is set to ~/go by default. But “GOPATH is empty” is still shown in GoLand for users who didn’t configure GOPATH explicitly, didn’t set the corresponding environment variable, and don’t have a ~/go directory. We will clarify this warning. 
  • Vendoring. Currently, vendoring is enabled in GoLand, depending on the language version. It’s not convenient in some cases – for instance when you have a monorepo containing the vendor folder used by another language, you might want to ignore it. We will allow disabling vendoring for such cases.
  • The Structure tool window. Sometimes users want the Structure tool window to show only the methods inside the file and not in the whole package. This is especially relevant in big projects where a type can have dozens of fields and methods. We will provide an option to show only the symbols in a file.
  • Find Usages. The Find Usages popup will show package names, so that you will be able to tell apart identically named files in different packages.
  • Debugger. We will implement a solution for showing a long string value in the View popup.

Errors

Error handling remains a challenge for Go developers. The Go survey states, “Following the release of generics, respondents’ top challenge when working with Go shifted to error handling.”

In the next version, we will work on some improvements in this area:

  • We will support multiple errors – a feature introduced in Go 1.20. 
  • errors.As and errors.Is will be supported.
  • We will also implement a solution for hiding error-handling blocks. 

Intention previews

We’ve enabled the preview of intentions and quick-fixes by default in 2022.3. We’re implementing support for all the cases gradually.

Profiling Go programs

Go 1.20 supports collecting code coverage profiles for programs, not just tests. This will allow us to implement support for profiling Go programs in GoLand. 

If you’d like to report a bug or suggest a feature, we are always happy to hear from you! Send us your feature requests via our bug tracker or tweet us @GoLandIDE.

image description