GoLand Changelog

What's new in GoLand 2024.1 Build 241.14494.155 RC

Mar 25, 2024
  • It is fully tested and production ready, including a workaround that reduces the probability of crashes when working with Java after updating to macOS Sonoma 14.4. Upgrade now and take a peek at how the upcoming GoLand 2024.1 looks.

New in GoLand 2024.1 Build 241.14494.33 Beta (Mar 11, 2024)

  • The Beta version includes all of the new features and improvements from our current EAP cycle that are expected to appear in the upcoming 2024.1 release:
  • AI features:
  • Full line completion
  • Cloud-based completion for structs and interfaces
  • Documentation generation for fields
  • Support for Go 1.22:
  • Support for range for integers and functions
  • Vendoring support for Go workspaces
  • Performance improvements:
  • More highlighting while indexing
  • Improved indexing performance
  • UX and technologies support:
  • Data flow analysis update
  • New terminal
  • Option to scale down the entire IDE
  • Updated product icons

New in GoLand 2024.1 Build 241.14024.16 EAP 7 (Mar 6, 2024)

  • In this version, we've introduced several minor updates and bug fixes.

New in GoLand 2024.1 Build 241.12662.60 EAP (Feb 20, 2024)

  • In this version, we have introduced several minor updates and bug fixes.
  • Beyond those, the new version brings support for the range-over-int statement introduced in Go 1.22.

New in GoLand 2024.1 Build 241.10840.30 EAP 3 (Feb 2, 2024)

  • In this EAP, we’ve introduced a bunch of minor updates and bug fixes. Please see the release notes below for the complete list of fixes and improvements.

New in GoLand 2024.1 Build 241.8102.131 EAP 1 (Jan 21, 2024)

  • In this version, Data Flow Analysis is turned on by default.
  • Also, we've introduced several bug fixes:
  • Fixed: Type does not implement in returns with generics pointers false positive trigger.
  • Fixed: False positive runtime.GOOS/GOARCH Condition is always true/false warning trigger.
  • Fixed: "Parameter Info popup" display error.

New in GoLand 2023.3 Build 233.11799.194 RC (Dec 6, 2023)

  • Method values qualified with new() or a pointer dereference now pass type checks correctly.

New in GoLand 2023.3 Build 233.11799.68 Beta (Nov 27, 2023)

  • The new version comes with the following updates:
  • The Create parameter refactoring is now turned off for the main function.
  • A fix for the Write Documentation action: Comments and documentation now appear before Go compiler directives.

New in GoLand 2023.3 Build 233.11799.10 Beta (Nov 15, 2023)

  • The Beta provides all the new features and improvements introduced in previous EAP releases, some of which include:
  • Multiple improvements to AI Assistant
  • Support for Devcontainers
  • Support for local Go installations with asdf
  • Custom message formatting for printf-like functions
  • Extract Parameter refactoring
  • Switch generation for enums
  • Create function quick-fix
  • Show parameter info for slice expressions
  • Error handlers folding
  • Code coverage profiles for programs

New in GoLand 2023.3 Build 233.11555.11 EAP (Nov 10, 2023)

  • In this build, we introduced a highly anticipated feature that allows you to set up printf-like hints for custom string functions.

New in GoLand 2023.3 Build 233.11361.11 EAP (Oct 31, 2023)

  • In this EAP, we’ve introduced a bunch of minor updates and bug fixes. Please see the release notes below for the complete list of fixes and improvements.

New in GoLand 2023.3 Build 233.10527.20 EAP (Oct 23, 2023)

  • In this EAP, we’ve introduced a bunch of minor updates and bug fixes. Please see the release notes below for the complete list of fixes and improvements.

New in GoLand 2023.3 Build 233.9102.195 EAP (Oct 7, 2023)

  • In this EAP, we’ve introduced a bunch of minor updates and bug fixes. Please see the release notes below for the complete list of fixes and improvements.

New in GoLand 2023.3 Build 233.8264.9 EAP (Oct 1, 2023)

  • In this EAP, we’ve introduced a bunch of minor updates and bug fixes. Please see the release notes below for the complete list of fixes and improvements.

New in GoLand 2023.2 Build 232.8660.149 RC (Jul 23, 2023)

  • This build brings all of the new features already announced during the EAP. It also includes support for errors.Is, errors.As, and the built-in functions min, max, and clear.

