Hi there, everybody! We lately launched GoLand 2023.2. For those who’re nonetheless utilizing a earlier model, be sure to don’t miss the replace! With the brand new launch, you get some nice new options like:
- The power to obtain Go modules mechanically
- Fast-fixes for updating dependencies in
go.mod
- Refactorings for migrating operate parameters and technique receivers
errors.Is
anderrors.As
inspections and quick-fixes- An entire bunch of recent integrations and UX enhancements
Try this three and a half minute video to be taught extra concerning the newest enhancements:
And naturally, be happy to discover it by yourself! With a month-long free trial, you will have loads of time to get used to new options.
And final however not least, earlier than we transfer on to the 2023.3 roadmap, we’d like to offer a shout-out to the GoLand EAP customers who devoted their effort and time to offering suggestions and concepts. You all are merely wonderful!
We wish to lengthen a particular due to the next authors, whose contributions in the course of the 2023.2 EAP have been chosen as essentially the most constructive and beneficial:
- Jinwook Jeong (eligius), for figuring out a number of points and providing beneficial concepts.
- Dmitry Matrenichev (lepage), for taking part actively in our challenge tracker and reporting bugs in Slack.
- Julia Niewiejska (Julia_Niewiejska), for locating fairly a tough and vital bug!
Thanks to your assist! We actually admire it. We will probably be in contact quickly to give you a 1-year GoLand subscription and a branded T-shirt.
The GoLand 2023.3 Roadmap
This time we determined to not give attention to particular streams however tweak the entire scope of the IDE. This work consists of doing a little housekeeping and fixing older points. Although now we have numerous floor to cowl on this roadmap, from AI Assistant and refactorings to efficiency and testing. Let’s take a more in-depth take a look at every of those options.
With this version of the roadmap, we’ll embody the tickets so that you can observe and drop a thumbs-up on if you wish to monitor our progress and keep updated with the newest information!
Ache factors for customers
Initially, we’re engaged on a few long-awaited enhancements to make life simpler.
- GO-9008 Help for native Go installations with asdf – asdf is a CLI device that allows you to handle a number of language runtime variations. In response to suggestions from the group, we’ve determined to incorporate it within the upcoming model. With the upcoming launch, GoLand will test the Go model within the
.tool-versions
file and use the suitable Go model from the asdf set up folder for the chosen undertaking. - GO-12649
runtime.GOOS/GOARCH
warning repair – GoLand cares about your code. Generally, it will probably even get a bit overprotective and return false warnings, which might be irritating. In 2023.3, we’re going to add an exception that causes the Situation is at all times true/false inspection to disregardruntime.GOOS/GOARCH
. In case you are at present scuffling with this warning, you need to use the Suppress this inspection possibility.
Refactorings
Highly effective refactorings are amongst GoLand’s most beloved options. In model 2023.3, we’re planning to implement a bunch of recent enhancements for them:
- GO-6262 Add technique intention motion for the interface – That is massive! You probably have had the expertise of including a technique to an interface after which watching the little inexperienced Go to Implementations button vanish just because the implementation doesn’t have the strategy but. We’re going to repair that by including technique stubs to structs that at present implement the interface.
- GO-6302 Extract Parameter refactoring – Whereas it’s completely true that you need to suppose by way of the parameters of a operate earlier than writing it, typically including a brand new variable is a spur-of-the-moment resolution. How cool wouldn’t it be for those who might simply add it to the operate declaration with a easy click on? Within the subsequent launch, you’ll have the ability to do exactly that!
- GO-6275 Change
if-else
withswap
intention motion – This enchancment is sort of easy. Generally anif
assertion begins rising and will get increasingly checks. Because it will get extra advanced, sustaining such code turns into an actual ache. Letting the IDE do that job by changing it with aswap
assertion might be a good suggestion, because it means you’ll not should hold all of the context in your head.
AI Assistant for gophers
Have you ever heard that AI Assistant is coming to JetBrains IDEs? The GoLand group goes to tailor it to the wants of gophers. Here’s a record of options we’re planning to implement in 2023.3:
- GO-14977 AI adjustment to work correctly for Go-specific code – LLMs are nice, however typically they may profit from the help of a cautious developer. On this case, we’re going to design the foundations for code choice to ensure the required chunk of code is chosen and all of the context is offered to the AI Assistant to enhance the relevance of its solutions and strategies.
- LLM tweaks for GoLand – With some options within the AI Assistant plugin able to ship, we’re at present engaged on implementations for GoLand. There are three main additions coming in 2023.3 that can assist you to keep your code with minimal effort:
- GO-14992 Write documentation – If you find yourself within the circulation, you don’t wish to threat shedding your momentum to jot down a pair strains of feedback. With this characteristic, you’ll be able to generate documentation for a operate or every other chunk of code with simply a few clicks.
- GO-14993 Rename – We perceive how onerous naming might be. That’s why AI Assistant will have the ability to present plenty of choices for names primarily based in your code. Check out this demonstration in YouTrack to see the characteristic in motion.
- GO-14994 Clarify regex – Common expressions are typically thought of onerous to learn. Why not simply ask the AI Assistant to offer you a touch about what’s taking place beneath the hood? We hope that each developer will quickly be extra comfy utilizing the facility of standard expressions!
Profiling
Testing and profiling are essential elements of a developer’s routine, so we’re working to make it as handy as attainable in GoLand:
- GO-7101 Profiler obtainable for normal runs – Whereas profiling is integral to growth and upkeep, there’s one tough use case for GoLand’s profiler that makes folks resort to workarounds: profiling code with out triggering the check run. In fact, we are able to simply use a easy check that triggers
primary()
, however that may be a clumsy approach to remedy the issue. With this challenge in thoughts, we’ll permit the profiler to work with packages, not simply exams. - GO-14106 Code protection profiles for packages. Generally writing exams shouldn’t be the easiest way to test how the ultimate construct works. For instance, what for those who needed to run your software and see which code is triggered in a particular protection construct to see the way it works altogether? A code protection profile is a approach to conduct such an investigation, and we hope to implement help for this method within the upcoming launch.
And at last (there isn’t any particular YouTrack challenge for this), we’re doing numerous inside refactoring and code upkeep to make GoLand extra maintainable, steady, and completely examined.
The GoLand group is at all times striving to enhance the lives of Go builders. Nonetheless, some duties find yourself turning into extra sophisticated than we anticipated, and subsequently we can’t assure that every of the options talked about above will probably be included within the launch. Be at liberty to take a look at this public dashboard to monitor our progress on the options coming within the subsequent launch.
If you wish to report a bug or counsel a characteristic, we’re at all times blissful to listen to from you! Be at liberty to submit it by way of our bug tracker, drop us a message within the Gophers Slack #goland channel or tweet at us @GoLandIDE.
Subscribe to Weblog updates