Video Recording and Q&A of Let’s Talk About You and GoLand Webinar
Last week we held the Let’s Talk About You and GoLand webinar. We talked about advanced debugging features, refactoring essentials, and the top editing features that GoLand has to offer.
The webinar was presented by Florin Pățan, author of many GoLand blog posts and a frequent webinar speaker. He was joined by two special guests, GoLand team lead Artem Khvastunov and GoLand developer Marat Khabibullin.
If you missed the webinar, don’t worry, we have a recording for you to watch:
During the webinar Florin and the GoLand team answered questions from the audience:
Q: When will the record and debug feature [Mozilla rr] be available for macOS users?
A: Currently the rr debugging tool is only available to Linux users. When rr starts supporting other operating systems, we will think about adding the feature.
Q: Can the paste logic [meaning Generate types from JSON] work with YAML, too?
A: Unfortunately, it is not possible right now, but I think it’s a great feature suggestion. One way to suggest features is to go to Help in GoLand, where you have the Contact support, Submit a Bug Report, and Submit Feedback options. This will put you directly in touch with the GoLand team. You can submit your feedback, you can say: “Hey, I noticed this cool feature, but I’d like it to work for YAML”. Or maybe you want to have some other feature which is not yet present in the IDE. The team is super responsive so just contact them.
Artem and Marat also described the team’s plans for the next release:
Artem: In the next release, we want to cover two huge topics that will basically occupy most of our time. The first one – I think it’s one of the most popular tickets on our issue tracker right now – is about WSL 2 support. Florin has shown that you can run programs on WSL using the ‘Run targets’ feature.
But typically it isn’t convenient because you need to have the source code on your local Windows machine, and then the IDE transfers it to the WSL. Another issue is that the Go SDK has to be set up in both environments.
The first thing we want to do in the next release, which is planned for early December, is to be able to open a WSL project directly from the Windows mount and use the Go SDK from the Linux machine. So you won’t need to have a copy of the project and another Windows SDK to work with the source code.
The second thing is about generics, which are coming to the language. You can already play with generics in 1.17 by enabling certain flags. As far as I know, the Go team is targeting 1.18 that should come out in February 2022 to bring generics to the language. Of course, GoLand is going to support them, and I hope that Marat can tell us a little bit about how that is going.
Marat: Yes, we are working on generics, as Artem said. We already had a parser for them, so you can play about with them a bit in the editor. You will be able to write some code, and it will be syntactically correct from the IDE’s point of view.
But you won’t get everything you expect to get from the IDE, because right now we can’t figure out the types of the generic function calls and any generic constructions. We’re actively working on it, so hopefully, by the next release of the IDE we will have some type inference and you will be able to enjoy proper resolution, code completion, and things like that if you are using generics.
Artem: Our plan for release 2021.3 is to have type inference and code resolution that are necessary for features such as Go to declaration, Find usages, Code completion, and Code inspections to work. This is the planned minimum. And then we will start working on supporting generics in other parts of the IDE, such as refactorings and code templates.
Additionally, we have quite a few inspections we could write because generics come with their own problems. For instance, it would be nice to have a way to quickly convert an existing method to a generic method and so on. In the best case scenario, such things will start appearing in the next release, but it’s quite a lot of work so we will continue working on these features over the next releases.