GoLand 2022.1.x

Released: Apr 14, 2022

Updates in 2022.1.x

2022.1.4

Updated Jul 20, 2022

Features

  • Added a quick fix for grouping several use in one use in go.work.

Fixes

  • False-negative: Interface contains type constraints.
  • Empty Java string literal in pattern is matched incorrectly.
  • Switching between computers keeps asking merge find.xml and FeatureSuggester.xml.
  • External diff tool settings are lost after IDE restart.
  • Suddenly the registered external diff tool doesn't work again.
  • High CPU usage during AsciiDoc editing.
  • Intellij IDEA crashes after upgrading to 2022.1.3 on macOS High Sierra (10.13.6).
  • IDE hangs on startup in Menu.nativeGetAppMenu.
  • Changes in root iml file may break git mappings.
  • "Run Git hooks" checkbox becomes disabled after the first Commit action, no Git pre-commit hooks are executed.
  • Git commit description: blinking text.

2022.1.3

Updated Jun 22, 2022

Fixes

  • GoLand doesn’t complain about using a generic callback function with several parameters anymore.
  • GoLand reports an error if you attempt to use interfaces with methods in unions.

2022.1.2

Updated Jun 2, 2022

Features

  • Generics
    • Report unused type parameter - Added a new inspection that reports unused type parameters. They are grayed out, and you will see a warning when hovering over them.
    • Completion for a type parameter when typing a method’s receiver - GoLand now automatically inserts a type parameter’s identifier when you type a receiver while creating a method (it could be any letter, but is usually the same as in the type’s declaration).

Fixes

  • GoLand now shows an error if you try to use an interface with type parameters.
  • An error is now shown if you’re missing a type constraint, as expected.

2022.1.1

Updated May 13, 2022

Features

  • Syntax highlighting and navigation for go.work - In this release, basic support has been added for go.work files. This update adds syntax highlighting in go.work, as well as the ability to navigate to modules.
  • Generics - Improved support for type parameters by adding some new inspections and fixing some bugs.
  • Report usage without instantiation - If you try to use a generic type without instantiation, GoLand will now display an error and suggest adding square brackets.
  • Report usage of a given type as a type parameter - Defining a named type on a passed type parameter is not permitted. As the Go documentation says, “the given type cannot be a type parameter” in a type definition. Usage of a given type as a type parameter is now highlighted as an error.
  • Report type arguments and parameters mismatch - You have to be consistent about the number of parameters in the type declaration and the number of arguments in type usages. The IDE will now help to keep things in order by reporting mismatches between arguments and parameters.
  • Highlight missing arguments for conversion - GoLand now shows an error if a type conversion to a generic type is missing the expression to be converted.
  • Fill generic struct fields - In GoLand, you can automatically generate field names for a struct. Now you can do the same with generic structs.
  • Support for the ‘all’ prefix in ‘//go:embed’ - Go’s //go:embed directive allows you to embed files and folders into the application binary at compile time without using an external tool. If you embed a directory, then all files beginning with a dot (.) or underscore (_) are excluded. To include them, you need to use the all prefix. GoLand now supports this prefix.
  • Helm and Go templates - Added two new context groups to the Live Templates - Go Template and Helm. There are several default templates in the Go Template group and one in the Helm group. You can add your custom live templates in both groups and link them to any of the added contexts.

2022.1

Updated Apr 14, 2022

