GoLand 2020.1 Reaches Beta!

Releasing this Beta means our Early Access Program is approaching the home stretch. We’ve stopped adding new features and are focusing on polishing everything.

The Beta is quite stable in comparison to our Early Access Program builds, but keep in mind there may still be some rough spots here and there.

goland-2020-1-beta

Please note that this Beta build is the last build in the EAP train that does not require a subscription to use (if you are just looking to give GoLand a try). Betas are usually followed by a Release Candidate once we see that the build is good enough and that it’s ready to be installed on your machines.

Download GoLand 2020.1 BETA

For this upcoming release, we have focused on Go Modules support, and you might just be amazed at how many cool things we’ve added to help you have more fun working on this type of project!

Another area of focus has been code-editing features that require little to no interaction from the user. Many new types of code completion are waiting for you to try.

On top of that, there are new code inspections, quick-fixes, and other nice things, such as a new mode that lets you open a file in the text editor without creating or loading a project. Intelligent spelling and grammar checks are now bundled by default via the Grazie plugin. And all of our IDEs, including GoLand, now feature our own typeface, JetBrains Mono, as the default font. (In fact you’ve already seen some of it as we’ve been using this font in all our screenshots and GIFs for a while now.)

Now is a great time to provide feedback! We love hearing from you, and we’re always listening, so don’t think twice about sounding off.

Without further ado, let’s have a look at what’s lurking inside the upcoming release. Choose a topic you are interested in, or go through the whole blog post to learn about each new feature.
Continue reading

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

Working with Go Modules – Versioning

Hello again. This is the third, and final, article from our series on Go Modules. In this article, we’ll cover how to version our project and manage the migration to a new major version.

In case you missed the previous posts, here’s a list of articles from the series:

In our previous posts, we’ve seen how to use dependencies in our code and how to upgrade or downgrade them. Now, it’s time to do the same for our own code.

Continue reading

Posted in Features, Tutorial | Tagged , , | Leave a comment

GoLand 2020.1 with Rich Code Completion Support for go.mod, Support for Macros in Run/Debug Configurations, and More

You can get this EAP build through the Toolbox App, by downloading it from the website, by using a snap package (for Ubuntu), or from right inside GoLand by selecting Automatically check updates for Early Access Program in Preferences / Settings | Appearance & Behavior | System Settings | Updates.

Don’t forget that we regularly release nightly builds based on the latest development code. You can use them to get access to the latest features without having to wait for the official EAP announcements. The nightly builds are only available via the Toolbox App, however.

Download GoLand 2020.1 EAP #5

Go Modules

GoLand 2020.1 will provide code completion in go.mod files for:

  • go, module, require, replace, and exclude keywords.
  • Dependencies’ names.
  • Replacements with local paths, with the ability to rename them.

Also, when you move directories in the Project View, GoLand will change the path in go.mod file accordingly. On top of that, you can invoke Find Usages via the Project View to explore where a particular directory is used.

go-modules-code-completion
Continue reading

Posted in EAP, New Features | Tagged , , , | Leave a comment

Working with Go Modules – Dependency management

In this second article from our series on Go Modules, we’ll cover how to manage project dependencies:.

This series of articles is broken down into the following sections:

We looked at how to get started with a simple application that has an external dependency in the previous article. Now let’s check out how we can change the version of that dependency, remove it from our source code, and, finally, use the vendoring mode to move our dependencies to the vendor folder.

Continue reading

Posted in Features, Tutorial | Tagged , , | Leave a comment

Test Driven Development with GoLand

Test-Driven Development, or TDD as it is commonly referred to, is the development process in which tests are written first, then the code to support them is created, and, when every test passes, code is refactored.

Let’s have a look at how the unique features of GoLand allow us to be proficient with this workflow.

The general TDD workflow looks like this:

Continue reading

Posted in Features, Tutorial | Tagged , , , | 2 Comments

GoLand Editing Features You Didn’t Know About