New in GoLand 2023.2 Build 232.8660.55 Beta (Jul 13, 2023)

  • The Beta version provides all of the new features and improvements already announced during our current EAP cycle and expected in the major 2023.2 release.
  • Our recent EAP blog posts have more details about these updates, but here are some of the highlights:
  • Improved integration with Go modules. You can now download all dependencies automatically on project open and after each change of the go.mod file. There is also a new quick-fix to update dependencies in go.mod to their recent versions. In addition, you can now disable vendoring on a per-project basis, for example, when you have a monorepo containing the vendor folder used by another language.
  • The Migrate function parameter to method receiver refactoring. We have a new refactoring that can be used when you need to convert separate functions to methods of a type. There is also the Migrate method receiver to function parameter refactoring, which does the opposite and turns methods of a type to separate functions.
  • We’ve implemented completion and checks for make function arguments.
  • Other Go-related features include:
  • The receiver type is shown in completion for method expressions.
  • The error message for missing arguments in a type’s instantiation has been improved.
  • There’s now a preview for the Wrap error handling in a closure intention.
  • A warning for redundant conditions in for loops has been added.
  • Performance: there’s a new tool for easily generating shared indexes.
  • Make sure to try our brand-new AI Assistant!
  • You can now commit specific lines of code.
  • We also have improvements for Docker integration and the Kubernetes plugin.
  • User experience enhancements include:
  • Bundled VS Code keymap
  • File sorting by modification time in the Project view
  • Pinned run configurations in the Run widget
  • Improved main toolbar customization
  • Single-click navigation between project directories
  • Text search in Search Everywhere
  • For the user interface, we have colored project headers in the new UI.
  • The much-anticipated GitLab integration is available.
  • We have also added the Kafka plugin.
  • LSP API support is available for plugin developers.
  • Don’t miss the improvements we’ve implemented for the HTTP Client and Swagger and OpenAPI support.

New in GoLand 2023.2 Build 232.8453.111 EAP (Jul 6, 2023)

  • LSP API support.
  • Support for Swagger and OpenAPI schemas in the HTTP Client.
  • Support for JavaScript imports in the HTTP Client.

New in GoLand 2023.2 Build 232.8296.17 EAP (Jun 28, 2023)

  • This EAP build brings in a major addition to GoLand - AI Assistant.
  • Colored project headers are available in the new UI.
  • For the convenience of Linux users, the native header of the OS has been removed in the new UI.

New in GoLand 2023.2 Build 232.7754.71 EAP (Jun 19, 2023)

  • We've added several intention actions and inspections to help you update dependencies in go.mod files faster. You can update dependencies to their patches or latest major versions.
  • This build introduces a highly anticipated feature to selectively commit specific parts of code chunks.
  • Docker improvements:
  • It is now easy to access and preview the contents of a Docker image layer in the Services view.
  • You can now set a Docker run configuration to run before another configuration by designating it a Before Launch task.
  • Kubernetes updates:
  • You can now set up multiple kubeconfig files within a single project.
  • You can now view logs for deployments in Kubernetes clusters from the Services tool window.

New in GoLand 2023.2 Build 232.7295.16 EAP (Jun 14, 2023)

  • You can now sort files by modification time in the Project view and pin run configurations in the Run widget. The new Kafka plugin is also available.

New in GoLand 2023.2 Build 232.6734.9 EAP (Jun 7, 2023)

  • This build introduces initial integration with GitLab.
  • You can now use a dropdown menu to quickly choose actions that you want to add to the new UI's main toolbar.
  • In the Project view, there's a new Open Directories with Single Click option.
  • The Search Everywhere (Double Shift) functionality now includes text search capabilities similar to Find in Files.

New in GoLand 2023.2 Build 232.6095.10 EAP (May 25, 2023)

  • In addition to user experience and performance improvements, this build introduces an error message for cases when the Migrate function parameter to method receiver refactoring is impossible or undesirable.

New in GoLand 2023.2 Build 232.5150.113 EAP (May 17, 2023)

  • We've implemented the ability to download modules automatically on project open and after each change of the go.mod file.
  • We have two new refactorings - Migrate function parameter to method receiver and Migrate method receiver to function parameter.
  • We've added type-aware completions for make function invocations and checks for make arguments.
  • You can now disable vendoring per project, for example, when you have a monorepo containing the vendor folder used by another language.
  • If you're accustomed to the VS Code keymap, you can now choose it in the Customize section on the Welcome screen.

New in GoLand 2023.1 Build 231.8109.172 RC 2 (Apr 2, 2023)

  • If no critical issues are found, this build will become the official release version.

New in GoLand 2023.1 Build 231.8109.46 Beta 2 (Mar 20, 2023)

  • There's a new quick-fix to update vulnerable dependencies to a safe version.
  • We've added completion for container names when you use the testcontainers-go package.
  • You can now navigate and access declarations of gRPC messages, services, and methods from Go code and their Go implementations from .proto files.

New in GoLand 2023.1 Build 231.7864.78 Beta (Mar 9, 2023)

  • The Beta version provides all of the new features and improvements that have already been announced during our current EAP cycle and are expected in the major 2023.1 release. To read about these updates in detail, refer to our EAP blog posts. Here are some of the highlights:
  • The ability to implement unexported interfaces.
  • You can run scratch files with non-standard-library Go dependencies.
  • You can use a quick-fix to remove leading spaces from Go directives.
  • A new intention action lets you quickly convert raw string literals to double-quoted ones and vice-versa.
  • When you rename a generic struct, the Rename refactoring now suggests renaming the receivers accordingly.
  • We’ve improved performance – files are now scanned to index in smart mode, and GoLand now suggests adding specific folders to Windows Defender’s list of exclusions.
  • There are Docker and Kubernetes improvements.
  • It’s now possible to zoom into and out of GoLand entirely, increasing or decreasing the size of all UI elements at once.
  • We’ve introduced the new Remember size for each tool window setting.
  • We’ve updated the new UI. You now have Compact mode, Vertical split for tool windows, Project tabs for macOS users, and more.
  • You can now use regular expressions to create your own search and replace inspections.
  • We’ve implemented a new intention action for reformatting tables in Markdown.
  • There are also improvements for web development. Initial Astro support has landed with a new plugin available to use in GoLand.
  • VULNERABILITY CHECKER:
  • GoLand can now analyze your codebase and highlight known vulnerabilities.
  • The IDE highlights packages with known vulnerabilities in go.mod. You can hover over the highlighted code or press Alt+Enter (⌥ ↩) and choose Show vulnerability info for …, and GoLand will show you a list of vulnerabilities with links to the detailed description. The data about vulnerabilities is provided by the software security company Checkmarx.
  • GoLand also highlights method calls from packages with known vulnerabilities right in your editor. You can hover over highlighted code and see a popup with information about the vulnerability and a link to the detailed description.
  • There’s also the new Dependency Checker tool window. You can access it via View | Tool Windows | Dependency Checker or Code | Analyze Code | Show Vulnerable Dependencies.
  • That’s it for today! We’d love to hear what you think about the new features. Get in touch with us on Twitter, leave your comments here, open an issue in our tracker, or drop us a message in the Gophers Slack #goland channel.

