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

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 file.   In GoLand version 2024.1, files will be recognized no matter where in the project they are stored. Previously, it was a requirement that they be stored in the 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 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 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 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   To initialize the working directory with Terraform code files, we must first run . 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 .   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 () support   We're excited to unveil support for Terraform’s template language (), 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!