GoLand 2022.1 EAP #5 Is Available With Better Support For .proto Files, gRPC Reflection Support, and More
GoLand 2022.1 EAP #5 is out.
You can get the EAP build via the Toolbox App, download it from our website, use a snap package (for Ubuntu), or from inside GoLand select Check IDE updates for Early Access Program in Preferences / Settings | Appearance & Behavior | System Settings | Updates.
Better support for .proto files
We’ve introduced a new intention action for .proto files that adds missing import statements for unresolved message references.
After adding the missing import statements, the IDE will provide completion suggestions for message references.
gRPC reflection support
GoLand now provides code completion for the service name, the method name, and the request body options when .proto files describing gRPC services are present in the project.
If your project doesn’t have a .proto file but the server supports gRPC reflection, you will be able to run requests and get completion for service and method names right from a running instance of the server.
Next.js improvements
In this release, we’ve improved support for the popular Next.js framework. Thanks to the out-of-the-box support for React, all of the basic functionalities should have already been working in your Next.js projects.
Some of the framework-specific things didn’t work as expected, though. One of them was support for pages. Starting from v2022.1, this should no longer be a problem. GoLand will resolve paths used in the href property of your Link components. Code completion, navigation, and refactorings like Rename will work, too.
Databases: Canceling running statements
Previously, when you clicked the Cancel Statement button several times, it looked like the query was terminated, but in fact the request continued to be executed in the database.
There was some tricky logic behind this behavior. On the first click, GoLand sent a cancellation request to the database, while on the second click it canceled the JDBC Driver process to terminate all connections to the data source. As a result, the IDE received an error for the first cancellation request because the connection was lost, not because the cancellation was actually completed. We’ve now made the cancellation logic more straightforward. Hopefully, it’s now clearer that it’s the request that is being canceled:
- The progress indicator on the gutter shows a red square while the request is being canceled.
A canceling progress bar is shown, which clarifies the data source and the session.
We no longer deactivate data sources without a warning, as that can be potentially dangerous for some processes happening simultaneously. So, if you click on the Cancel icon for the second time, GoLand will ask you whether you really want to kill the remote process or wait a bit longer. If you choose to deactivate the data source, it will stop the query for the IDE, but it will continue being executed in the database.
After 10 seconds of idle canceling, you’ll be offered to deactivate the data source anyway. After the query is canceled, a gutter icon looking like the ‘No’ symbol will appear to the left of it.
To learn more about database improvements, take a look at this post from the DataGrip team.
Accessibility improvements
We’ve introduced updates and fixes for GoLand’s accessibility features to better accommodate the needs of our users.
To facilitate navigation in the Log tab, the screen reader now reads the names and descriptions of the branches’ trees. It provides a voice prompt to use ⌘ L (Ctrl + G) to navigate through other Log filters.
The accessibility support for macOS users has been improved. In this EAP build, we’ve resolved the VoiceOver issue that was causing multiple unnecessary repetitions of list elements. Additionally, VoiceOver can now read combo box lists, and we’ve fixed the incorrect positioning of the VoiceOver cursor when working on an external display.
That’s it for today. As always, your feedback and comments are appreciated. Get in touch with us on Twitter, leave your comments here, open an issue in our tracker, or drop us a message in the Gophers Slack #goland channel.