12 KiB

title
Incompatible Changes in IntelliJ Platform and Plugins API

Changes in IntelliJ Platform 2018.1

Change How to deal with it
com.google.common.base.Objects.ToStringHelper class removed Use com.google.common.base.MoreObjects.ToStringHelper instead
com.google.common.util.concurrent.Futures.get method removed Use com.google.common.util.concurrent.Futures.getChecked instead
org.tmatesoft.svn package removed Use classes from org.jetbrains.idea.svn instead
org.jetbrains.idea.svn.svnkit.SvnKitManager class removed Use org.jetbrains.idea.svn.api.ClientFactory instead
com.intellij.ide.ui.laf.darcula.ui.TextFieldWithPopupHandlerUI constructor parameter JTextField removed Use com.intellij.ide.ui.laf.darcula.ui.TextFieldWithPopupHandlerUI default constructor instead
com.intellij.ide.ui.laf.darcula.ui.DarculaTextFieldUI constructor parameter JTextField removed Use com.intellij.ide.ui.laf.darcula.ui.DarculaTextFieldUI default constructor instead
com.intellij.ide.ui.laf.darcula.ui.DarculaComboBoxUI constructor parameter JComboBox removed Use com.intellij.ide.ui.laf.darcula.ui.DarculaComboBoxUI default constructor instead
com.intellij.ide.ui.laf.darcula.ui.TextFieldWithPopupHandlerUI.myTextField field removed Use javax.swing.plaf.basic.BasicTextUI.getComponent() instead
com.intellij.ide.ui.laf.darcula.ui.DarculaButtonUI.isDefaultButton method parameter type changed from javax.swing.JComponent to java.awt.Component This was done to avoid many redundant casts to javax.swing.JComponent

Changes in PhpStorm and PHP plugin 2018.1

Change How to deal with it
com.jetbrains.php.lang.documentation.phpdoc.parser.PhpDocElementTypes.DOC_COMMENT field type changed from com.intellij.psi.tree.ILazyParseableElementType to com.jetbrains.php.lang.documentation.phpdoc.psi.stubs.PhpDocCommentElementType In most of the cases it's enough to recompile the code. It may also be needed to check that the code doesn't rely on the field's type.
com.jetbrains.php.lang.documentation.phpdoc.parser.PhpDocElementTypes.phpDocTag field type changed from com.jetbrains.php.lang.documentation.phpdoc.psi.PhpDocElementType to com.jetbrains.php.lang.documentation.phpdoc.psi.stubs.PhpDocTagElementType In most of the cases it's enough to recompile the code. It may also be needed to check that the code doesn't rely on the field's type.
com.jetbrains.php.lang.documentation.phpdoc.parser.PhpDocElementTypes.phpDocReturn field type changed from com.jetbrains.php.lang.documentation.phpdoc.psi.PhpDocElementType to com.jetbrains.php.lang.documentation.phpdoc.psi.stubs.PhpDocTagElementType In most of the cases it's enough to recompile the code. It may also be needed to check that the code doesn't rely on the field's type.
com.jetbrains.php.lang.documentation.phpdoc.parser.PhpDocElementTypes.phpDocMixin field type changed from com.jetbrains.php.lang.documentation.phpdoc.psi.PhpDocElementType to com.jetbrains.php.lang.documentation.phpdoc.psi.stubs.PhpDocTagElementType In most of the cases it's enough to recompile the code. It may also be needed to check that the code doesn't rely on the field's type.
com.jetbrains.php.lang.documentation.phpdoc.parser.PhpDocElementTypes.phpDocThrows field type changed from com.jetbrains.php.lang.documentation.phpdoc.psi.PhpDocElementType to com.jetbrains.php.lang.documentation.phpdoc.psi.stubs.PhpDocTagElementType In most of the cases it's enough to recompile the code. It may also be needed to check that the code doesn't rely on the field's type.
com.jetbrains.php.lang.documentation.phpdoc.parser.PhpDocElementTypes.phpDocParam field type changed from com.jetbrains.php.lang.documentation.phpdoc.psi.PhpDocElementType to com.jetbrains.php.lang.documentation.phpdoc.psi.stubs.PhpDocTagElementType In most of the cases it's enough to recompile the code. It may also be needed to check that the code doesn't rely on the field's type.
com.jetbrains.php.lang.documentation.phpdoc.parser.PhpDocElementTypes.phpDocInlineTag field type changed from com.jetbrains.php.lang.documentation.phpdoc.psi.PhpDocElementType to com.jetbrains.php.lang.documentation.phpdoc.psi.stubs.PhpDocTagElementType In most of the cases it's enough to recompile the code. It may also be needed to check that the code doesn't rely on the field's type.
com.jetbrains.php.lang.documentation.phpdoc.parser.tags.PhpDocTagParser.getElementType method return type changed from com.jetbrains.php.lang.documentation.phpdoc.psi.PhpDocElementType to com.intellij.psi.tree.IElementType In most of the cases it's enough to recompile the code. It's also necessary to change the return type of subclasses.
com.jetbrains.php.lang.documentation.phpdoc.psi.impl.PhpDocCommentImpl superclass changed from com.intellij.psi.impl.source.tree.LazyParseablePsiElement to com.jetbrains.php.lang.psi.elements.impl.PhpPsiElementImpl It's necessary to check that the code doesn't rely on the superclass.
com.jetbrains.php.lang.documentation.phpdoc.psi.impl.tags.PhpDocTagImpl superclass changed from com.jetbrains.php.lang.documentation.phpdoc.psi.impl.PhpDocPsiElementImpl to com.jetbrains.php.lang.psi.elements.impl.PhpNamedElementImpl It's necessary to check that the code doesn't rely on the superclass. The change also affects all the inheritors of PhpDocTagImpl.

