Child pages
  • API changes in IntelliJ IDEA 9 (Maia)
Skip to end of metadata
Go to start of metadata


  • CompletionContributor#fillCompletionVariants returns void. If you want to stop other contributors from executing, call stopHere on CompletionResultSet or use runRemainingContributors methods from there. Also CompletionProvider doesn't take boolean returnValue in constructor anymore.
  • IndexedRootsProvider doesn't take Project returns Strings instead of VirtualFiles. Strings represent file URLs.
  • PsiShortNamesCache & PsiElementFinder are extensions and abstract classes now.
  • PsiFile#getOriginalFile is @NotNull now, returning itself when there's nothing more original.
  • Don't use IChameleonElementType anymore, please use ILazyParseableElementType for lazy parsing.
  • Type of parameter for PsiScopeProcessor.getHint() changed from Class<T> to Key<T>.

Behaviour changes

  • Closing brace ('}') is now inserted automatically (if brace matcher is configured). Earlier only ) and ] were inserted.
  • While indices are built in background, IDEA has limited functionality. See javadocs for DumbService and DumbAware.
  • The default PsiElementFinder#getClasses(PsiPackage, scope) is now capable of finding all PsiClassOwner files in package and asking them for getClasses(). So if your PsiElementFinder does exactly this, you'd better remove this method from there.
  • No labels

1 Comment

  1. Add the following changes to the list:

    • com.intellij.lang.Commenter: getCommentedBlockCommentPrefix and getCommentedBlockCommentSuffix methods added
    • com.intellij.lang.LanguageUtil#canStickTokensTogetherByLexer: fourth argument (int lexerState) removed
    • completion.contributor becomes a language extension, thus you must add "language" attribute to your completion.contributor declaration in plugin.xml