New in GoLand 2023.1 Build 231.7665.20 EAP (Mar 2, 2023)

  • We've fine-tuned the user experience when pasting a line that was copied or cut without selection. There's now a special setting that allows you to control the placement of the pasted content.
  • There's now the option to show whitespaces only in selected code.
  • There also some new features for web development.

New in GoLand 2023.1 Build 231.6890.12 EAP (Feb 14, 2023)

  • We've resolved one of the most popular feature requests for the IDE's new UI - implementing project tabs for macOS users.
  • We've updated the Typo inspection so that it no longer checks the spelling of hashes and special values and doesn't report them as misspelled.

New in GoLand 2023.1 Build 231.5920.13 EAP (Jan 30, 2023)

  • You can now run scratch files with non-standard-library Go dependencies.
  • There are an inspection and a quick-fix that detect and remove leading spaces in Go directives.
  • It is now possible to preview more intention actions and quick-fixes: create function, create method, and fill all fields.
  • We've improved the IDE startup experience by performing the Scanning files to index... process in smart mode.
  • You can now use regular expressions to create your own search and replace inspections.
  • It's now possible to zoom into and out of GoLand entirely, increasing or decreasing the size of all UI elements at once.
  • There is the new Remember size for each tool window setting.

New in GoLand 2022.3.1 Build 223.8214.59 (Dec 22, 2022)

  • Goland:
  • GoLand 2022.3 offers performance enhancements, as well as new features for generics and Go workspaces.
  • We’ve integrated Go Playground, added support for improvements to Go doc comments, introduced new features for HTTP Client and Docker, and made the new UI available.
  • As usual, you will find new features for web development and databases, like Redis support.
  • If you prefer an interactive approach to learning, we invite you to complete the What's New in GoLand 2022.3 tutorial from the Welcome screen.
  • Last but not least, GoLand turns 5 years old today and we invite you to celebrate with us. Type "Happy B-day, GoLand!" in GoLand 2022.3 or GoLand 2022.2.5 and see what happens!
  • PERFORMANCE IMPROVEMENTS:
  • The Background Tasks window showing indexing and go list running
  • go list changes to improve indexing:
  • When you open a project, GoLand indexes the files and runs the go list command, which reports information about the project structure. Indexing is paused while go list is running, and you don’t have access to code insight features until indexing is finished.
  • Previously, GoLand would run go list twice in some cases. We’ve changed our API and reduced the number of go list launches. We hope that this change significantly improves performance for large projects with many modules.
  • Restore project structure from cache on open:
  • Now when you open a project, the information reported by go list is saved to the disk in cache memory. When you open that project again, the data about the project’s structure is loaded from memory and considered when indexing starts.
  • Thanks to this, indexing continues without pauses and finishes faster, and the code insight features are available much sooner after opening the project.
  • Faster IDE startup and project opening:
  • GoLand has received a number of other performance improvements designed to decrease the time it takes to launch applications and open projects in JetBrains IDEs.
  • As a result, overall startup performance – including editor restoration – has been improved by around 30%.
  • GENERICS:
  • Generating a test for a generic function:
  • Test generation for generic functions:
  • You can now generate tests for functions with generic parameters.
  • Quick-fix that deletes type parameters with empty parameter lists
  • Quick-fix to capitalize type parameters:
  • We now have an inspection that detects lowercase type parameters, as well as a quick-fix to make them uppercase.
  • GO WORKSPACES:
  • Using the Go Workspace File action:
  • The Go Workspace File action:
  • In the New context menu, you’ll now find the Go Workspace File action. When you select it, a go.work file will appear in your root folder. Existing Go modules will automatically be added to the go.work file.
  • Generating go.work using replace directives:
  • Generate go.work using replace directives:
  • You can now generate go.work from go.mod if you have replace directives there. Place the caret on a replace directive, press Alt+Enter to see all available intention actions, and select the Add … module to workspace quick-fix.
  • Go doc comments:
  • Go 1.19 has added support for links, lists, and new headings in doc comments. GoLand 2022.3 also supports these new features.
  • Text and doc links are shown in the Quick Documentation popup and the Documentation tool window
  • Support for links:
  • We've added references to doc links in GoLand. Clicking on them leads to the referenced element, while clicking on a text link leads to a text-link definition.
  • Both text and doc links are rendered as links in the Quick Documentation popup and the Documentation tool window.
  • Support for new headings:
  • Starting from Go 1.19, a heading is a line that begins with a number sign (#) followed by a space and the heading text.
  • New headings are rendered as HTML headings in GoLand's Quick Documentation popup and the Documentation tool window.
  • Lists are shown in the Documentation tool window:
  • Support for lists:
  • Lists are rendered as HTML lists in GoLand's Quick Documentation popup and the Documentation tool window.
  • INTEGRATED GO PLAYGROUND:
  • We've integrated the Go Playground functionality inside GoLand.
  • You can select a piece of code, choose the Open In option, and then click Playground. This will open a scratch file with a toolbar that contains the same options you have when using Go Playground.
  • You can format and share your code, change the Go version, run your code using the Go playground server, or run it locally.
  • New quick-fixes:
  • Using a quick-fix to turn a type into a pointer
  • Quick-fix for invalid recursive type:
  • If your type contains itself, you will get an "Invalid recursive type" error. To avoid this, you should include a pointer to a type, not a type itself. We now have a quick-fix for that.
  • EDITOR:
  • Code author's name is shown in the Editor:
  • Code Vision:
  • We've started implementing the Code Vision feature. For now, the code authors are displayed if version control integration is enabled. If you click on a code author's name, the Annotate with Git blame sidebar opens, letting you see who introduced various changes.
  • Usages displayed near functions and types
  • We've also introduced usages displayed near all functions and types that show how many times the function or type is referenced in the current project.
  • Inlay hints for constant definition blocks are shown in the Editor:
  • Inlay hints for constant definitions:
  • GoLand now shows inlay hints for constant definition blocks. This is particularly useful in iota-derived constant blocks, where the hints show the iota values associated with each position.
  • Auto-generated protobuf fields are ignored after invoking the Fill all fields intention action
  • Auto-generated protobuf fields ignored for Fill all fields
  • The IDE now ignores auto-generated protocol buffer fields that start with XXX_ when you invoke the Fill all fields intention action. These fields are shown only after you invoke completion for the second time.
  • OTHER GO-RELATED FEATURES:
  • Go environment variables are displayed in the settings:
  • Go environment variables displaye in the settings:
  • GoLand now automatically picks up system variables related to Go modules and displays them in the Environment variables dialog window. To open this window, go to Settings | Go | Go Modules and click on the Edit environment variables icon.
  • Package names are shown in Quick documentation:
  • Package names always shown in Quick documentation:
  • The IDE now always shows package names in the Quick documentation popup for top-level declarations. Previously, package headers were shown only when doc.go or .go files were found.
  • Increased file size limit:
  • We've raised the file size limit from 2.5 MB to 10 MB. Code insight features, like navigation and highlighting, don't work for files that exceed the size limit.
  • While the 2.5 MB limit was enough for most files, there are projects with files bigger than that – for instance, the AWS SDK or GCP.
  • The Receiver names are different inspection ignores generated code:
  • Since the Receiver names are different inspection is not relevant for generated code, we've disabled it for files that contain a comment matching the following regular expression: ^// Code generated .* DO NOT EDIT.$
  • HTTP CLIENT:
  • Pre-request scripts and new APIs for JavaScript handlers
  • The HTTP Client now supports executing script blocks before requests. You can generate data before executing a request and put it in the final request using variables. A quick-fix is available that will create the boilerplate code for initializing variables.
  • Computing the md5 or sha1 hash values for HTTP requests:
  • The HTTP Client now supports the Crypto API. You can compute the md5 or sha1 hash values for HTTP requests.
  • Using random values in HTTP requests:
  • For simple cases, the IDE now features a new set of random variables.
  • DOCKER:
  • The Docker settings in GoLand on Windows
  • Docker executable from WSL without Docker Desktop
  • GoLand now supports connections to Docker that run in Windows Subsystem for Linux (WSL). You can set up such a connection in Settings | Build, Execution, Deployment | Docker.
  • Using a quick-fix to pull an image:
  • New intention action: Pull Docker image:
  • There is now an easy way to pull a required image without running it from a Dockerfile or docker-compose.yml. For this, call up the context actions (Alt+Enter) on the highlighted image name and then select Pull Docker image.
  • Using code completion in a dockerignore file
  • Support for the .dockerignore file type:
  • We've introduced full support for .dockerignore files, including code highlighting and completion. These files are now taken into account when you build an image from the IDE.
  • Heredoc syntax is highlighted in GoLand:
  • Support for the heredoc format in Dockerfile files
  • Here documents allow you to redirect subsequent Dockerfile lines to the input of the RUN or COPY commands. GoLand now supports this syntax, so you can use it to generate config files or multiline scripts right in your Dockerfile files.
  • Setting up additional Docker connections using Docker Contexts
  • Docker Connections From Docker Contexts:
  • You can now set up additional Docker connections using Docker Contexts if you already have these settings in your Docker config. You can do so by calling the Add Service context menu in the Services view and selecting Docker Connections From Docker Contexts.
  • USER INTERFACE:
  • New UI available:
  • As you may already know, this May we announced a closed preview program for the new UI in JetBrains IDEs.
  • We invite you to switch to the new UI in Settings | Appearance & Behavior | New UI Preview, give it a test drive, and share your thoughts about this change with us.
  • Using the preview functionality for intention actions
  • Intention action preview enabled by default:
  • The preview functionality for intention actions is now switched on by default, so you can instantly see how your code will be altered once you apply the IDE's suggestions.
  • You can enable or disable the preview feature by pressing Ctrl+Q while the list of intention actions is open.
  • Dragging a tool window out of the main window and docking it to a floating editor tab
  • Dock tool windows to floating editor tabs:
  • To make it easier to arrange your working space and interact with GoLand on multiple monitors, we've implemented the option to drag tool windows out of the main window and dock them to floating editor tabs.
  • The Tip of the Day window:
  • Improved Tips of the Day:
  • We've enhanced the Tips of the Day feature, a learning tool that helps you explore GoLand.
  • Each tip now has a heading. We've also fine-tuned the algorithm that determines which tips appear so you'll see the ones that are most relevant to your experience with the IDE and the project you're working on.
  • Bookmarking a file from an editor tab
  • Updated bookmarks:
  • It is again possible to bookmark files from editor tabs. Just right-click on a tab to invoke the context menu and select Bookmarks.
  • Adding all the files in currently open tabs to bookmarks:
  • You can add all of the files in all currently open tabs to Bookmarks. To do this, either invoke the same context menu and select Bookmark Open Tabs, or call this action using the three dots icon located on the right-hand side of the editor tabs pane.
  • The Settings Sync section in GoLand's settings
  • New Settings Sync solution:
  • We've introduced a reworked solution to synchronize your custom user settings. For quite a long time, there were two plugins that existed in parallel and featured intersecting functionality – IDE Settings Sync and Settings Repository. To avoid the confusion from having two similar bundled plugins, we've merged their feature sets into a single solution – the new Settings Sync plugin.
  • You can find details about the new unified solution here.
  • DATABASES:
  • Note: to learn about all of the updates for databases in the 2022.3 version, head over to the DataGrip What's New page.
  • Selecting a connection to Redis in the Database tool window
  • REDIS SUPPORT:
  • A preliminary iteration of long-awaited support for Redis has been implemented.
  • Filtering objects while using quick search in the Database tool window
  • Quick filter:
  • Now, when using quick search, you also have the ability to filter objects. All non-matching objects will be hidden.
  • Web development:
  • Note: to learn about all of the web development improvements in the 2022.3 version, head over to the WebStorm What's New page.
  • Code author's name and the usages metric are shown in the Editor
  • Code Vision for JavaScript and TypeScript:
  • This version introduces the new Code Vision feature for web development. It gathers various metrics for types and type members in your JavaScript and TypeScript code and displays this information near their declarations.
  • Other updates:
  • Using a quick-fix to suppress an inspection in a YAML file
  • Quick-fix to suppress inspections in YAML
  • There's a new quick-fix to suppress inspections with a comment in YAML files, including Kubernetes files, OpenAPI specifications, and docker-compose.yml files.
  • We've also introduced an option to fold multiline comments that make up a block of 3 or more lines and start with #.
  • Installers for Windows ARM64:
  • We've started distributing installers for Windows ARM64. You can already download them from our website or the Toolbox App.

New in GoLand 2022.3.1 Build 223.8214.59 (Dec 22, 2022)

  • Goland:
  • GoLand 2022.3 offers performance enhancements, as well as new features for generics and Go workspaces.
  • We’ve integrated Go Playground, added support for improvements to Go doc comments, introduced new features for HTTP Client and Docker, and made the new UI available.
  • As usual, you will find new features for web development and databases, like Redis support.
  • If you prefer an interactive approach to learning, we invite you to complete the What's New in GoLand 2022.3 tutorial from the Welcome screen.
  • Last but not least, GoLand turns 5 years old today and we invite you to celebrate with us. Type "Happy B-day, GoLand!" in GoLand 2022.3 or GoLand 2022.2.5 and see what happens!
  • PERFORMANCE IMPROVEMENTS:
  • The Background Tasks window showing indexing and go list running
  • go list changes to improve indexing:
  • When you open a project, GoLand indexes the files and runs the go list command, which reports information about the project structure. Indexing is paused while go list is running, and you don’t have access to code insight features until indexing is finished.
  • Previously, GoLand would run go list twice in some cases. We’ve changed our API and reduced the number of go list launches. We hope that this change significantly improves performance for large projects with many modules.
  • Restore project structure from cache on open:
  • Now when you open a project, the information reported by go list is saved to the disk in cache memory. When you open that project again, the data about the project’s structure is loaded from memory and considered when indexing starts.
  • Thanks to this, indexing continues without pauses and finishes faster, and the code insight features are available much sooner after opening the project.
  • Faster IDE startup and project opening:
  • GoLand has received a number of other performance improvements designed to decrease the time it takes to launch applications and open projects in JetBrains IDEs.
  • As a result, overall startup performance – including editor restoration – has been improved by around 30%.
  • GENERICS:
  • Generating a test for a generic function:
  • Test generation for generic functions:
  • You can now generate tests for functions with generic parameters.
  • Quick-fix that deletes type parameters with empty parameter lists
  • Quick-fix to capitalize type parameters:
  • We now have an inspection that detects lowercase type parameters, as well as a quick-fix to make them uppercase.
  • GO WORKSPACES:
  • Using the Go Workspace File action:
  • The Go Workspace File action:
  • In the New context menu, you’ll now find the Go Workspace File action. When you select it, a go.work file will appear in your root folder. Existing Go modules will automatically be added to the go.work file.
  • Generating go.work using replace directives:
  • Generate go.work using replace directives:
  • You can now generate go.work from go.mod if you have replace directives there. Place the caret on a replace directive, press Alt+Enter to see all available intention actions, and select the Add … module to workspace quick-fix.
  • Go doc comments:
  • Go 1.19 has added support for links, lists, and new headings in doc comments. GoLand 2022.3 also supports these new features.
  • Text and doc links are shown in the Quick Documentation popup and the Documentation tool window
  • Support for links:
  • We've added references to doc links in GoLand. Clicking on them leads to the referenced element, while clicking on a text link leads to a text-link definition.
  • Both text and doc links are rendered as links in the Quick Documentation popup and the Documentation tool window.
  • Support for new headings:
  • Starting from Go 1.19, a heading is a line that begins with a number sign (#) followed by a space and the heading text.
  • New headings are rendered as HTML headings in GoLand's Quick Documentation popup and the Documentation tool window.
  • Lists are shown in the Documentation tool window:
  • Support for lists:
  • Lists are rendered as HTML lists in GoLand's Quick Documentation popup and the Documentation tool window.
  • INTEGRATED GO PLAYGROUND:
  • We've integrated the Go Playground functionality inside GoLand.
  • You can select a piece of code, choose the Open In option, and then click Playground. This will open a scratch file with a toolbar that contains the same options you have when using Go Playground.
  • You can format and share your code, change the Go version, run your code using the Go playground server, or run it locally.
  • New quick-fixes:
  • Using a quick-fix to turn a type into a pointer
  • Quick-fix for invalid recursive type:
  • If your type contains itself, you will get an "Invalid recursive type" error. To avoid this, you should include a pointer to a type, not a type itself. We now have a quick-fix for that.
  • EDITOR:
  • Code author's name is shown in the Editor:
  • Code Vision:
  • We've started implementing the Code Vision feature. For now, the code authors are displayed if version control integration is enabled. If you click on a code author's name, the Annotate with Git blame sidebar opens, letting you see who introduced various changes.
  • Usages displayed near functions and types
  • We've also introduced usages displayed near all functions and types that show how many times the function or type is referenced in the current project.
  • Inlay hints for constant definition blocks are shown in the Editor:
  • Inlay hints for constant definitions:
  • GoLand now shows inlay hints for constant definition blocks. This is particularly useful in iota-derived constant blocks, where the hints show the iota values associated with each position.
  • Auto-generated protobuf fields are ignored after invoking the Fill all fields intention action
  • Auto-generated protobuf fields ignored for Fill all fields
  • The IDE now ignores auto-generated protocol buffer fields that start with XXX_ when you invoke the Fill all fields intention action. These fields are shown only after you invoke completion for the second time.
  • OTHER GO-RELATED FEATURES:
  • Go environment variables are displayed in the settings:
  • Go environment variables displaye in the settings:
  • GoLand now automatically picks up system variables related to Go modules and displays them in the Environment variables dialog window. To open this window, go to Settings | Go | Go Modules and click on the Edit environment variables icon.
  • Package names are shown in Quick documentation:
  • Package names always shown in Quick documentation:
  • The IDE now always shows package names in the Quick documentation popup for top-level declarations. Previously, package headers were shown only when doc.go or .go files were found.
  • Increased file size limit:
  • We've raised the file size limit from 2.5 MB to 10 MB. Code insight features, like navigation and highlighting, don't work for files that exceed the size limit.
  • While the 2.5 MB limit was enough for most files, there are projects with files bigger than that – for instance, the AWS SDK or GCP.
  • The Receiver names are different inspection ignores generated code:
  • Since the Receiver names are different inspection is not relevant for generated code, we've disabled it for files that contain a comment matching the following regular expression: ^// Code generated .* DO NOT EDIT.$
  • HTTP CLIENT:
  • Pre-request scripts and new APIs for JavaScript handlers
  • The HTTP Client now supports executing script blocks before requests. You can generate data before executing a request and put it in the final request using variables. A quick-fix is available that will create the boilerplate code for initializing variables.
  • Computing the md5 or sha1 hash values for HTTP requests:
  • The HTTP Client now supports the Crypto API. You can compute the md5 or sha1 hash values for HTTP requests.
  • Using random values in HTTP requests:
  • For simple cases, the IDE now features a new set of random variables.
  • DOCKER:
  • The Docker settings in GoLand on Windows
  • Docker executable from WSL without Docker Desktop
  • GoLand now supports connections to Docker that run in Windows Subsystem for Linux (WSL). You can set up such a connection in Settings | Build, Execution, Deployment | Docker.
  • Using a quick-fix to pull an image:
  • New intention action: Pull Docker image:
  • There is now an easy way to pull a required image without running it from a Dockerfile or docker-compose.yml. For this, call up the context actions (Alt+Enter) on the highlighted image name and then select Pull Docker image.
  • Using code completion in a dockerignore file
  • Support for the .dockerignore file type:
  • We've introduced full support for .dockerignore files, including code highlighting and completion. These files are now taken into account when you build an image from the IDE.
  • Heredoc syntax is highlighted in GoLand:
  • Support for the heredoc format in Dockerfile files
  • Here documents allow you to redirect subsequent Dockerfile lines to the input of the RUN or COPY commands. GoLand now supports this syntax, so you can use it to generate config files or multiline scripts right in your Dockerfile files.
  • Setting up additional Docker connections using Docker Contexts
  • Docker Connections From Docker Contexts:
  • You can now set up additional Docker connections using Docker Contexts if you already have these settings in your Docker config. You can do so by calling the Add Service context menu in the Services view and selecting Docker Connections From Docker Contexts.
  • USER INTERFACE:
  • New UI available:
  • As you may already know, this May we announced a closed preview program for the new UI in JetBrains IDEs.
  • We invite you to switch to the new UI in Settings | Appearance & Behavior | New UI Preview, give it a test drive, and share your thoughts about this change with us.
  • Using the preview functionality for intention actions
  • Intention action preview enabled by default:
  • The preview functionality for intention actions is now switched on by default, so you can instantly see how your code will be altered once you apply the IDE's suggestions.
  • You can enable or disable the preview feature by pressing Ctrl+Q while the list of intention actions is open.
  • Dragging a tool window out of the main window and docking it to a floating editor tab
  • Dock tool windows to floating editor tabs:
  • To make it easier to arrange your working space and interact with GoLand on multiple monitors, we've implemented the option to drag tool windows out of the main window and dock them to floating editor tabs.
  • The Tip of the Day window:
  • Improved Tips of the Day:
  • We've enhanced the Tips of the Day feature, a learning tool that helps you explore GoLand.
  • Each tip now has a heading. We've also fine-tuned the algorithm that determines which tips appear so you'll see the ones that are most relevant to your experience with the IDE and the project you're working on.
  • Bookmarking a file from an editor tab
  • Updated bookmarks:
  • It is again possible to bookmark files from editor tabs. Just right-click on a tab to invoke the context menu and select Bookmarks.
  • Adding all the files in currently open tabs to bookmarks:
  • You can add all of the files in all currently open tabs to Bookmarks. To do this, either invoke the same context menu and select Bookmark Open Tabs, or call this action using the three dots icon located on the right-hand side of the editor tabs pane.
  • The Settings Sync section in GoLand's settings
  • New Settings Sync solution:
  • We've introduced a reworked solution to synchronize your custom user settings. For quite a long time, there were two plugins that existed in parallel and featured intersecting functionality – IDE Settings Sync and Settings Repository. To avoid the confusion from having two similar bundled plugins, we've merged their feature sets into a single solution – the new Settings Sync plugin.
  • You can find details about the new unified solution here.
  • DATABASES:
  • Note: to learn about all of the updates for databases in the 2022.3 version, head over to the DataGrip What's New page.
  • Selecting a connection to Redis in the Database tool window
  • REDIS SUPPORT:
  • A preliminary iteration of long-awaited support for Redis has been implemented.
  • Filtering objects while using quick search in the Database tool window
  • Quick filter:
  • Now, when using quick search, you also have the ability to filter objects. All non-matching objects will be hidden.
  • Web development:
  • Note: to learn about all of the web development improvements in the 2022.3 version, head over to the WebStorm What's New page.
  • Code author's name and the usages metric are shown in the Editor
  • Code Vision for JavaScript and TypeScript:
  • This version introduces the new Code Vision feature for web development. It gathers various metrics for types and type members in your JavaScript and TypeScript code and displays this information near their declarations.
  • Other updates:
  • Using a quick-fix to suppress an inspection in a YAML file
  • Quick-fix to suppress inspections in YAML
  • There's a new quick-fix to suppress inspections with a comment in YAML files, including Kubernetes files, OpenAPI specifications, and docker-compose.yml files.
  • We've also introduced an option to fold multiline comments that make up a block of 3 or more lines and start with #.
  • Installers for Windows ARM64:
  • We've started distributing installers for Windows ARM64. You can already download them from our website or the Toolbox App.

New in GoLand 2022.3 Build 223.7571.10 Beta 2 (Nov 14, 2022)

  • If no critical issues are found, the next build will be the Release Candidate.

New in GoLand 2022.3 Build 223.7126.7 EAP (Oct 22, 2022)

  • You can now generate tests for functions with generic parameters.
  • We now have an inspection which detects lowercase type parameters and a quick-fix to make them uppercase.
  • We've started implementing the Code vision feature. For now, we display the code authors if version control integration is enabled.
  • You can now generate go.work from go.mod if you have replace directives there.
  • The "Receiver names are different" inspection ignores generated code.
  • HTTP client improvements:
  • You can use the Put query parameters on separate lines intention action to break the query into smaller fragments on different lines.
  • The HTTP client now supports script blocks executed before requests. You can generate some data before request execution and put it in the final request using variables.
  • We've added support for Crypto API. You can compute the md5 or sha1 hash values for an HTTP request.
  • Docker updates:
  • GoLand now supports connections to Docker that run in Windows Subsystem for Linux.
  • There is now an easy way to pull a required image without running it from Dockerfile or docker-compose.yml.
  • We've introduced full support for .dockerignore files, including code highlighting and completion.
  • GoLand now supports the heredoc format in Dockerfile files.
  • You can now set up additional Docker connections using Docker Contexts if you already have such settings in your Docker config.
  • There's a new quick-fix to suppress inspections with a comment in YAML files, including Kubernetes files, OpenAPI specifications, and docker-compose.yml.

New in GoLand 2022.2 Build 222.3345.118 (Aug 3, 2022)

  • GoLand 2022.2 offers new features for generics and go.work. We’ve also added support for fuzz tests.
  • SQL statements are now automatically detected, and you get comprehensive code assistance for them.
  • GoLand now supports WebSocket connections and can send GraphQL queries over HTTP and WebSocket protocols.
  • If you prefer an interactive approach to learning, we invite you to complete the What's New in GoLand 2022.2 tutorial from the Welcome screen.

New in GoLand 2022.2 Build 222.3048.6 EAP (Jun 20, 2022)

  • SQL is now automatically injected in every string literal that matches a certain pattern.
  • There is an intention action to convert empty interfaces to any.
  • We've introduced a new Find Usages group for generics: Type parameter declaration.
  • Quick Documentation for type parameters, type switches, and iota has been improved.
  • WebSocket and GraphQL endpoints are now supported in the HTTP client.
  • You can now select a run environment using an icon on the gutter in the HTTP client.
  • GoLand automatically connects to Docker after you restart IDE (enabled by default).
  • GoLand now integrates with Colima and Rancher.

New in GoLand 2022.2 Build 222.2680.5 EAP (Jun 2, 2022)

  • There is a new inspection that reports unused type parameters.
  • A new quick-fix will delete a type parameter with an empty parameter list.
  • GoLand now reports an error if you attempt to use interfaces with methods in unions.
  • A new inspection will warn you if your type has methods on both value and pointer receivers.
  • URLs in JSON and YAML files are now clickable.

New in GoLand 2022.1 Build 221.5080.97 Beta 2 (Apr 4, 2022)

  • GoLand 2022.1 Beta 2 is now out. If no critical issues are found, the next build will be the Release Candidate.

New in GoLand 2022.1 Build 221.5080.57 Beta (Mar 31, 2022)

  • This Beta version of the upcoming release includes support for generics and Go workspaces and new features for working with microservices, as well as Kubernetes and Docker improvements. As usual, you will find some updates for databases and new features for web development.

New in GoLand 2022.1 Build 221.5080.57 Beta (Mar 31, 2022)

  • This Beta version of the upcoming release includes support for generics and Go workspaces and new features for working with microservices, as well as Kubernetes and Docker improvements. As usual, you will find some updates for databases and new features for web development.

New in GoLand 2022.1 Build 221.4906.8 EAP (Mar 13, 2022)

  • Docker improvements: new Service view UI, support for Docker Compose targets, Docker Registry V2 support.
  • Updates to Kubernetes: edit resources on the cluster, custom path to kubectl, Describe Resource action, and more.
  • Tab labels in the Debug tool window are now hidden by default to maximize usable space.
  • The Markdown editor's floating toolbar has been improved.
  • Actions on Save now work with Save document.

New in GoLand 2022.1 Build 221.4165.77 EAP (Feb 14, 2022)

  • The Implement missing methods quick-fix now works with generics.
  • A dozen more generics-related issues have been fixed.
  • Databases: you can now select multiple tables and copy them to another schema.
  • Annotate with Git Blame has been improved.

New in GoLand 2022.1 Build 221.3427.90 EAP (Jan 31, 2022)

  • We've initially implemented Code completion for generics and fixed many bugs, as well.
  • String formatting support for testify/assert functions is implemented.
  • Run commands directly from the Markdown file and use new snippets with icons to easily copy your code.
  • LightEdit mode now lets you Reformat code.
  • We've added a new Notifications tool window.

New in GoLand 2021.3 Build 213.5744.124 RC (Nov 22, 2021)

  • We've fixed some bugs and usability issues.

New in GoLand 2021.3 Build 213.5744.26 Beta 2 (Nov 16, 2021)

  • This Beta 2 version of the upcoming release includes improved error messages for debugging tests, the ability to visualize the difference between profiler snapshots, and some other improvements.

New in GoLand 2021.3 Build 213.5605.80 Beta (Nov 4, 2021)

  • This Beta version of the upcoming release includes native support for Go projects in WSL 2, a project-wide default run target, the Inline Function and Inline Method refactorings, proxy support for SSH connections, and support for remote development.
  • We've enabled gofmt on save by default, and we've added some improvements for the debugger, such as Delve for ARM, shorter package names, and the Show Types option.

New in GoLand 2021.3 Build 213.4631.21 EAP (Oct 11, 2021)

  • gofmt on save is enabled by default.
  • You can specify an HTTP/SOCKS proxy server for your SSH configuration.
  • The Run tool window can be split for different configurations.
  • Aggregate view and independent editor tabs are available for databases.
  • There is a new intention action for putting elements on multiple lines in JavaScript projects.