Skip to end of metadata
Go to start of metadata

Redirection Notice

Icon

IntelliJ IDEA lets you manage your imports in Scala the same way as it does in other languages.

You can configure imports in the Project Settings and in the IDE Settings. You can also optimize your imports and exclude classes from auto-import in the editor.

1.Project Settings

You can format your imports using Project Settings.

In the Settings dialog, selectProject SettingsCodeScalaImports.

  • Class count to use import with '_' - in 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 block - select this check box to add your import statement to the closest block instead of the top of your code.
  • Add fully qualified imports - select this check box to add 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. Note, that if Add fully qualified imports check box is selected then fully qualified imports are sorted first.
  • Collect imports with the same prefix into one import - use 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 name - select 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 prefix - this 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 Layout - this area lets you view the layout of the import statements, add or remove blank lines between them, and add or remove package names. You can also move the rows in the layout up or down .

2.IDE Settings

You can configure the behavior of the imports in your workspace through the IDE Settings.

In the Settings dialog, selectIDE SettingsEditorAuto Import.

 You can select the following options:

  • Insert imports on paste - use this drop-down list to define how IntelliJ IDEA will insert imports for pasted blocks of code if they contain references to classes that are not imported into the target class.
    You can select from the following options:
    All - select this option to have IntelliJ IDEA automatically add import statements for all classes that are found in the pasted block of code and are not imported in the current class yet.
    Ask - if this option is selected, when pasting code blocks, IntelliJ IDEA will open a dialog box, where you can choose the desired imports.
    None - select this option to suppress import.
Icon

If you skip an import suggested in the Ask mode or choose the None mode, the non-imported classes will be red-highlighted and an import pop-up window will appear to help you create import statements using the Alt+Enter keyboard shortcut.

  • Optimize imports on the fly - select this check box to have the Optimize Imports operation automatically performed for your files. If you clear this check box, you can manually optimize your imports selectingCode →Optimize Imports.

  • Add unambiguous imports on the fly - select this check box to have IntelliJ IDEA automatically add imports that can be added without user intervention.

3.Optimizing Imports

You can optimize imports selectingCode →Optimize Importscommand.

In this dialog box, specify from where you want IntelliJ IDEA to remove unused import statements, in order to optimize the import procedure.

  • File - click this option to have unused imports removed from the current file. This option is selected by default, if a file in the editor has the focus, or if it is selected in the Project tool window.
  • All files in directory <directory name> - click this option to have unused imports removed from all files in the current directory at once. This option is selected by default, if a directory is selected in the Project tool window.
  • Do not show this dialog in the future - select this check box to perform import optimization in the future silently.

4.Excluding Classes from Auto-Import

If the list of suggested imports is too wide, you can exclude unnecessary classes on the fly using intention actions.

Start typing a name in the editor.

In the Class to Import suggestion list, clickAlt+Enter, and click the right arrow to reveal the nested list of intention actions. IntelliJ IDEA suggests you to exclude specific class or the whole containing package.

In the dialog that opens perform necessary changes and click OK.

  • No labels

1 Comment

  1. Anonymous

    There is a bug with the Scala Code Style Import Layout where you cannot restrict a match to exactly the package.  For example, in our project, we import classes from com.escalatesoft.subcut.inject.BindingModule, and we also have a Scala module named "common", so we import common.postgres.dao.DaoImplicits.richPostgresDao.  The Optimize Imports feature will put these two imports together in a section identified by "com" in the Import Layout settings.  But we do not want "com" to match "common".  Entering "com.*" into the Import Layout settings does not work (I guess wildcards are not supported.)