For GoLand 2020.1, we stayed focused on the overall performance of the IDE (and we will continue to do so). Go Modules support was extended in many different ways, from code completion, refactorings, and navigation features in the go.mod file to the ability to configure the default values of environment variables using a new dialog. Besides that, we added many code-editing features that require little to no interaction from the user and an expanded code completion family. And, for sure, we didn’t forget about new code inspections, quick-fixes, updates for the debugger, and many more improvements.
If you haven’t checked out these new features yet, visit our What’s New page for detailed descriptions, GIFs, and screenshots.
If you prefer to learn about the release by trying it out instead of reading about it, you can complete the tutorial inside the IDE. Find the Features of GoLand 2020.1 tutorial above your project list on the Welcome screen, or click the Learn tab in the editor. Please remember, though, the tutorial does not cover all the features introduced in the release.
As usual, the introduction section of this blog post contains a BIG THANK YOU for our most active users. These users have helped us make GoLand better by sharing their product experience, feedback, and suggestions with us. We are always happy to reward them with a free 1-year subscription for GoLand and a special edition of our branded T-shirt!
Meet these wonderful folks:
- Roland Illig (YouTrack username: roland.illig)
- Sergey Savenko (YouTrack username: deadok22)
- Denis Cheremisov (YouTrack username: sirkon)
- Sergej Zagursky (YouTrack username: g7r)
- Michael Whatcott
- Mohammed Abubakar (YouTrack username: mohammed.abubakar)
Please note, we can’t guarantee that all of the features listed below will be included in GoLand 2020.2.
More polish for Go Modules support
To make Go Modules support definitely shiny, we’ve decided to fix as many glitches and inconveniences as possible. We’ve assembled a list of our plans for some of the more noticeable ones below:
— GO-7572 — The behavior of the IDE that causes a forcible switch from the Terminal tool window to the Run window when a background job is finished will be reworked to be more user-friendly.
— GO-8774 — GoLand will take a more meaningful approach to resolving imports in projects with vendor/.
— GO-8932 — The bug that prevents the use of Go Modules vendoring mode with GOPROXY=off will be investigated and resolved.
— GO-8476 — Adding a new dependency to a project by typing an import manually will not disable imports optimization.
And of course, how could we resist adding something new?
We will merge
go list processes for multi-module projects into a single process. Doing this will fix the problem with gitlock, make the process easy to cancel, and eliminate the unnecessary generation of 100 progress bars when the project opens.
— GO-9022 — A Rename refactoring for dependencies is in the works! In the event that you decide to rename your module, and as a result, need to do the same with all your dependencies, or if you want to upgrade a major version of some dependency, a dedicated quick-fix will make it easy to do so.
— GO-7118 — We are planning to add syntax highlighting for shadowing variables to help you easily distinguish them in the editor.
— GO-7118 — The Unhandled error code inspection will get a quick-fix that allows you to handle an error immediately via Alt+Enter.
— GO-3378 — Many of you have been waiting for this feature. However, implementing it requires some significant code refactoring on our end. Long story short, though, is that it will finally be delivered! If a file contains any errors, it will be highlighted with a red wavy line in the Project View.
Go 1.15 support
First, we will add support for the upcoming
<em>go vet</em> inspections. On top of that, we will add support for several inspections from the previous versions, as well.
Second, Go 1.15 won’t show directives in the documentation, and neither will GoLand 2020.2. In addition to standard directives, we will exclude //noinspection and //language= comments.
— GO-8711 — The Fill paragraph action will wrap a paragraph (multiple lines) into a column in which the length of each line is set at 80 chars for documentation comments.
— GO-6515 — In addition, it will be possible to navigate from documentation comments to related methods.
The Rename refactoring will suggest renaming related functions, for example in constructors or tests.