GoLand 2024.1

Released: Apr 4, 2024

2024.1 での更新項目

機能

Full line code completion

  • This release 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. 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.
  • More highlighting while indexing - With this enhancement, highlighting now works for references right from IDE start-up.

AI Assistant

  • Cloud-based completion for structs and interfaces - In 2023.3, inline completion was introduced for function and method blocks. In this release, 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 this release, 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 this release, 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. Users can now manage remote projects directly from the IDE client, as well as create new remote projects or open existing ones.

Dev containers

  • Users can now 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 this release, 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

  • 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 this release 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.

Enhanced Terraform support

  • Suggestion to run terraform init - To initialize the working directory with Terraform code files, you 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 - Added 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 - This release 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.
  • Option to scale down the entire IDE - This release 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, sticky lines have been introduced 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 - GoLand now 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.
  • CI check statuses in the Git tool window - 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 - 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.