Changes in IntelliJ Platform 2017.3

Change How to deal with it
com.intellij.internal.statistic.AbstractApplicationUsagesCollector class removed This class isn't supposed to be used in regular plugins. Override com.intellij.internal.statistic.AbstractProjectsUsagesCollector instead if you're developing an IDE with its own statistics services.
com.intellij.internal.statistic.UsagesCollector.doPersistProjectUsages method removed This method isn't supposed to be used in regular plugins. There is no need to call this method anymore.
org.apache.sanselan package removed Use classes from org.apache.commons.imaging instead
com.intellij.psi.MultiplePsiFilesPerDocumentFileViewProvider.getLanguages abstract method added Implementation of this class are supposed to have several languages so you need to implement this method explicitly and return them all
org.jetbrains.kotlin.idea.configuration.KotlinProjectConfigurator.changeCoroutineConfiguration abstract method added You need to implement this method and add the logic for updating the configuration in your build system
org.jetbrains.kotlin.idea.configuration.KotlinProjectConfigurator.updateLanguageVersion abstract method added You need to implement this method and add the logic for updating the configuration in your build system
org.jetbrains.kotlin.idea.configuration.KotlinProjectConfigurator.addLibraryDependency abstract method added You need to implement this method and add the logic for updating the configuration in your build system

Changes in DataGrip and Database Tools plugin 2017.3

Change How to deal with it
com.intellij.database.dataSource.DataSourceManager class removed Use com.intellij.database.psi.DbPsiFacade instead
com.intellij.database.dataSource.DataSourceManagerEx class removed Use com.intellij.database.psi.DbPsiFacade instead
com.intellij.database.dataSource.DataSource class removed Use com.intellij.database.psi.DbDataSource and com.intellij.database.model.DatabaseSystem instead.
com.intellij.database.psi.DbDataSource.getModel method return type changed from DbElement-based model to DasObject-based model Use com.intellij.database.psi.DbPsiFacade.findElement to get the corresponding com.intellij.database.psi.DbElement wrapper when needed.
com.intellij.database.view.DatabaseView.getTreeBuilder method removed Use LangDataKeys.PSI_ELEMENT_ARRAY.get(event) to get Database view selection

Changes in PhpStorm and PHP plugin 2017.3

Change How to deal with it
com.jetbrains.php.lang.psi.elements.Function.getReturnType() method return type changed from PsiElement to PhpReturnType Before method had been returning a com.jetbrains.php.lang.psi.elements.ClassReference. Now method returns com.jetbrains.php.lang.psi.elements.PhpReturnType. Method ReturnType.getClassReference() can be used if you need just a ClassReference. If you need to get the PhpType, use com.jetbrains.php.lang.psi.elements.Function.getReturnType.getType() method instead

Changes in IntelliJ Platform 2016.3

Change How to deal with it
ApplicationListener.afterWriteActionFinished abstract method added Implement this method or extend com.intellij.openapi.application.ApplicationAdapter class instead of implementing the interface

Changes in IntelliJ Platform 2016.2

Change How to deal with it
com.intellij.util.net.HttpConfigurable.PROXY_LOGIN field removed Use com.intellij.util.net.HttpConfigurable.getProxyLogin() instead
com.intellij.util.net.HttpConfigurable.PROXY_PASSWORD_CRYPT field removed Use com.intellij.util.net.HttpConfigurable.getPlainProxyPassword() instead
org.jetbrains.asm4 package removed Use classes from org.jetbrains.org.objectweb.asm package instead