GoLand 2020.3

12月 07, 2020 - 16:26


Debugger improvements

  • Added new Dump Goroutines icon in the debugger which lets you easily find goroutines that contain a specified string in the stack during the debug session.
  • Added the option to hide an individual goroutine or goroutines with the same stack.
  • Added the ability to stop a process with Go Remote configuration if no reattach is required.
  • Added the ability to specify the default behavior of the debugger on disconnect in your configuration settings, you can choose Stop remote Delve processes, Leave it running, or have GoLand ask you how to proceed each time.

Testing enhancements

  • Support for table tests - You can now run and navigate to individual table tests from the Run tool window. There are some limitations:
    • The test data variable must be a slice, an array, or a map. It must be defined in the same function as the call and must not be touched after initialization (except for range clauses in a for loop).
    • The individual test data entry must be a struct literal. Loop variables used in a subtest name expression must not be touched before the call.
    • A subtest name expression can be a string field in the test data, a concatenation of test data string fields, and an fmt.Sprintf() call with %s and %d verbs.
  • Expanded support for Testify - The IDE now recognizes the test function that starts a test suite, and provides a way to start an individual suite.Run and suite.T().Run, as long as the subtest name is a string constant.
    • It is now possible to rerun a subtest from the Run tool window to avoid rerunning the entire top-level test.
    • You can now run Testify suites with the same method name separately within a single test case.
    • When you complete a function or method that accepts testing.T as the first argument, GoLand now passes that argument automatically if possible. This works for functions and methods of testify/assert, testify/require, testify/mock, and testify/suite packages.

Code inspections

  • The Incorrect usage of Println/Printf like functions code inspection will now warn you about potential problems in github.com/pkg/errors, github.com/sirupsen/logrus, and go.uber.org/zap packages.
  • Added placeholder highlighting and folding, as well as the Add format string argument intention.
  • The context.CancelFunc not called code inspection now reports potentially unsafe uses of context cancellation.

Code editing

  • Support for time package - Added support for the time package so you can work with time and duration more easily.
  • Smarter package handling - The IDE is now smarter at prioritizing completion items for packages that you use frequently and that are explicitly declared in the go.mod file of your project.
  • Added an option to exclude packages completely from your project import path and completion suggestions.
  • Support for variable shadowing - GoLand makes it easier to spot variable shadowing:
    • The IDE now shows variables that shadow any existing declaration in a different colour.
    • Navigate to shadowing declaration intention action lets you immediately switch to the shadowed declaration.
  • Square Brackets in Type Parameters - Added support for square brackets for the generics syntax instead of parentheses.

Other improvements

  • When you type func in the test file, GoLand by default suggests bench and test Live Templates in the completion options.
  • GoLand suggests completing a for loop with b.N inside the benchmark
  • When you type for inside the benchmark, the IDE suggests completing it with a for loop with b.N.
  • Improved spelling and grammar checkers - Suggestions now appear immediately in the dialog when you press Alt+Enter. In addition, a new version of the LanguageTool grammar checking engine features improved checks for English and adds support for 10 additional languages.

Code With Me

  • GoLand 2020.3 supports Code With Me (EAP) – Added a new service from JetBrains for collaborative development and pair programming. Code With Me enables you to share the project you currently have open in your IDE with others and work on it together in real time.

UI improvements

  • Reworked Welcome screen - Reworked the Welcome screen to give you immediate access to:
    • Search for projects.
    • Settings to customize your IDE.
    • Plugins to expand the functionality of your IDE.
    • Tutorials to learn more about your IDE’s features.
  • Sync IDE theme with your OS preference - Select the Sync with OS option in the settings to automatically switch your IDE theme to match your OS preferences.
  • Drag and drop tabs anywhere to split the editor - Added the ability to split the main editor screen horizontally or vertically by dragging a tab to the desired position and dropping it there. When you are dragging a tab, the editor will highlight where you can drop it.
  • Project view updates - Improved the UX when working with files from the Project view. Now when you open a file from the Project view, the focus is automatically placed on the editor to allow you to start working with your code right away. Press the spacebar and the IDE will show you a preview of the file in the Project view.

VCS updates

  • Reworked VCS menu - The VCS menu now adapts to version control system that you are currently using, making it easier to access key VCS features as they are no longer hidden in a submenu.
  • Support for Git staging area - Added support for the new Git staging area. Please note that this functionality is only available for the Commit tool window.
  • Improved work with branches - Work with branches has been improved:
    • The IDE now automatically corrects unaccepted symbols in the names of new branches, which helps you create branches in line with the accepted format.
    • The IDE will now show you all the actions available for the currently selected branch, just like it would for other branches.
    • For remote branches, this release has renamed the Merge into Current and Rebase Current onto Selected actions to Pull into Current Using Merge and Pull into Current Using Rebase.

More features

  • Plugins enabled per project - Added the ability to enable plugins for the current project or for all projects by selecting Enable for Current Project or Enable for All Projects.
  • System shortcut keymap for Apple macOS - macOS system shortcut keymap provides you with an alternative macOS keymap that offers extended compatibility with system shortcuts and allows you to avoid using F-keys for essential actions.
  • Profiler: Flame Graph - Improved the search mechanism of the Flame Graph in the Profiler and its visualization to let you find method metrics faster. You can click on the magnifying glass icon or type your search request inside the Flame Graph panel.
    • Added a search field, up/down arrows for fast navigation between search results and the ability to search either in the whole Flame Graph or just in a specific subtree.

Web development changes

  • Create a React component from its usage - Added the ability to create a React component from an unresolved reference.
  • Full support for pnpm - Added full support for the pnpm package manager, along with npm and yarn.
  • Basic support for multiple webpack configs - Added the ability to choose between detecting webpack configuration files manually or automatically.

Work with databases

  • Couchbase support - Added support for Couchbase. Please note that the IDE supports the Couchbase Query service, not the Couchbase Analytics service.
  • Support for grants - GoLand now knows about object grants and displays them in an object’s DDLs. This works for MySQL, PostgreSQL, Greenplum, Redshift, and Microsoft SQL Server.
  • Separate editor for cell values - Improved the separate editor for cell values:
    • It now displays the formatted value even if the value is not formatted properly.
    • It’s possible to edit the value in the formatted view and update it with the original formatting in one-line XMLs and JSONs.
    • If the width of the screen is crucial to your flow, you can move the cell value editor to the bottom of the data editor.
    • This panel can now also display images.
  • Import/export for databases - Added two new extractors to help make it easier for you to work with data:
    • One-Row will help you copy a column to a comma-separated string.
    • SQL-Insert-Multirow will generate a single INSERT statement with multiple new rows to be inserted.
      • Added the option in CSV format configuration: never quote values.
Table tests support





今すぐ JetBrains ライセンススペシャリストとライブ チャット