IntelliJ IDEA 2017.1 Help

Code Style. Scala

File | Settings | Editor | Code Style | Scala for Windows and Linux
IntelliJ IDEA | Preferences | Editor | Code Style | Scala for macOS


Use this page to configure formatting options for Scala files. View the result in the Preview pane on the right.

On this page:

Tabs and Indents

ItemDescription
Use tab character
  • If this check box is selected, tab characters are used:
    • On pressing the Tab key
    • For indentation
    • For code reformatting
  • When the check box is cleared, IntelliJ IDEA uses spaces instead of tabs.
Smart tabs
  • If this check box is selected, the part of indentation defined by the nesting of code blocks, is made of the tabs and (if necessary) spaces, while the part of indentation defined by the alignment is made only of spaces.
  • If this check box is cleared, only tabs are used. This means that a group of spaces that fits the specified tab size is automatically replaced with a tab, which may result in breaking fine alignment.

The Smart Tabs check box is available if the Use Tab Character check box is selected.

Tab sizeIn this text box, specify the number of spaces included in a tab.
IndentIn this text box, specify the number of spaces (or tabs if the Use Tab Character check box is selected) to be inserted for each indent level.
Continuation indentIn this text box, specify the number of spaces (or tabs if the Use Tab Character check box is selected) to be inserted between the elements of an array, in expressions, method declarations and method calls.
Keep indents on empty linesIf this check box is selected, then IntelliJ IDEA will keep indents on the empty lines as if they contained some code.
If this check box is not selected, IntelliJ IDEA will delete the tab characters and spaces.

Spaces

Use this tab to specify where you want spaces in your code. To have IntelliJ IDEA automatically insert a space at a location, select the check box next to this location in the list. The results are displayed in the Preview pane.

Wrapping and braces

In this tab, customize the code style options, which IntelliJ IDEA will apply on reformatting the source code. The left-hand pane contains the list of exceptions (Keep when reformatting), and placement and alignment options for the various code constructs (lists, statements, operations, annotations, etc.) The right-hand pane shows preview.

Alignment takes precedence over indentation options.

Keep when reformatting

Use the check boxes to configure exceptions that IntelliJ IDEA will make when reformatting the source code. For example, by default, the Line breaks check box is selected. If your code contains lines that are shorter than a standard convention, you can convert them by disabling the Line breaks check box before you reformat the source code.

Wrapping options

The wrapping style applies to the various code constructs, specified in the left-hand pane (for example, method call arguments, or assignment statements).

ItemDescription
Wrapping styleFrom this drop-down list, select the desired wrapping style:
  • Do not wrap - when this option is selected, no special wrapping style is applied.

    With this option selected, the nested alignment and braces settings are ignored.

  • Wrap if long - select this option to have lines going beyond the right margin wrapped with proper indentation.
  • Wrap always - select this option to have all elements in lists wrapped so that there is one element per line with proper indentation.
  • Chop down if long - select this option to have elements in lists that go beyond the right margin wrapped so that there is one element per line with proper indentation.

Alignment options

ItemDescription
Align when multilineIf this check box is selected, a code construct starts at the same column on each next line. Otherwise, the position of a code construct is determined by the current indentation level.
<character(s)> on next lineSelect this check box to have the specified character or characters moved to the next line when the lines are wrapped.
'else' on new lineUse this check box to have the corresponding statements or characters moved to the next line.
New line after <character> Select this check box to have the code after the specified character moved to a new line.
Special else if treatmentIf this check box is selected, else if statements are located in the same line.

Otherwise, else if statements are moved to the next line to the corresponding indent level.

Indent case branches If this check box is selected, the case statement is located at the corresponding indent level. Otherwise, case statement is placed at the same indent level with switch.

Braces placement options

ItemDescription
Braces placement style Use this drop-down list to specify the position of the opening brace in class declarations, method declarations, and other types of declarations. The available options are:
  • End of line - select this option to have the opening brace placed at the declaration line end.
  • Next line if wrapped - select this option to have the opening brace placed at the beginning of the line after the multiline declaration line.
  • Next line - select this option to have the opening brace placed at the beginning of the line after the declaration line.
  • Next line shifted - select this option to have the opening brace placed at the line after the declaration line being shifted to the corresponding indent level.
  • Next line each shifted - select this option to have the opening brace placed at the line after the declaration line being shifted to the corresponding indent level, and have the next line shifted to the next indent level as well.
Force bracesFrom this drop-down list, choose the braces introduction method for if, for, while, and do () while statements. The available options are:
  • Do not force - select this option to suppress introducing braces automatically.
  • When multiline - select this option to have braces introduced automatically, if a statement occupies more than one line. Note that IntelliJ IDEA analyzes the number of lines in the entire statement but not only its condition.
  • Always - select this check box to have braces always introduced automatically.

Blank lines

Use this tab to define where and how many blank lines you want IntelliJ IDEA to retain and insert in your code after reformatting. For each type of location, specify the number of blank lines to be inserted. The results are displayed in the Preview pane.

ItemDescription
Keep Maximum Blank LinesIn this area, specify the number of blank lines to be kept after reformatting in the specified locations.
Minimum Blank LinesIn the text boxes in this area, specify the number of blank lines to be present in the specified locations.

Imports

Use this tab to configure import settings for your project.

