API Breaking Changes: new layout

This commit is contained in:
Yann Cébron 2019-03-07 13:59:20 +01:00
parent e7eb104a47
commit f5dd9509f5
5 changed files with 178 additions and 122 deletions

View File

@ -6,25 +6,18 @@ title: Incompatible Changes in IntelliJ Platform and Plugins API 2016.*
See the note on how to document new problems on the main page reference_guide/api_changes_list.md
-->
<style>
table {
width:100%;
}
th, tr, td {
width:50%;
}
</style>
## Changes in IntelliJ Platform 2016.3
| Change | How to deal with it |
|---------|---------------------|
| [`com.intellij.openapi.application.ApplicationListener.afterWriteActionFinished`](upsource:///platform/core-api/src/com/intellij/openapi/application/ApplicationListener.java?nav=1481:1505:focused&line=45) abstract method added | Implement this method or extend [`com.intellij.openapi.application.ApplicationAdapter`](upsource:////platform/core-api/src/com/intellij/openapi/application/ApplicationAdapter.java) class instead of implementing the interface |
[`com.intellij.openapi.application.ApplicationListener.afterWriteActionFinished`](upsource:///platform/core-api/src/com/intellij/openapi/application/ApplicationListener.java?nav=1481:1505:focused&line=45) abstract method added
: Implement this method or extend [`com.intellij.openapi.application.ApplicationAdapter`](upsource:////platform/core-api/src/com/intellij/openapi/application/ApplicationAdapter.java) 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()`](upsource:///platform/platform-api/src/com/intellij/util/net/HttpConfigurable.java) instead |
| `com.intellij.util.net.HttpConfigurable.PROXY_PASSWORD_CRYPT` field removed | Use [`com.intellij.util.net.HttpConfigurable.getPlainProxyPassword()`](upsource:///platform/platform-api/src/com/intellij/util/net/HttpConfigurable.java) instead |
| `org.jetbrains.asm4` package removed | Use classes from `org.jetbrains.org.objectweb.asm` package instead |
`com.intellij.util.net.HttpConfigurable.PROXY_LOGIN` field removed
: Use [`com.intellij.util.net.HttpConfigurable.getProxyLogin()`](upsource:///platform/platform-api/src/com/intellij/util/net/HttpConfigurable.java) instead.
`com.intellij.util.net.HttpConfigurable.PROXY_PASSWORD_CRYPT` field removed
: [`com.intellij.util.net.HttpConfigurable.getPlainProxyPassword()`](upsource:///platform/platform-api/src/com/intellij/util/net/HttpConfigurable.java) instead.
`org.jetbrains.asm4` package removed
: Use classes from `org.jetbrains.org.objectweb.asm` package instead.

View File

@ -6,39 +6,47 @@ title: Incompatible Changes in IntelliJ Platform and Plugins API 2017.*
See the note on how to document new problems on the main page reference_guide/api_changes_list.md
-->
<style>
table {
width:100%;
}
th, tr, td {
width:50%;
}
</style>
## 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 |
`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 |
`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 |
`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.

View File

@ -10,68 +10,124 @@ See the note on how to document new problems on the main page reference_guide/ap
-->
<style>
table {
width:100%;
}
th, tr, td {
width:50%;
}
</style>
## Changes in IntelliJ Platform 2018.3
| Change | How to deal with it |
|---------|---------------------|
| `com.intellij.openapi.externalSystem.action.ExternalSystemAction#isEnabled` method `AnActionEvent` parameter marked `@NotNull` | remove `?`s in your Kotlin code |
| `com.intellij.openapi.externalSystem.action.ExternalSystemAction#isVisible` method `AnActionEvent` parameter marked `@NotNull` | remove `?`s in your Kotlin code |
| `com.intellij.openapi.actionSystem.AnAction#actionPerformed` method `AnActionEvent` parameter marked `@NotNull` | remove `?`s in your Kotlin code |
| `com.intellij.openapi.actionSystem.DataContext#getData` method `dataId` parameter marked `@NotNull` | remove `?`s in your Kotlin code |
| `com.intellij.openapi.actionSystem.ToggleAction#isSelected` method `AnActionEvent` parameter marked `@NotNull` | remove `?`s in your Kotlin code |
| `com.intellij.openapi.actionSystem.ToggleAction#setSelected` method `AnActionEvent` parameter marked `@NotNull` | remove `?`s in your Kotlin code |
| `com.intellij.openapi.actionSystem.DataProvider#getData` method `dataId` parameter marked `@NotNull` | remove `?`s in your Kotlin code |
| `com.intellij.psi.meta.PsiMetaData.getDependences` method removed | Use `com.intellij.psi.meta.PsiMetaData.getDependencies` |
`com.intellij.openapi.externalSystem.action.ExternalSystemAction#isEnabled` method `AnActionEvent` parameter marked `@NotNull`
: Remove `?`s in your Kotlin code.
`com.intellij.openapi.externalSystem.action.ExternalSystemAction#isVisible` method `AnActionEvent` parameter marked `@NotNull`
: Remove `?`s in your Kotlin code.
`com.intellij.openapi.actionSystem.AnAction#actionPerformed` method `AnActionEvent` parameter marked `@NotNull`
: Remove `?`s in your Kotlin code.
`com.intellij.openapi.actionSystem.DataContext#getData` method `dataId` parameter marked `@NotNull`
: Remove `?`s in your Kotlin code.
`com.intellij.openapi.actionSystem.ToggleAction#isSelected` method `AnActionEvent` parameter marked `@NotNull`
: Remove `?`s in your Kotlin code.
`com.intellij.openapi.actionSystem.ToggleAction#setSelected` method `AnActionEvent` parameter marked `@NotNull`
: Remove `?`s in your Kotlin code.
`com.intellij.openapi.actionSystem.DataProvider#getData` method `dataId` parameter marked `@NotNull`
: Remove `?`s in your Kotlin code.
`com.intellij.psi.meta.PsiMetaData.getDependences` method removed
: Use `com.intellij.psi.meta.PsiMetaData.getDependencies` instead.
## Changes in IntelliJ Platform 2018.2
| Change | How to deal with it |
|---------|---------------------|
| `com.intellij.util.Query.forEach` method parameter type changed from `Processor<Result>` to `Processor<? super Result>` | Update `Query` implementations accordingly |
| `com.intellij.util.Query.forEachAsync` method parameter type changed from `Processor<Result>` to `Processor<? super Result>` | Update `Query` implementations accordingly |
| `com.intellij.util.QueryExecutor.execute` method parameter type changed from `Processor<Result>` to `Processor<? super Result>` | Update `QueryExecutor` implementations accordingly |
| `com.intellij.openapi.application.QueryExecutorBase.processQuery` method parameter type changed from `Processor<Result>` to `Processor<? super Result>` | Update `QueryExecutorBase` inheritors accordingly |
| `com.intellij.util.InstanceofQuery` type parameter `T` added | Set this parameter at call sites to base query type |
| `com.intellij.task.ProjectTaskManager.build` method parameter type changed from `Artifact[]` to `ProjectModelBuildableElement[]` | In most of the cases it's enough to recompile the code. |
| `com.intellij.task.ProjectTaskManager.rebuild` method parameter type changed from `Artifact[]` to `ProjectModelBuildableElement[]` | In most of the cases it's enough to recompile the code. |
| `org.apache.batik.script.InterpreterFactory.createInterpreter` abstract method added | Update `InterpreterFactory` implementations accordingly |
`com.intellij.util.Query.forEach` method parameter type changed from `Processor<Result>` to `Processor<? super Result>`
: Update `Query` implementations accordingly.
`com.intellij.util.Query.forEachAsync` method parameter type changed from `Processor<Result>` to `Processor<? super Result>`
: Update `Query` implementations accordingly.
`com.intellij.util.QueryExecutor.execute` method parameter type changed from `Processor<Result>` to `Processor<? super Result>`
: Update `QueryExecutor` implementations accordingly.
`com.intellij.openapi.application.QueryExecutorBase.processQuery` method parameter type changed from `Processor<Result>` to `Processor<? super Result>`
: Update `QueryExecutorBase` inheritors accordingly.
`com.intellij.util.InstanceofQuery` type parameter `T` added
: Set this parameter at call sites to base query type.
`com.intellij.task.ProjectTaskManager.build` method parameter type changed from `Artifact[]` to `ProjectModelBuildableElement[]`
: In most of the cases, it's enough to recompile the code.
`com.intellij.task.ProjectTaskManager.rebuild` method parameter type changed from `Artifact[]` to `ProjectModelBuildableElement[]`
: In most of the cases, it's enough to recompile the code.
`org.apache.batik.script.InterpreterFactory.createInterpreter` abstract method added
: Update `InterpreterFactory` implementations accordingly.
## 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`](https://svnkit.com/index.html) 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 |
| `clojure` package removed | Clojure 1.8 jars are removed from IntelliJ Ultimate package, provide your own jars if needed |
| `com.intellij.ide.structureView.newStructureView.StructureViewComponent.getTreeBuilder` method removed | Use `queueUpdate` and `getTree` instead |
`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`](https://svnkit.com/index.html) 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.
`clojure` package removed
: Clojure 1.8 jars are removed from IntelliJ Ultimate package, provide your own jars if needed.
`com.intellij.ide.structureView.newStructureView.StructureViewComponent.getTreeBuilder` method removed
: Use `queueUpdate` and `getTree` 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. |
`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.

View File

@ -10,28 +10,27 @@ See the note on how to document new problems on the main page reference_guide/ap
-->
<style>
table {
width:100%;
}
th, tr, td {
width:50%;
}
</style>
## Changes in IntelliJ Platform 2019.1
| Change | How to deal with it |
|---------|---------------------|
| `kotlinx.coroutines.experimental` package removed | Bundled Kotlin library is updated to 1.3 so the plugins must [migrate](https://blog.jetbrains.com/kotlin/2018/09/kotlin-1-3-rc-is-here-migrate-your-coroutines/) to the stable versions of coroutines. |
| `com.intellij.openapi.vcs.impl.ProjectLevelVcsManagerImpl(Project, FileStatusManager, FileIndexFacade, ProjectManager, DefaultVcsRootPolicy, VcsFileListenerContextHelper)` constructor removed | Use `com.intellij.openapi.vcs.impl.ProjectLevelVcsManagerImpl.<init>(Project, FileStatusManager, FileIndexFacade, ProjectManager, DefaultVcsRootPolicy)` |
| `com.intellij.injected.editor.DocumentWindow.injectedToHost(int, boolean)` abstract method added | Implement the method in DocumentWindow implementations |
| `git4idea.rebase.GitCommitEditingAction#actionPerformed(AnActionEvent)` method became final | Implement `actionPerformedAfterChecks` instead of `actionPerformed` |
| `git4idea.rebase.GitCommitEditingAction#actionPerformedAfterChecks(AnActionEvent)` abstract method added | Implement `actionPerformedAfterChecks` instead of `actionPerformed` |
| `com.intellij.util.lang.UrlClassLoader.loadPlatformLibrary` method removed | Use `com.intellij.util.loader.NativeLibraryLoader.loadPlatformLibrary` instead. |
`kotlinx.coroutines.experimental` package removed
: Bundled Kotlin library is updated to 1.3 so the plugins must [migrate](https://blog.jetbrains.com/kotlin/2018/09/kotlin-1-3-rc-is-here-migrate-your-coroutines/) to the stable versions of coroutines.
`com.intellij.openapi.vcs.impl.ProjectLevelVcsManagerImpl(Project, FileStatusManager, FileIndexFacade, ProjectManager, DefaultVcsRootPolicy, VcsFileListenerContextHelper)` constructor removed
: Use `com.intellij.openapi.vcs.impl.ProjectLevelVcsManagerImpl.<init>(Project, FileStatusManager, FileIndexFacade, ProjectManager, DefaultVcsRootPolicy)`.
`com.intellij.injected.editor.DocumentWindow.injectedToHost(int, boolean)` abstract method added
: Implement the method in `DocumentWindow` implementations.
`git4idea.rebase.GitCommitEditingAction#actionPerformed(AnActionEvent)` method marked final
: Implement `actionPerformedAfterChecks` instead of `actionPerformed`.
`git4idea.rebase.GitCommitEditingAction#actionPerformedAfterChecks(AnActionEvent)` abstract method added
: Implement `actionPerformedAfterChecks` instead of `actionPerformed`.
`com.intellij.util.lang.UrlClassLoader.loadPlatformLibrary` method removed
: Use `com.intellij.util.loader.NativeLibraryLoader.loadPlatformLibrary` instead.
## Changes in DataGrip and Database Tools plugin 2019.1
| Change | How to deal with it |
|---------|---------------------|
| `com.intellij.sql.psi.SqlTokens.SQL_IDENT` field type changed from `com.intellij.sql.psi.impl.SqlTokenType` to `com.intellij.sql.psi.SqlTokenType` | 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.intellij.sql.psi.SqlTokens.SQL_IDENT` field type changed from `com.intellij.sql.psi.impl.SqlTokenType` to `com.intellij.sql.psi.SqlTokenType`
: 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.

View File

@ -9,8 +9,8 @@ in an alternative way as the following docs state:
API Compatibility policy: https://confluence.jetbrains.com/display/IDEA/IntelliJ+Platform+API+compatibility+policy
API Compatibility FAQ: https://confluence.jetbrains.com/display/IDEA/IntelliJ+API+Compatibility+Policy+FAQ
To document a new incompatible change, you have to fill a row in a table so that
the first column is a problem pattern and the second column is a human-readable description.
To document a new incompatible change, add a new line with the problem pattern
followed by a 2nd line with ": "-prefixed human-readable description.
The following problem patterns are supported:
@ -23,7 +23,7 @@ The following problem patterns are supported:
<class name>.<method name> method parameter <type> removed
<class name>.<method name> method parameter type changed from <before> to <after>
<class name>.<method name> method visibility changed from <before> to <after>
<class name>.<method name> method became final
<class name>.<method name> method marked final
<class name> constructor removed
<class name> constructor parameter <type> removed