Gogland EAP 16: File Watcher, Tons of New Inspections, Smarter Navigate to Test, and More

Hooray, it’s time to check for updates! Please welcome Gogland EAP 16, a fresh EAP build with lots of improvements. Read on to learn more. Continue reading

Posted in EAP, New Features | 11 Comments

Help us Choose a Name for our Go IDE

As you may know, Gogland is the codename for our new Go IDE that we’re building on top of IntelliJ Platform. While we’re working hard on the IDE itself, trying to make it fast and smart, we’re also brainstorming its final name. This is something you can contribute to!

Gopher illustration by Renee French

Gopher illustration by Renee French

Please share your suggestions with us here in the comments, or by replying to the official tweet or Facebook post.

The name will be chosen by the JetBrains team hopefully in the next week. Later we will announce it with one the upcoming posts.

What name are we looking for? Something easy to pronounce. Easy to spell. Ideally, a one-word name (that hopefully isn’t someone else’s trademark). On the other hand, don’t be limited by any rules. Suggest what you think is best. All ideas are welcome!

If your name is chosen, you stand to get a spiffy prize (it’s a secret for now) along with a free 1-year subscription to all JetBrains products!

Go!

Posted in News | 678 Comments

Gogland EAP 15: Inspections, Intentions, Performance, IntelliJ 2017.3, and More

Say good-bye to Gogland EAP 14. Gogland EAP 15 is here, with lots of improvements and important bugfixes. Read on for more details.

Inspections

The new EAP build brings many new inspections. The following cases are now reported:

1. A variable is assigned to its own value. The IDE finds this code suspicious as it may be a bug.

2. Explicit conversion is not possible:

3. The address operator is used on a non-addressable operand:

4. A type used in a switch case mismatches the type of the switch condition:

5. A 0 wrongly used as an argument for string.Replace:

6. A comment is missing a leading space (disabled by default):

7. Snake_case in identifiers. The inspection comes with a quick-fix that can rename the identifier to CamelCase automatically.

8. A variable declaration used as value in a switch condition:

9. An exported function that returns an unexported type.

Intentions

The update introduces two intention actions that generate code for you:

1. The code that initializes structs:

2. Getters and setters for struct fields:

Performance

The update revisits the IDE performance and brings several improvements in this area:

1. The gutter icons that navigate to the interface (that the struct at the caret implements), or to the structs (implemented by the interface at the caret), have gotten faster and now are enabled by default:

2. We’ve changed how Gogland resolves and annotates code, which has resulted in better overall responsiveness.

Completion

Code completion improvements include:

1. Keywords are not suggested inside an interface declaration unless it’s appropriate.
2. The type keyword is suggested in type-assertions:

Misc

1. The go-setup information is now collapsed in the execution output (can be expanded on click):

2. The Copyright plugin now works for Go files:

3. The maximum size of Go files that can be opened in the IDE has increased from 2.5 MB to 4 MB.

4. In the Project tool window, calling the context menu on a folder now offers two new items: Open directory as a project, and Add directory to the project (as a content root).

IntelliJ Platform 2017.3

Following the opening of IntelliJ IDEA 2017.3 EAP, Gogland has switched to the new version of the platform.

Among the new platform’s features are:

1. Faster Git branch operations.
2. Git Log cosmetic improvements: Interactively Rebase from Here is now available in Log; Compact References View and Show Tag Names are now project level settings and not global as earlier.
4. A new REST client which reuses the approach from VS Code and Emacs for testing HTTP requests. To use it, simply open a new Scratch File and select HTTP Requests as its type. This will create a scratch file with the “.http” extension:

5. Several JavaScript and TypeScript improvements:

  • New and improved refactorings and intentions (ES6): Extract type alias for TypeScript, Convert type alias into interface, updated Extract parameter and Change signature refactorings.
  • Better Vue.js support.
  • Auto imports on paste (ES6).
  • Better ESLint and TSLint integration.
  • Various improvements in the Stylus support.
  • The built-in TypeScript compiler can now also compile JavaScript files.
  • Multiple JavaScript versions per project.
  • New Emmet syntax for JSX.
  • Support for Optional Chaining ES proposal.

6. A few database improvements:

  • Selecting a schema when running an SQL file.
  • Jumping to the console from a datasource.
  • Right-side alignment for a numeric data.
  • XQuery and XPath coding assistance for Microsoft SQL Server.

That’s quite a list. To try all these changes, download the update from our website, update from the IDE (via patches), or even better, use Toolbox App.

Your feedback, as always, is very welcome in our issue tracker.

Happy developing!

Posted in EAP, New Features | 2 Comments

Gogland EAP 13: Better completion, new inspections, fixed performance bugs, and More.

Hi! It’s time to release the new EAP build of Gogland.

