Video Recording and Q&A of GoLand Tips & Tricks Webinar

Florin Pățan

During our recent webinar, we shared over 40 GoLand tips & tricks that you can use to boost your productivity with the IDE.

Here’s the summary of the presentation and all the tips shown:
00:00:18 – Organize projects in IDE
00:01:13 – Hide/Show Editor tabs
00:01:44 – Using the Zen Mode
00:02:09 – Show/hide the Project View Tool Window
00:02:24 – Use the Navigation Bar
00:03:04 – Import a package without typing its name
00:03:43 – Smart Type Completion
00:04:34 – Postfix Completion
00:05:43 – Method-like Completion
00:06:42 – (Custom) Live Templates. Use of builtin completion templates helpers
00:07:44 – Use the builtin completion helper for error checking
00:08:30 – Use the builtin completion helper to fill in default return values
00:09:05 – Partial Match Completion
00:09:42 – Completion with Tab
00:10:33 – Completion for type-assertion
00:11:14 – Parameter name auto-generation
00:12:31 – Cyclic Expand Word / Cyclic Expand Word (Backward)
00:13:37 – Parameter Info for functions and structs
00:13:58 – Use Fill fields action to populate structs initialization statements
00:14:37 – Language Injections
00:17:00 – Go Templates completion support in injections
00:17:57 – Create undefined type
00:18:51 – Extend/Shrink Selection
00:19:34 – Add Selection for Next Occurrence
00:20:10 – Completion in comments
00:21:05 – Navigate to File. Switcher. Recent Files. Recent Locations
00:23:30 – Navigate to File. Structure Pop-up. Select in
00:25:42 – Type Hierarchy. Call Hierarchy. Quick Definition
00:27:53 – Implement Interface refactoring
00:29:07 – Rename refactoring
00:29:50 – Change Signature refactoring
00:31:46 – Extract Interface refactoring
00:32:40 – Navigate to/from interface and implementation
00:32:57 – Introduce Constant/Variable refactoring. Inline refactoring
00:34:04 – Setting a breakpoint. Completion in breakpoints
00:35:43 – Generate test for function
00:36:58 – Run test with coverage
00:37:37 – Use auto-test for testing changes
00:38:51 – Sync project dependencies using quickfix
00:39:00 – Use Debugger Labels to make debugging complex applications easier
00:41:51 – Profiler support for CPU, Memory, Blocking, and Mutexes in benchmarks and tests
00:43:00 – Smart Step Into
00:43:57 – Display better type information and values in the debugger using simple DebugString/String//Error methods
00:45:26 – Early Access Program start

If you missed the webinar, you can find a recording of it here:

From the questions we received, we picked three respondents who will each get a complimentary GoLand license! We’ll be sending those out to the lucky winners shortly.
If you asked a question during the webinar, look below to find the answer to it. However, if you couldn’t attend, or you want to ask further questions, please let us know in the comments section below.

Questions

Gopher: Do you have any advice on how to learn more about the IDE and do it effectively?
Florin: There are several options you can use for this. You can start using the Help | Productivity Guide feature. You can also install the Key Promoter X plugin. We’ve also begun adding lessons to the IDE using the Tutorials section on the Welcome Screen. And finally, you can read our blog, where we frequently publish articles about the IDE.

Gopher: Can you share the most useful plugins you use again?
Gopher: What plugin do you recommend to use for day-to-day programming with Go?
Florin: I cannot recommend anything specific for Go as all the functionality in the webinar, and a lot more, is present in the IDE by default. I can recommend plugins like Key Promoter X, Presentation Assistant, Rainbow Brackets, and Gopher.

Gopher: Is the loading progress bar with the Gopher a plugin?
Florin: Yes, it’s the Gopher.

Gopher: How can I quickly navigate in the main menu, like button + first letter of the word?
Florin: I’d recommend not using the menus unless you need to. You can use the Find Action, Ctrl+Shift+A on Windows/Linux or ⌘+Shift+A on macOS, or Search Everywhere, Shift+Shift, features to quickly find and use features and settings within the IDE.

Gopher: Will there be more similar webinars?
Florin: Yes, we plan to host more webinars in the future. Please let us know what topics you would like us to explore in the future and what other guests you would like to see.

Gopher: Are there any integrated features we can use when we use Webstorm along with GoLand?
Florin: GoLand integrates all the features WebStorm has. If this is not what you meant, please clarify in the comments section below.

