Today is a huge milestone for us. Not only are we releasing v2022.3, our third and biggest update of the year, but it’s also GoLand’s 5th anniversary! All this wouldn’t have been possible without the most meaningful part of our job – you!
We have a surprise gift for you and invite you to have fun today and celebrate it with us! Type “Happy B-day, GoLand!” in GoLand 2022.3 or GoLand 2022.2.5 and see what happens! Don’t be shy to share your score on social media and don’t forget to use #WonderGoLand to compete with others 🙂
We’ve also collected stories from our customers, some of whom have been with us from the very beginning, which we lovingly call “the time of Gogland” – the beta name of GoLand. We’re going to publish these in the next few weeks, so stay tuned!
And now, let’s GO to the details of what’s new in this major update.
GoLand 2022.3 offers a variety of performance enhancements, as well as new features for generics and Go workspaces. We’ve integrated Go Playground and added support for improvements to Go doc comments. There are new features for the HTTP Client and Docker, and the new UI is now available.
All of the new functionality available in DataGrip and WebStorm, our IDEs for working with databases and web development, respectively, is also available in GoLand. Check out the DataGrip 2022.3 What’s New and WebStorm 2022.3 What’s New web pages for more information.
To learn more about the new features in GoLand 2022.3, head over to our What’s New page, where you’ll find a full overview of the release along with GIFs and screenshots.
If you prefer an interactive approach to learning, we invite you to complete the What’s New in GoLand 2022.3 tutorial from the IDE’s Welcome screen.
Here’s a brief overview of the new features.
Performance improvements
- We’ve changed our API and managed to reduce the number of
go list
launches. This change will significantly improve performance for big projects with many modules. - When you open a project, the information reported by
go list
is saved on the disk in cache memory. When you open that project again, the data about the project’s structure is loaded from memory and considered when indexing starts. This will speed up indexing. - GoLand has received a number of other performance improvements designed to decrease the time it takes to launch applications and open projects in JetBrains IDEs.
Generics
- You can now generate tests for functions with generic parameters.
- An inspection that detects lowercase type parameters is now available, as well as a quick-fix to make them uppercase.
Go workspaces
- The new Go Workspace File action allows you to create a
go.work
file. Existing Go modules will automatically be added togo.work
. - You can now generate
go.work
fromgo.mod
if you havereplace
directives there.
Go doc comments
Text link and doc links are rendered as links in the Quick Documentation popup and the Documentation tool window. New headings and lists are rendered as HTML headings and lists.
Integrated Go Playground
We’ve integrated the Go Playground functionality into GoLand. You can select a piece of code and open it in a scratch file with a toolbar that contains the same options you have when using Go Playground.
Quick-fixes
If your type contains itself, you will get an Invalid recursive type error. To avoid this, you should include a pointer to a type, not a type itself. A quick-fix is now available to make this change for you.
Editor
- We’ve started implementing the Code Vision feature. This feature displays the code authors if version control integration is enabled. Also, usages are displayed near all functions and types.
- GoLand now shows inlay hints for constant definition blocks.
- The IDE now ignores auto-generated protocol buffer fields that start with
XXX_
when you invoke the Fill all fields intention action.
Other Go-related features
- GoLand now automatically picks up system variables related to Go modules and displays them in the Environment variables dialog window.
- The IDE now always shows package names in the Quick documentation popup for top-level declarations.
- We’ve disabled the Receiver names are different inspection for files with generated code.
HTTP Client
- The HTTP Client now supports executing script blocks before requests. You can generate some data before executing a request and put it in the final request using variables.
- You can also compute the md5 or sha1 hash value for HTTP requests, and the IDE now features a new set of random variables.
- You can use the Put query parameters on separate lines intention action to break the query into smaller fragments on different lines.
Docker
- GoLand now supports connections to Docker running in WSL.
- You can use the Pull Docker image intention action to pull an image without running it from
Dockerfile
ordocker-compose.yml
. - We’ve introduced full support for
.dockerignore
files, including code highlighting and completion. - GoLand now supports the heredoc format in
Dockerfile
. - You can now use Docker Contexts to set up additional Docker connections.
Remote development (Beta)
- Your IDE backend can now launch directly in WSL 2, and you can connect to it the same way you would connect to any remote machine when using remote development in GoLand.
User Interface
- The new UI can now be enabled in the settings.
- The preview functionality for intention actions is switched on by default.
- We’ve implemented the option to drag tool windows out of the main window and dock them to floating editor tabs.
- Tips of the Day now has headings. We’ve also fine-tuned the algorithm that determines which tips appear, so you’ll see the ones that are most relevant to your experience.
- It is again possible to bookmark files from editor tabs. You can also add all of the files in all currently open tabs to Bookmarks.
- We’ve introduced a reworked solution to synchronize your custom user settings.
Databases
- A preliminary iteration of the long-awaited support for Redis has been implemented.
- Now, when using quick search, you also have the ability to filter objects. All non-matching objects will be hidden.
Check out the DataGrip What’s New page to see all of the new features for working with databases that are available in this release.
Web development
This version introduces the new Code Vision feature for web development. It gathers various metrics for types and type members in your JavaScript and TypeScript code and displays this information near their declarations.
Check out the WebStorm What’s New page to see all of the new features for web development that are available in this release.