We changed the order in the code completion list. Previously, suitable matching variant types were at the top of the list only in smart completion (Remember, it’s Ctrl/Cmd+Shift+Space). But now, this is also available in the basic completion and automatic pop-up.

completion

In this build we have introduced three new inspections:

Shadowed variables can now be highlighted. It’s disabled by default, but we’d appreciate it if you could try it out. To enable this go to File → Settings → Editor → Inspections / Go → Probable bugs → Shadowing variable

shadowing-inspection

— Error-strings beginning with a capital letter or ending with punctuation are highlighted. Such strings are not recommended according to the code-style guides.

error-string-format-inspection

— Division by zero expressions are highlighted.

division-by-zero-inspection

As of now, you can run Go Tools on several files.

two-files-go-tools

We’ve fixed bugs with performance: GO-4274, GO-4386, GO-4397.

Please, see the whole list of enhancements in this build.

That’s all for today! Feel free to give the new EAP build a try right away and share your feedback with us through the comments as well as the issue tracker.

Gogland team.
The Drive to Develop

Posted in EAP, New Features | 1 Comment

Gogland EAP 12: Navigate to Test, Running Directories, Inline Variable, and More

After only a week since our EAP last update, we’re ready to do it again! Meet fresh EAP build, packed with improvements and bugfixes.

We keep adding new refactorings. This time it’s Inline for variables, available via Ctrl+Alt+N (Cmd+Alt+N for macOS):

We’ve added inspection that warns you when you misuse a range clause, e.g. a number of variables doesn’t match the range parameter:

Navigation capabilities have also been extended with a new feature: Go to Test/Test Subject. When the caret is at a method name, press Ctrl+Shift+T (Shift+Cmd+T for macOS) and Gogland will take you to the corresponding test method. Press the same shortcut again to get back.

If there are multiple matching test methods, you will be prompted to select the one you need to go to.

Among other improvements worth mentioning is that Go Application Run Configuration now supports running directories.

Last, but not least, is the fact that the update fixes many bugs:

  • Windows installer wasn’t signed
  • Incorrect type comparison for structs with included pointer-type structures
  • The Project Wizard didn’t allow to create projects with no SDK specified
  • Incorrect cache invalidation
  • Incorrect type aliases highlighting
  • Debugger related issue (solved by updating to a newer Delve version)
  • The IDE didn’t resolve “vendored” libraries located under GOPATH in some cases
  • More…

Give this update a try and share your feedback with us. Bug reports are very welcome in our issue tracker.

Develop with Pleasure!

 

Posted in EAP, New Features | 1 Comment

Gogland EAP 11: Faster Indexing, Extract/Inline Constant, IntelliJ Platform 2017.2, and More

Following the recent release of IntelliJ IDEA 2017.2, we’re happy to announce a new Gogland EAP. In addition to many new platform features (VCS and JavaScript), it comes with lots of improvements specifically for Go.

First of all, we’ve changed the way Gogland indexes libraries inside GOPATH: non-Go files are now ignored, which, depending on your workspace, might make indexing up to twice as fast.

Also, the refactorings family now includes two more members: Extract a Constant and Inline a Constant:

Annoying issues have been fixed:

  • Create Function quick-fix sometimes created functions in a wrong source package
  • The binary wasn’t retained in the output directory after the Run Configuration finished
  • The Debugger stuck on Evaluating when after clicking View to see full content of a variable
  • VCS commits occurring before the Go fmt option (in the Before Commit section) has finished its work

And of course, the update brings the new platform features from IntelliJ Platform 2017.2:

  • Version Control
    • New Git Log actions: Revert and Reword.
    • The new settings let you customize rules applied to commit messages: a blank line between subject and
      body, and the maximum length. Also, there’s a quick fix and the Reformat action inside Commit Message.
    • Shelf tab has been reworked for better performance and ergonomics.
  • Find in Path
    • Preview panel now has a Gutter (a left-hand pane like that in the editor) with line
      numbers, navigation icons, and local change markers.
    • Search results from the same lines are now merged together.
  • Windows 10 native UI
  • Improved HiDPI support
  • JavaScript & TypeScript
    • Parameter Hints and Type Info
    • Rearrange Code
    • Move refactoring (across ES6 modules)
    • CSS modules, better Webpack support, code coverage for Mocha, etc
  • The indexing process now can be paused, e.g. if you need your CPU power for an urgent task.
  • Excluding files from search results and indexing by a filename/directory pattern.

Note, due to certain changes, patches aren’t available for this update.

Give the new EAP build a try, and share your feedback with us. Bug reports as always are welcome in our issue tracker.

The Drive to Develop!

Posted in EAP, New Features | Tagged | 14 Comments

Gogland EAP 10 is Out: Go 1.9, Better Remote Debugger, and More

