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

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.phpDocSpecialTag field type changed from com.intellij.psi.tree.ILazyParseableElementType to com.jetbrains.php.lang.documentation.phpdoc.psi.stubs.PhpDocMethodTagElementType 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.PhpDocElementTypes.phpDocMethod field type changed from com.jetbrains.php.lang.documentation.phpdoc.psi.PhpDocElementType to com.jetbrains.php.lang.documentation.phpdoc.psi.stubs.PhpDocMethodElementType 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.phpDocProperty field type changed from com.jetbrains.php.lang.documentation.phpdoc.psi.PhpDocElementType to com.jetbrains.php.lang.documentation.phpdoc.psi.stubs.PhpDocPropertyElementType 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.PhpTypedElementImpl It's necessary to check that the code doesn't rely on the superclass. The change also affects all the inheritors of PhpDocTagImpl.
com.jetbrains.php.lang.documentation.phpdoc.psi.impl.tags.PhpDocMethodTagImpl superclass changed from com.intellij.psi.impl.source.tree.LazyParseablePsiElement to com.jetbrains.php.lang.documentation.phpdoc.psi.impl.tags.PhpDocTagImpl It's necessary to check that the code doesn't rely on the superclass.
com.jetbrains.php.lang.documentation.phpdoc.psi.impl.tags.PhpDocMethodImpl 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.

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