Gopher: How can I create a unit test automatically?
Florin: You can use the Generate feature, Alt+Insert on Windows/Linux or ⌘+N on macOS, and select the option that you need. You can see this in the webinar.

Gopher: What’s the shortcut for opening the “tipsandtricks” navigator that the presenter is using?
Florin: This is called the Navigation Bar. You can access it by using Alt+Home on Windows/Linux or ⌘+Arrow Up on macOS.

Gopher: Are there keymaps to shift the macOS hotkeys to be more Linux-like (or the reverse)?
Florin: You can use the IntelliJ Classic keymap on macOS, as it’s bundled by default, which should give you a similar Windows/Linux like binding and serve as a basis for a custom keymap.

Gopher: Are there any best practices for replacing function keys for a MacBook with a touch bar?
Florin: I don’t use macOS, but you can read more about the Touch Bar support in our help documentation. If you have any further questions, then please contact us either using the comments section below or the issue tracker.

Gopher: Hello, thank you for your useful presentation. I am new to GoLand and not familiar with all features. You told us about tests, and I wonder, is it possible to jump back and forth from the method and test of this method? It is quite useful for TDD.
Florin: Yes, you can do this by using the dedicated Navigate to Test feature: Ctrl+Shift+T on Windows/Linux or ⌘+Shift+T on macOS.

Gopher: Is there an easy way to compile and deploy to Kubernetes?
Florin: There are a variety of tools, such as kubeadm, minikube, and microk8s, that can all be used to achieve this. If you are on Windows, Docker Desktop for Windows comes with built-in Kubernetes support. If you instead plan to use a platform that is based on ARM chips, like the Raspberry Pi 4, then you can use something like k3s to get started. Once you do that, you can have a look at our previous webinar, or read our blog post on this.

Gopher: Can we get the tips project?
Florin: Yes, it’s available at https://github.com/dlsniper/golandtipsandtricks.

Gopher: Is it possible to navigate to a declaration from a comment by just clicking on it?
Florin: This will become possible in v2020.2. Please look out for our updates on this via the blog post/EAP releases.

Gopher: Can I run the EAP in parallel to my stable GoLand version?
Florin: Yes, the EAP can be installed in parallel with a stable GoLand version. You can use the Toolbox, to simplify installing/updating the IDE.

Gopher: Is it possible to quickly go back to the project structure after a new non-modal dialog?
Florin: You can use Alt+1 on Windows/Linux or ⌘+1 on macOS to bring up the Project tool window.

Gopher: I have two questions. The first one is: what’s the shortcut to invoke the project menu in the zen mode. The second one: how do you get the colorized comments?
Florin: To your first question, you can open the Project tool window, see the answer above.
For the second question, you can replicate this using the Settings/Preferences | Editor | TODO feature, as described in the repository.

Gopher: Is there a smart way to update Go modules (go.mod) via GoLand? Especially to get the latest version of a module (like go get -u gitlab.com/some/package@latest).
Florin: At the moment, GoLand does not have a dedicated UI for package management. We’ll address this in the future.

Gopher: Adding golangci/golangci-lint in Watchers causes issues with GoLand. It keeps saying after a while: “Executing ‘golangci-lint'”. Does GoLand already have something compatible with standard golangci-lint?
Florin: There is a third-party plugin that might solve some of these issues. However, I recommend creating issues on our tracker about what inspections you are missing and are useful for your workflow.

Gopher: How do I use the next selected part of the selected text? I guess it was something like “d.Field()” or similar.
Florin: I’m not sure what you’re asking. Please watch the recording and ask in the comments below about the specific feature that you are interested in.

Gopher: Is there a way to jump to the end of the line?
Florin: Yes, use the End key.

Gopher: Hi Florin! What books can you recommend?
Florin: The Go Programming Language, https://www.gopl.io/, is the one I read a while ago when I was still in my early Go days. There are others here: https://golang.org/wiki/Books.

Gopher: Are there any plans to put .env file support into the IDE directly? While there is a plugin, it’s not convenient to enable it for every test.
Florin: At the moment, there are no such plans. Perhaps you can explain how you want to use the plugin/feature itself? From my understanding, you’re expecting to load a “.env” file, but it’s not loaded in the tests. Can you please correct me on this using the comments section below?

That’s all for today. If you have any further questions, you can reach out to us in the comments section below, on our Twitter account, or raise an issue on our tracker.
We are also looking forward to hearing from you about other topics or guest speakers that you’d like to watch in our future webinars.

Subscribe

Subscribe for updates