GoLand 2018.2 EAP 2: Move to Another Package, Pre-build SDK Indices, Debugger Improvements, and More

Posted on by

A couple of weeks ago we started the EAP for GoLand 2018.2, our next major update. In the first EAP build, we’ve added initial support for vgo, and revisited Go inspections and refactorings. Today we’re publishing a fresh EAP build – with more new goodies.



The Move refactoring now allows you to move symbols to another package as well:

If the move is not possible because of a constraint, the IDE will alert you.

The update also makes the Extract Variable refactoring work better with multi-value expressions. Previously, GoLand didn’t let you use this refactoring in certain cases, e.g. when they were used in return statements and when they were passed as arguments to functions. This included the case when the function that such an expression was passed to expected a single value argument:

The family of Postfix Completion templates gets a new member – “.sort”. This template transforms array or slice expressions and prepends them with an applicable sort method based on element type:

In case the element type is a custom type, it will use the sort.Slice method:

When you Implement Methods, now you can not only add methods from an interface to a chosen type but also create this type right away:

Another improved area is the Debugger. Now it supports lazy-loading for arrays, maps, and slices; deep nesting in maps; and offers a better presentation of key-value pairs in maps:

Breakpoints settings field Evaluate and log is finally working, so you can specify an expression that will be evaluated and logged every time a breakpoint is hit:

If you only want logging without interrupting program execution, clear the Suspend checkbox.

The update also comes with a new version of Delve in which it fixes a number of issues. For example, you can now debug applications that require user input (using stdin).

Last but not least, the update now comes with the pre-built indices for the Go SDK 1.10. Now when you set up the IDE for the first time and create your first new project, the IDE won’t waste your time indexing the SDK.

On top of the Go-related changes, the update revisits the support for JavaScript, TypeScript, Vue.js, and Git:

In Vue templates, the IDE now provides code completion for events and event modifiers.

You can now debug JavaScript scratch files (the code will be run using Node).

The IDE is getting ready for the upcoming TypeScript 2.9 release.

A new Quick-fix to fix the visibility of a TypeScript method if it not inaccessible.

The IDE now uses the TypeScript Language Service for any TypeScript file, even there is no tsconfig.json file in the project.

The Files Merged with Conflicts dialog displays the Git branch names right in the dialog when you perform a Pull, Merge, or Rebase.

Tags can be deleted from Git commits via the context menu of the Log tab.

That’s it for major changes. Stay tuned for more in the next few weeks. Meanwhile, check out the release notes for the complete list of bug fixes brought by this update.

Happy developing!