GoLand 2019.2 Help

Intention actions

As you work in the editor, GoLand analyzes your code, searches for ways to optimize it, and detects potential and actual problems. Intention actions cover a wide range of situations from errors and warnings to optimization suggestions.

In GoLand, you can use the following types of intention actions:

  • Intention actions yellow bulb icon: an action that generates a piece of code or suggests an alternative variant for your code. Usually, an intention action is applied to a valid piece of code. By clicking the yellow bulb icon, you can view intention actions available in the current context. For example, you can create a constructor that generates values of a struct type. Or, replace the if-else statement with the equivalent one but with a negated condition and swapped if-else branches.

  • Quick-fixes red bulb icon: an action that suggests a solution for a problem in your code. Usually, the intention action is applied to a code that has an error. For example, when you missed brackets at the end of the expression. Or, when you forgot to convert a value to a specific type.

Apply intention actions

  1. Click the light bulb icon (or press Alt+Enter) to open the list of suggestions.

  2. Select an action from the list and press Enter.

    For example, you can use an intention action to inject another language in your code:

View all intention actions

You can view the full list of available intention actions, and disable actions that you don't need at the moment. To open the list of intention action, go to the Settings /Preferences dialog Ctrl+Alt+S and select Editor | Intentions.

Settings of intention actions

Disable intention actions on the fly

  1. Click the light bulb icon (or press Alt+Enter) to open the list of suggestions.

  2. Select the action you want to disable, and click the right arrow.

  3. Select Disable <intention action name>.

    Disable intention action

Examples of intention actions

Add a format string argument

The Add format string argument intention action generates a placeholder for the expression. The intention action inserts the placeholder into a format string and passes the expression as an argument for the placeholder.

Apply a quick-fix by hovering a cursor

if DataGrip knows how to fix the problem, you will know about it by just hovering the mouse over the warning. To fix the problem just click the link at the lower left corner of the tooltip. Alternatively, press Alt+Enter and apply a corresponding action.

Apply a quick-fix by hovering a cursor

Replace GROUP BY with DISTINCT

You can convert GROUP BY to DISTINCT if all the columns of the SELECT clause are presented in the GROUP BY clause. To convert the GROUP BY statement, place the caret at GROUP BY, press Alt+Enter, and select Replace GROUP BY with DISTINCT.

Convert GROUP BY to DISTINCT

Intention actions for declarations

You can perform the following actions with Go declarations by using intention actions:

  • Add parentheses to declaration

  • Remove parentheses from declaration

  • Merge declaration up

  • Merge declaration up via comma

  • Merge all declarations

  • Split declarations into two groups

  • Split declaration by comma

  • Split all declarations

Fill struct fields

When you create a new struct, you can automatically generate field names for it.

  1. Place a caret between braces of a struct.

  2. Press Alt+Enter.

  3. Select Fill all fields.

  4. Enter field values.

Examples of quick fixes

Convert to the expected type

The Convert to the expected type quick-fix Alt+Enter converts a value to the expected type.

Using the Convert to type quick fix

Finish a call expression

The Finish call expression quick-fix adds missing brackets and completes the expression.

Using the Finish call expression quick fix
Last modified: 6 September 2019