Go logo

GoLand

A cross-platform Go IDE with extended support for JavaScript, TypeScript, and databases

Releases

GoLand 2023.1 Is Out!

The next major version of GoLand is here! 

GoLand 2023.1 introduces the vulnerability checker and better navigation across gRPC code, and it makes the Rename refactoring available for generic receivers.

Interface implementations are now shown in the editor with Code Vision.

You can now run scratch files with non-standard-library packages, use regular expressions to create your own search and replace inspections, and quickly convert raw string literals to double-quoted ones and vice versa. The Implement interface intention action now works for unexported interfaces.

GoLand also provides the new functionality available in DataGrip and WebStorm, our IDEs for working with databases and web development, respectively. Check out the DataGrip 2023.1 What’s New and WebStorm 2023.1 What’s New web pages for more information.

To learn more about the new features and improvements in GoLand 2023.1, head over to our What’s New page, where you’ll find a full overview of the release along with helpful GIFs and screenshots.

Download GoLand 2023.1

If you prefer an interactive approach to learning, we invite you to complete the What’s New in GoLand 2023.1 tutorial from the IDE’s Welcome screen.

Let’s take a closer look at the latest and greatest in GoLand!

Vulnerability checker

  • GoLand can now highlight packages with known vulnerabilities in go.mod.
  • There is a quick-fix to update a dependency to a version that doesn’t have vulnerabilities.
  • GoLand also highlights method calls from packages with known vulnerabilities right in your editor. 
  • More information about known vulnerabilities is also available in the new Dependency Checker tool window.

gRPC navigation

You can now navigate and access declarations of messages, services, and methods from Go code and their Go implementations from .proto files.

Scratch files

You can now run scratch files with non-standard-library Go dependencies.

Rename for generic receivers

When you rename a type parameter in a struct, the Rename refactoring now suggests changing the receivers accordingly.

Intentions and quick-fixes

  • We have a new intention action that lets you quickly convert raw string literals – strings that are surrounded by backticks – to double-quoted ones, and vice versa.
  • We’ve simplified the conversion of integers to strings: You can now do so with just 1 quick-fix, not 2 as before.
  • The Implement interface intention action now works for unexported interfaces.
  • GoLand now has an inspection and a quick-fix to help you detect and remove leading spaces in Go directives, like //go:embed.
  • It is now possible to preview a broader range of intention actions and quick-fixes.

Performance improvements

  • We’ve improved the IDE startup experience by performing the Scanning files to index process in smart mode.
  • GoLand now suggests adding specific folders to Microsoft Defender’s list of exclusions.

Editor

  • We’ve updated the Code Vision feature so that GoLand now shows the number of implementations for an interface and its method specifications.
  • You can now use regular expressions to create your own search and replace inspections.
  • Shared URLs in GoLand’s Go Playground integration now include the version parameter if you choose the dev or previous versions. You can also disable the popup window that asks for your permission to share code in the Playground.
  • There’s now a special setting that allows you to control the placement of pasted content.
  • A new setting allows you to configure the IDE to show whitespaces as small dots only when you select code.
  • 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.
  • We’ve introduced a new Find Usages group for function calls – the Call group.

User experience

  • 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 a new layout option that allows you to unify the width of the side tool windows or retain the ability to freely adjust their sizes as you customize your layout.
  • You can now save and manage several tool window layouts and switch between them when needed.
  • This version adds an option to predefine the behavior of Actions on Save for new projects.

The new UI

Last year, we introduced a new, more minimalist UI for GoLand and other JetBrains IDEs. We’ve been listening to your feedback and refining the new UI accordingly. Read about the key changes that have landed in this release, and try it out if you haven’t already by ticking the New UI checkbox in Settings/Preferences | Appearance & Behavior.

  • To improve your user experience with the new UI on smaller screens, we’ve introduced Compact Mode, which provides a more consolidated look and feel.
  • We’ve introduced the option to vertically split the tool window area.
  • When you have several projects open on macOS, you can now easily switch between them using project tabs displayed under the main toolbar.
  • We’ve added the Show Hidden Tabs feature in the new UI.
  • We’ve fine-tuned the user experience of the new UI by adding a pane that displays the name of the file that is currently open when editor tabs are hidden.
  • We’ve redesigned the Run widget at the top of the IDE window.

Docker

  • We’ve added completion for container names when you use the testcontainers-go package.
  • The Dashboard tab of the Docker-compose node now pulls together logs from every Docker Compose container and displays them all in one place, updated in real time.
  • You can now easily connect to Azure Container Registry.
  • Now you can add :z configuration flags to Docker bind mounts, which allows you to connect volumes to Docker containers on SELinux workstations.

Kubernetes plugin

  • We’ve added a new action – Kubernetes Resource – to the New menu that appears when you right-click in the Project tool window.
  • We’ve introduced a new dialog to create Kubernetes Secrets.
  • When you use the View YAML action for resources from a cluster and make any changes in the opened file, GoLand now highlights all of your edits with color-coded marks in the gutter.
  • Additionally, by using the Compare with Cluster icon, you can open a full diff view that will fetch the resource’s current version from the cluster and compare it with the local version.
  • You can now easily access a kubeconfig file in the Services view and open it in the editor.
  • You can now assign shortcuts for most Kubernetes actions in the Service view.

Markdown

  • A new intention action allows you to correct the formatting of tables.
  • The Fill Paragraph editor action is now supported for Markdown files.
  • We’ve added a dedicated page for configuring and editing your Markdown preferences in Settings/Preferences | Editor | General | Smart Keys.

Version control

  • Navigating between branches is now easier, as they are grouped and stored in expandable lists.
  • We’ve implemented completion in the Create New Branch popup.
  • To make tracking changes to files easier, we’ve added color hints to the Structure tool window.
  • Background commit checks are now performed in the background after you commit but before you push.
  • We’ve reworked the Pull Request tool window.

Web development

  • Astro support is now available.
  • GoLand will now automatically transform your single- or double-quoted strings into template literals whenever you type ${.
  • We’ve added TypeScript support in Vue templates when you set the lang attribute in a script tag to ts.

That’s it! Please tell us what you think about our new features! Leave your comments here, report any issues you encounter to our bug tracker, ping us on Twitter, or drop us a message in the Gophers Slack #goland channel.

image description