Features

  • Generics
    • Completion - Added several features for type parameters. As soon as you type an opening bracket, GoLand inserts a closing bracket for you. GoLand shows type parameters in the completion suggestions and inserts the brackets when you accept one of the suggestions.
    • The Implement missing methods quick-fix - If a type argument doesn't have all of the methods from the interface it is constrained by, GoLand displays an error. You can implement missing methods by using a quick-fix right from the error message. Alternatively, click on the red light bulb or press Alt+Enter, and then choose Implement missing methods.
  • Go workspaces
    • You can now open any directory with a go.work file and continue developing as usual.
  • Microservices
    • Find usages and navigate - There is now a globe icon next to each endpoint in your Go files. When you click on the icon, GoLand will suggest several options. The first option lets you find all of the usages of an endpoint and navigate to them. You can also see usages by pressing Ctrl and clicking on an endpoint. Note: new features for building microservices work only with the standard library for now.
    • Generate a request - The second option you'll see when you click on the globe icon is Generate request in HTTP client. Choose a corresponding option, and the IDE will open a bundled HTTP client. This action can be used to generate a request for every valid URL. The HTTP client now offers code completion for endpoints. Completion works for the endpoints from Go files (only the standard library is supported for now), Swagger specifications, .proto files, and JavaScript files.
    • Endpoints tool window - The third option is Show all endpoints of module. If you choose this option, GoLand will open the new Endpoints tool window where you can see all the endpoints for your project. You can use Jump to source from here, or you can click on any endpoint and run requests right from the HTTP client tab.
    • Completion for methods and headers - Code completion now works for HTTP methods and headers in Go files.
    • Links and endpoints are underlined - All links and endpoints in Go files are now underlined so you can easily see them in the code. The links are clickable and can be opened in a browser.
    • gRPC reflection support - If your project doesn't have a .proto file but the server supports gRPC reflection, you will be able to run requests and get completion for service and method names right from a running server.
  • Testing
    • String formatting for testify/assert - GoLand now reports errors if you use the wrong formatting verbs in testify/assert functions.
  • Debugger
    • Hidden tab labels - To maximize the usable space in the Debug tool window, tab labels are now hidden by default. To make them visible again or to customize their location, use the Show Tab Labels option in the Layout Settings.
  • Kubernetes
    • Edit resources on a cluster - Resources loaded from a cluster can now be modified from the editor tab. Note: the Kubernetes plugin can be installed in Settings | Plugins.
    • Custom path to kubectl - You can now manually configure a path to kubectl if it is not in the standard location.
    • Port forwarding - Added port-forwarding functionality for pods. To forward ports, you can either use the icon on the toolbar or right-click on a pod and choose Forward Ports… from the context menu.
    • Describe Resource action in the Services view - A new Describe Resource action is present for all resources in the Services view. You can call it from the context menu or use the toolbar button.
    • Node for cluster events - Cluster events are now displayed in a separate node in the Services view, providing data about recent events in the system.
    • Werf support - Introduced limited editor support for werf.yaml and related Helm template files. The initial support includes code completion, inspections and quick-fix suggestions, refactoring and renaming for .Values.werf.image.*, and validation for some fields like boolean and int.
  • Docker
    • New Services view UI - Docker UI in the Services tool window has been reworked. The makeover brings improvements for containers, images, networks, and volumes.
    • Support for Docker Compose targets - Added support for Docker Compose targets. To add a target, go to Run | Manage targets and click Add new target.
    • Docker Registry V2 support - GoLand now offers support for Docker Registry HTTP API V2.
  • Markdown
    • The Copy code icon - Added a Copy code icon to Markdown blocks to help you easily copy contents to the clipboard.
    • Run commands - If a Markdown file contains instructions with commands that you need to execute in your terminal, you can now run those commands directly from the Markdown file using the Run icon in the gutter.
    • Improved floating toolbar - To make it easier to format Markdown files, the floating toolbar that appears on text selection has been reworked. Besides the new design, the toolbar now offers list creation functionality and a dropdown menu that allows you to select header styles.
  • User experience
    • The new Notifications tool window - The Event Log instanсe has been replaced with a new Notifications tool window to highlight important and helpful notifications from the IDE.
    • Updated Structural Search and Replace dialog - The Structural Search and Replace dialog has been redesigned to feature a list of all the templates, making it easier to navigate between them. For Structural Search and Replace, GoLand supports XML, HTML, SQL, and JavaScript.
    • Evenly split tabs - You can now distribute the working space in your editor evenly among various tabs.
    • Export UML diagrams to other formats - It is now possible to export UML diagrams as yEd .graphml, JGraph .drawio, Graphviz .dot, Graphviz .dot with Positions, Mermaid .md, Plantuml, and IDEA .uml files, which makes them compatible with third-party tools.
  • Version control
    • Updated Commit details pane in the Git tool window - The Commit details pane now includes detailed GPG signature information.
    • Improved Annotate with Git Blame - Improved the functionality of Annotate with Git Blame to make investigating changes easier. The IDE highlights the differences in lines right in the editor when you hover over an annotation, and it opens the Git Log tool window when you click on one.
  • Databases
    • Copy multiple objects - You can now select multiple tables and copy them to another schema. Select the tables and press F5 to open the export dialog. As with exporting a single table, you can map the columns, see the DDL of the new table, and change it.
    • MongoDB: Editing fields in results - You can now edit the results in MongoDB collections just as you do in relational databases.
  • Web development
    • Improvements for Vue - If you define components as global, the IDE will now recognize them in your .vue files. GoLand should also support the createApp syntax. It will correctly match applications created using createApp with their related elements. This version also includes support for Nuxt 3, a new version of the popular Vue framework.
    • Next.js updates - Fixed support for pages. GoLand now resolves paths used in the href property of your Link components. Code completion, navigation, and refactorings like Rename now work too.
    • ESM support for webpack configuration - From now on, webpack coding assistance will work with ES modules in your webpack.config.js files.
    • Integration with Volta - GoLand now has integration with Volta, a JavaScript tool manager. It automatically recognizes Yarn and npm installed using Volta.
  • Accessibility updates
    • The screen reader now reads the names and descriptions of the branches' trees in the Log tab and provides a voice prompt to use Ctrl+L to navigate through other Log filters. Additionally, a number of updates for VoiceOver support have been introduced to improve accessibility support for Apple macOS users.

Fixes

  • Generics
    • Improvements and bug fixes - Fixed false-positive and false-negative errors. 200+ generics-related issues have been fixed so far.