ItemDescription
Class count to use import with '_':Use this text field, specify the number of classes to be imported from a single package until all statements importing a single class are substituted with a statement importing an entire package.
Add import statement in closest blockSelect this check box to add your import statement to the closest block instead of the top of your code.
Add fully qualified importsSelect this check box to add fully qualified imports.
Do not change path during optimize imports for local importsSelect this check box to eliminate changing the local imports into the fully qualified imports.
Sort imports lexicographically (for optimize imports)Use this check box if you want IntelliJ IDEA to sort your imports in lexicographical order.
Collect imports with the same prefix into one importUse this check box if you want IntelliJ IDEA to insert all imports with the same prefix into one.
Import members using '_'If you select this check box then IntelliJ IDEA imports all members included in the object. If the check box is cleared, IntelliJ IDEA imports only a specific member such as method or a field from the object.
Use the shortest path, when trying to import reference with already imported nameSelect this check box to let IntelliJ IDEA find the shortest available path when you import the reference with already imported name using code completion.
Classes to use only with prefixThis area lets you view the list of classes with prefixes. You can add a pattern to use appropriate classes only with prefix or you can remove a class from the list.
Import Layoutthis area lets you view the layout of the import statements, add /help/img/idea/2017.1/add_line_icon.png or remove /help/img/idea/2017.1/delete.png blank lines between them,and add /help/img/idea/2017.1/new.png or remove /help/img/idea/2017.1/delete.png package names. You can also move the rows in the layout up /help/img/idea/2017.1/arrowUp.png or down /help/img/idea/2017.1/arrowDown.png.

Multi-line strings

ItemDescription
Multi-line supportUse this list to choose the support for the multi-line strings. You can choose from the following options:
  • Insert margin char - this is a default option that lets you add stripMargin method.
    /help/img/idea/2017.1/scala_stripMargin.png
  • Closing quotes on new line - use this option to get quotes on a new line when you press Enter in multi-line strings.
    /help/img/idea/2017.1/scala_quote_on_new_line.png
  • None - use this option if you don't want to use any special support for multi-line strings.
    /help/img/idea/2017.1/scala_none_multistring.png
Margin charUse this field to enter a character to use in the stripMargin method or use the default one (|).
Margin char indentUse this field to increase or decrease the indent for the Margin char.
Opening quotes on new lineSelect this check box to place the opening quotes on the new line.
Keep opening quotesSelect this check box to keep the opening quotes on the same line overriding the Opening quotes on new line option.
Strip/Insert margin on copy/pasteSelect this check box to remove the margin character when you copy/paste content of the margin. When this check box is cleared, the margin character is also copied and pasted.

Type Annotations

Use these settings for the code inspections.

ItemDescription
Instance Type AnnotationsUse this area to configure settings for Instance Type Annotations.
Local type AnnotationsUse this area to configure settings for Local Type Annotations.
Special CasesUse this area to configure setting for special cases in type annotations.

Arrangement

This tab lets you define a set of rules that rearranges your code according to your preferences.

ItemDescription
Grouping RulesUse this area to set the grouping rules.
  • Keep dependent methods together

    Select this check box to group the dependent methods together. In order: list, select depth-first or breadth-first options.

  • Keep_java_style_getters_and_setters_together

    Select this check box to keep Java getter and setter methods together. By default, this check box is selected.

  • Keep_scala_style_getters_and_setters_together

    Select this check box to keep Scala getter and setter methods together. By default, this check box is selected.

  • Split into unarrangeable blocks by expressions

    Select this check box

Matching rulesUse this area to define elements order as a list of rules, where every rule has a set of matches such as modifier or type.
  • /help/img/idea/2017.1/new.png - use this button to add a rule. The empty rule dialog window opens.
  • /help/img/idea/2017.1/delete.png - use this button to remove the rule from the list.
  • /help/img/idea/2017.1/edit1.png - use this button to edit an existing rule. To see this button, navigate to the rule that you want to edit and click on the button. In pop-up window that opens, modify the rule fields.
  • /help/img/idea/2017.1/arrowUp.png /help/img/idea/2017.1/arrowDown.png - use these buttons to move the selected rule up or down.
Empty ruleUse this window to create a new matching rule or edit an existing one. You can select from the following filters:
  • Type - use this filter to choose classes or methods for your rule.
    Note that clicking twice on the type keyword will negate the condition.
  • Modifier - use this filter to select the types of modifiers for the rule.
    Note that clicking twice on the modifier keyword will negate the condition.
  • Order - use this option to select the sorting order for the rule. This option is useful when more than one element uses the same matching rule. In this case, selecting Keep order will keep the same order as was set before the rearrangement and selecting Order by Name will sort the elements with the same matching rule by their names.
/help/img/idea/2017.1/icon_sort.png This icon appears when you select Order by Name in Order option. The icon indicates that the items in this rule are alphabetized.

Other

Use this tab to configure syntax when you use certain symbols in the code.

ItemDescription
Enforce procedure syntax for methods with Unit return typeSelect this check box to show the explicit syntax for methods with Unit return type.
Replace '=>' with unicode symbolSelect this check box to change '=>' symbol to one in Unicode.
Replace '->' with unicode symbolSelect this check box to change '->' symbol to one in Unicode.
Replace '<-' in "for" generator with unicode symbolSelect this check box to change '<-' symbol to one in Unicode.
Kind Projector: Replace 'Lambda' with unicode symbolSelect this check box to change 'Lambda' symbol to one in Unicode.

See Also

Last modified: 18 July 2017