What’s New in GoLand 2024.1

GoLand 2024.1 comes with several significant additions:

  • Full line code completion has been implemented: locally-run, LLM-powered AI completion is now available for free for every GoLand user.
  • There are significant performance improvements for indexing and highlighting.
  • We've polished AI Assistant and implemented upgrades for it, including additional options for code completion and documentation generation.
  • Support for dev containers is out of early access and brings some exciting new features in this iteration.
  • Support for Go 1.22 updates has been added.

The new version also comes with multiple UX and internal tooling enhancements. Let’s dive right in!

Full line code completion

GoLand 2024.1 introduces full line code completion, a new feature that autocompletes entire lines of code using locally-run, context-aware deep learning models. It helps improve coding speed and efficiency while working locally on your device without sending any data to external servers. The feature comes bundled for every user of GoLand 2024.1. It’s the perfect way to get a taste of the AI experience! Intrigued? Read more in our dedicated blog post!

You can control this feature and specify the languages you’d like to get full line suggestions for in Settings | Editor | General | Code Completion | Machine Learning-Assisted Completion.

Performance improvements

Improved indexing performance

Indexing is now significantly faster in GoLand. We observed speed gains of around 30% on average. Real-world results will naturally vary for every user depending on the specifics of their projects and hardware. Feel free to share your measured results with us! Here is an illustration of indexing using the Gin framework.

More highlighting while indexing

With this enhancement, highlighting now works for references right from IDE start-up! Seeing is believing, so we invite you to take a look at these two examples for yourself.

AI Assistant

JetBrains continues to work on AI Assistant to provide more valuable features and actions. In this release, GoLand brings two enhancements to our existing AI features. Try them out!

Cloud-based completion for structs and interfaces

In 2023.3, inline completion was introduced for function and method blocks. In 2024.1, it will also be enabled for structure and interface declarations. When code completion offers a suggestion inside a type declaration, it takes the context of the usage into account along with the parent structure and references. This improves the relevance of AI-based suggestions.

Documentation generation for structure fields and interface methods

GoLand now generates documentation for whole types, interface methods, and struct fields. To generate documentation, place the caret anywhere in a field definition and select the Write Documentation AI action. You can also start typing // before the field’s definition to trigger the suggestion.

Users can now customize prompts for certain AI actions, such as generating a commit message. This allows for more personalized and tailored results.

Starting from version 2024.1, you can export a file containing code snippets generated by the AI chat. You can also attach files to provide additional context when asking questions in the chat.

Remote development

In 2024.1, the IDE provides an improved developer experience for remote scenarios: highlighting, rendering, and the overall smoothness of remote development is now close to the feel of local programming. You can see for yourself how highlighting and completion are almost as fast in the cloud as they are for local codebases.

What’s more, users can now manage remote projects directly from the IDE client, as well as create new remote projects or open existing ones.

Dev containers

Now, users can run a dev container from the Welcome screen (from their local disk or VCS). Previously, it was necessary to open the project first.

Dev containers now come with file templates for all popular programming languages.

Settings have been added that allow users to configure their JetBrains backend IDE (for example GoLand or CLion) right in the devcontainer.json file.

In GoLand version 2024.1, devcontainer.json files will be recognized no matter where in the project they are stored. Previously, it was a requirement that they be stored in the ~/.devcontainer folder.

Support for Go 1.22 updates

While the Go language constantly evolves, we try to provide support for all the new language features as quickly as possible.

Support for range over integers and functions

Go 1.22 brings the ability to easily iterate over integers and functions in a way that is more concise than using a classic for loop.

Vendoring support for Go workspaces

Vendoring gives you more control over the dependencies used in your project by allowing you to store them in the project repository. In Go 1.22, commands in workspaces can use a vendor directory containing the workspace’s dependencies. GoLand now supports this improvement.

Data flow analysis (DFA) update

Data flow analysis was introduced in GoLand 2023.3, and in 2024.1 the feature is now polished enough to be turned on by default. GoLand’s DFA currently supports three inspections: Constant conditions detection, Potential nil dereference, and Error may be not nil. Read more on these developments in our blog post.

Enhanced Terraform support

We've introduced significant improvements to our support for infrastructure-as-code development with Terraform, aimed at developers, site reliability engineers (SREs), and DevOps specialists. This update includes a series of new features and enhancements to simplify the process of creating, managing, and scaling your infrastructure.

Suggestion to run terraform init

To initialize the working directory with Terraform code files, we must first run terraform init. This is often overlooked, leading to error messages from Terraform itself, as well as incomplete code autocompletion and only the partial display of documentation. To avoid this, the IDE now explicitly suggests running terraform init.

Support for third-party providers from the Terraform Registry

The Terraform plugin now offers extended code completion capabilities for more than 3,900 third-party Terraform providers, making it easier for developers to write code efficiently. Additionally, you'll find the latest documentation for each of these providers, along with their specific versions, directly within the IDE.

This allows you to explore new Terraform providers and learn their capabilities faster – all without leaving the IDE.

Terraform template language (tftpl) support

We're excited to unveil support for Terraform’s template language (tftpl), enhancing your workflow with configuration files, scripts, or any program code, such as web server, network, or service configurations. Templating just got easier! Now, you can dynamically fill in values within your templates at runtime, streamlining the process of rendering templates for specific uses.

Terraform’s template language not only supports variable templating and control flow elements, it also encompasses lists and maps, along with the ability to generate JSON and YAML formats.

UX and other features

New terminal

GoLand 2024.1 comes with an overhauled terminal that incorporates both visual and functional enhancements to make terminal-based tasks simpler and more convenient. It offers a convenient history, easy navigation between blocks, and tips for every available command.

The new Terminal tool window seamlessly integrates with the new UI, aligning it with the IDE’s refreshed look and feel and also providing a command completion feature, which supports commands, paths, arguments, and options. For more details, see our dedicated blog post.

Option to scale down the entire IDE

GoLand 2024.1 brings the option to zoom out of the entire IDE. Initially, the scaling range only included the option to zoom in to between 100% and 200%. In the current version, you can also scale the IDE down to 90%, 80%, or 70%.

Sticky lines in the editor

To simplify working with large files and exploring new codebases, we’ve introduced sticky lines in the editor. This feature keeps key structural elements, like the beginnings of classes or methods, pinned to the top of the editor as you scroll. This way, scopes always remain in view, and you can promptly navigate through the code by clicking on a pinned line.

VCS Updates

In-editor code review

Now, GoLand comes with a more streamlined and agile code review workflow for both GitHub and GitLab users. Authors and reviewers can now seamlessly interact directly within the editor, thanks to the implementation of the new review mode. Learn more.

CI check statuses in the Git tool window

We’ve introduced a new column in the Log tab of the Git tool window, allowing you to easily review the results of GitHub commit checks performed by your CI system. Simply click on the tab to view the full details of the CI checks.

Visual indicators for pending GitHub updates

We’ve introduced visual indicators to hint about pending updates within your code review workflow. When there are changes requiring your attention, a blue dot badge will appear on the tool window’s icon. Additionally, unseen pull requests will be marked with a blue dot, ensuring you don’t miss updates in your code review process.

Web and database enhancements

GoLand inherits updates from the WebStorm and DataGrip IDEs. Interested in updates and features for web development or working with databases? Check them out!