Let’s take a look at what GoLand 2020.1 brings in terms of editing features to help us save time when we have to edit our Go code.

We can start with some of the more obvious things, like parameter names.

When implementing an interface, parameter names are suggested automatically:

Seamless Editing Features - add parameter names when implementing interfaces

But you can also get suggestions when just typing function/method parameters:

Seamless Editing Features - add parameter names when typing in function signature

But this is not just about the big, obvious, things. Sometimes, it’s also the little things that make a difference to our quality of life, and GoLand tries to address these as well.
Continue reading

Posted in EAP, New Features, Tutorial | Tagged , , , , | Leave a comment

GoLand 2020.1 EAP 4: Support for Environment Variables, and You Can Use GoLand as a Simple Text Editor

You can get this EAP build through the Toolbox App, by downloading it from the website, by using a snap package (for Ubuntu), or from right inside GoLand by selecting Automatically check updates for Early Access Program in Preferences / Settings | Appearance & Behavior | System Settings | Updates.

Don’t forget that we regularly release nightly builds based on the latest development code. You can use these nightly builds to get access to the latest features without having to wait for the official EAP announcements. These nightly builds are only available via the Toolbox App, however.

Download GoLand 2020.1 EAP #4

Go Modules

Go 1.13’s environment variables GOPROXY, GOPRIVATE, GOSUMDB, GONOPROXY, and GONOSUMB are now supported.

On the Go Modules projects template, you can easily configure the defaults for the values of all the environment variables in one place, get a short description for each one, and navigate to the https://golang.org source to get more information about them. Simply click the Browse icon in the Environment field to open the new Environment Variables dialog.

go-modules-environment-variables
Continue reading

Posted in EAP, New Features | Tagged , , , , , | Leave a comment

GoLand 2019.3.3 is out!

Download GoLand 2019.3.3 via the Toolbox App, update from an earlier version by using Help | Check for Updates command, or use a snap package (for Ubuntu), or just download a copy from our website.

Download GoLand 2019.3.3

The main aim of this bug-fix update is to provide you with the ability to work on Go Modules projects with vendor/ in GoLand with Go 1.14.

One week ago Go 1.14 was released with vendoring mode enabled automatically if the module root contains a vendor directory. Read this release notes by the Go team to learn about this change in detail. We’ve already supported this change in GoLand 2020.1 EAP, and even implemented similar behavior for Go versions 1.13 and lower. The IDE will automatically resolve imports to the vendor/ folder if it is present in the module.

In Preferences/Settings | Go | Go Modules, we’ve changed the Vendoring mode checkbox to read Enable vendoring support automatically. This setting cannot be disabled by language rules for Go 1.14, but for versions 1.13 and lower, we provide the option to disable it.

go-1-14-support

Read the full release notes to get more information about the issues that have been fixed.

Remember that we always appreciate your feedback, so please share it with us here in the comments, on Twitter, or using our issue tracker.

Posted in New Features, Releases | Tagged , , | 1 Comment

How to Find Goroutines During Debugging

Goroutines are an essential part of most programs written in Go. But using lots of goroutines makes a program harder to debug. Or does it? In this blog post, we’ll take a look at labeling goroutines with custom data, one of the latest features in GoLand 2020.1, which is now in EAP.

Continue reading

Posted in EAP, Features, New Features, Tutorial | Tagged , , , | Leave a comment

Working with Go Modules – Getting started

Development for Go Modules continues in Go 1.13 and the support GoLand has for them too. Today, we’ll have a look at how to transform our development model to use them without hassle.

This series of articles is broken down into the following sections:

Let’s start by making sure that we are working with the latest version of Go. While Go 1.11 is the minimum Go version that uses Go Modules, the recent developments in Go 1.13 mean that is it better for this type of project.

The same is true for GoLand. Make sure that you have GoLand 2019.3.2 or newer installed, as this series relies on the features found in this newer version of the IDE.

Continue reading

Posted in Features, Tutorial | Tagged , , | 2 Comments