Feature list isn't complete, this page is subject to change.

There are three completion types:

Logical name

Shortcut

Basic

Ctrl+Space

Smart (SmartType)

Ctrl+Shift+Space

Class Name, equivalent to second Basic completion invocation

Ctrl+Alt+Space

Pressing the same shortcut twice results in 'second' completion, which may give more variants.

All languages

You may choose item in completion list not only with Enter, but also with variety of other keys: space, dot, colon, semicolon, '(' etc. Basically this will result in inserting that character after the completed identifier, but sometimes more will be done. For example, finishing Java method call with '(' will, of course, insert also ')'.

Choosing item with Tab has special meaning. In this case, if you are inside identifier, it will be overwritten completely instead of just inserting the item string into caret position.

Choosing item with Ctrl+Shift+Enter not only inserts an item, but also invokes Complete Statement to syntactically correct the code. For Java method calls this means that what's after the caret becomes an argument of the method call just inserted.

Class Name completion (Second Basic) works everywhere and typically displays all class names that are accessible from the current location. On one more invocation it displays all the classes that may become visible if you change their access modifiers or add necessary module dependencies.

If you don't like some suggested classes and you don't want to see it anymore, you may easily exclude it from import and completion.

Middle matching is used to filter suggestions.

Java

Basic

Smart

Both Basic & Smart

Groovy

Basic

Smart