Previous EAP build, released a couple of weeks ago, introduced remote debugging capabilities. However, this feature had a number of limitations:

  • Breakpoints didn’t work if file paths didn’t match layout of the project (e.g. if app was running on Linux and the Gogland instance from which you invoked debugger—on macOS), which happens quite often when you’re trying to remotely debug something in a Docker container.
  • Breakpoints could only be set before starting application (local debugging also had this issue).

We’re happy to announce that both of these issues have been resolved in Gogland EAP 10 that is just published today.

Along with these improvements, it comes with support for Go 1.9, and in particular, its type aliases:

Speaking of the changes you may notice visually, Gogland now displays the Run icon in the gutter area of editor for Scratch Files:

And finally, this update brings numerous bugfixes.

Give this EAP build a try by either updating from Gogland (use Check for Updates action), or via Toolbox App, or just by downloading it from website.

Your feedback, as always, is very appreciated in our issue tracker.

Develop with Pleasure!

Posted in EAP, New Features | Tagged , , | 8 Comments

Webinar Recording: Migrating to Gogland from a Code Editor: Tips & Tricks

In case you’ve missed it, last week we had two great events. First, we held a wonderful webinar with Brian Ketelsen and Florin Pățan on migrating to Gogland from a code editor. Second, we released a new EAP build that among other things brings remote debugging capabilities and better performance.

The webinar may be interesting to you if you have a lot of experience with editors and never had a deep look at Gogland before. Brian, as a heavy user of many code editors (including Code and Vim), shared his experience: both good and bad. Florin, as a more heavy IDE user, showed the benefits an IDE (and Gogland in particular) offers comparing to the editors. Also, Florin and showed quite a lot of useful tips and tricks: things that help you be a more productive with Go.

For those who missed the webinar, here’s a recording:

If you don’t want to watch the whole video (which is a bit more than 1 hour), use the following links to jump to the most interesting part:

Please enjoy the video, and don’t forget to give a try to the update we released last week.

Develop with Pleasure!

Posted in Webinars | Leave a comment

Gogland EAP 9 is Available

It’s been a while since the last Gogland EAP, but here we are: Gogland EAP 9 is finally ready, bringing lots of bugfixes and several new features.

First, we’ve added remote debugging support. All it needs is that you set up a Go Remote run configuration with and tell it which Host and Port to connect to and make sure the application you’re going to debug is launched with Delve.

When you start that run configuration, you’ll see the good old Debug tool window:

Layout of log files can be adjusted to your liking:

And then displayed in the Run tool window when you run the application:

Also, the update brings two new inspections:

  • Misplaced fallthrough statements.
  • Functions without body.

And here’s a couple more things to look at:

  • The Go SDK is now selected automatically when you import a project
  • Better startup speed and overall performance
  • Configuration related to imports (sorting, exclusion) is now stored on the project level
  • A number of bugfixes for auto-imports and imports sorting

Please give a try to the new build and share your feedback via our issue tracker.

Develop with Pleasure!

Posted in EAP, New Features | Tagged | 3 Comments

Gogland EAP 8 is Available

Hooray! Fresh Gogland EAP 8 is here, packed with improvements, bug fixes, and things that are just really cool. Get it from our website, via patches, or from Toolbox App.

Postfix Completion, which you may be familiar with from Java and JavaScript support in IntelliJ IDEA and WebStorm, is now available for Go:

The list of supported templates is available in Settings | Editor | General | Postfix Completion:

If you need a suggestion that’s not included here, please add your suggestion it to GO-3796.

There’s also a new inspection that reports redundant boolean expressions and offers a quick-fix that simplifies them:

The new Context Info action (available from View in the main menu or via Alt+Q for Windows/Linux or Ctrl+Shift+Q for macOS) shows the current method or class declaration when it is not visible:

The built-in spell-checker now reports typos in string literals and helps to fix them:

The debugger has also been improved in a number of ways, including bug fixes. Delve has been upgraded to 1.0.0-rc.1, which among other improvements adds support for LLDB on macOS.

Improvements in the editor include better formatting, inspections, completion, performance, and more.

You may also find these platform improvements useful:

  • Better font rendering on Linux
  • Find in Path usability
  • Manual columns reordering in Git Log

The built-in JRE has been updated. For the complete list of changes there, see the release notes.

Last but not least, if you’re using Gogland, you can now also switch to the nightly builds of the Go plugin. All it takes is registering “https://plugins.jetbrains.com/plugins/nightly/9568” as a Repository URL in Settings | Plugins | Browse repositories | Manage repositories.

This pretty much sums up all the goodies in this EAP. Please give it a try and share your feedback with us. Both bug reports and feature requests are welcome in our issue tracker.

Develop with Pleasure!

Posted in EAP, New Features | 4 Comments