From 648f05f384c3c130f362c96a5bd5cfc4dd311313 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yann=20C=C3=A9bron?= Date: Thu, 24 Apr 2025 16:20:16 +0200 Subject: [PATCH] remove 2019 content --- ijs.tree | 1 - reference_guide/api_changes_list.md | 1 - reference_guide/api_changes_list_2019.md | 296 ------------------ .../registering_file_type.md | 17 - .../providing_live_templates.md | 41 +-- .../user_interface_components/tool_windows.md | 12 +- 6 files changed, 5 insertions(+), 363 deletions(-) delete mode 100644 reference_guide/api_changes_list_2019.md diff --git a/ijs.tree b/ijs.tree index 5c6833e0d..3ba376644 100644 --- a/ijs.tree +++ b/ijs.tree @@ -415,7 +415,6 @@ - - -# Incompatible Changes in IntelliJ Platform and Plugins API 2019.* - - - -List of known Breaking API Changes in 2019.* - - - -## 2019.3 - -### IntelliJ Platform 2019.3 - -`com.intellij.codeInsight.TailType.getLocalCodeStyleSettings(Editor, int)` method removed -: Use `com.intellij.psi.codeStyle.CommonCodeStyleSettings.getLocalCodeStyleSettings(Editor, int)` instead. - -`com.intellij.codeInsight.TailType.EQ` field removed -: Use `com.intellij.codeInsight.lookup.EqTailType.INSTANCE` instead. - -`com.intellij.codeInsight.TailType.COMMA` field removed -: Use `com.intellij.codeInsight.lookup.CommaTailType.INSTANCE` instead. - -`com.intellij.codeInsight.completion.CompletionContributor.getActionShortcut(String)` method removed -: Use `com.intellij.codeInsight.completion.CompletionUtil.getActionShortcut(String)` instead - -`com.intellij.codeInsight.AutoPopupController.runTransactionWithEverythingCommitted(Project, Runnable)` method removed -: Use `com.intellij.codeInsight.AutoPopupControllerImpl.runTransactionWithEverythingCommitted(Project, Runnable)` instead - -`com.intellij.codeInsight.completion.InsertionContext.getCodeStyleSettings()` method removed -: Use `com.intellij.codeInsight.completion.util.CompletionStyleUtil.getCodeStyleSettings(InsertionContext)` instead - -`com.intellij.codeInsight.completion.CompletionUtil.sortMatching(PrefixMatcher, Collection)` method removed -: Use `com.intellij.codeInsight.completion.PrefixMatcher.sortMatching(Collection)` instead - -`com.intellij.json.JsonFileTypeFactory` class removed -: Use instead. - -`com.intellij.util.containers.ConcurrentHashSet` class removed -: Use `com.intellij.util.containers.ContainerUtil#newConcurrentSet` instead. - -`com.intellij.openapi.editor.impl.EditorFactoryImpl(EditorActionManager)` constructor removed -: Use `com.intellij.openapi.editor.EditorFactory.getInstance()` instead. - -`com.intellij.util.net.ssl.CertificateManager.HOSTNAME_VERIFIER` field removed -: Use `org.apache.http.conn.ssl.DefaultHostnameVerifier` instead. - -`com.intellij.openapi.util.BuildNumber.getBuildNumber()` method removed -: See `BuildNumber.asString`, `BuildNumber.getBaselineVersion()` and `BuildNumber.getComponents()` as alternatives. - -`com.intellij.remoteServer.configuration.deployment.DeploymentConfigurationManager.createAndRunConfiguration(ServerType, RemoteServer)` method removed -: Use `DeploymentConfigurationManager.createAndRunConfiguration(ServerType, RemoteServer, DeploymentSourceType)` instead. - -#### VCS -`com.intellij.openapi.vcs.changes.ui.ChangesListView.UNVERSIONED_FILES_DATA_KEY` field removed -: Use `com.intellij.openapi.vcs.changes.ui.ChangesListView.UNVERSIONED_FILE_PATHS_DATA_KEY` instead. - -`com.intellij.openapi.vcs.VcsVFSListener.myAddedFiles` field removed -: Use `com.intellij.openapi.vcs.VcsVFSListener.myProcessor.acquireAddedFiles()` instead. - -`com.intellij.openapi.vcs.VcsVFSListener.myDeletedFiles` field removed -: Use `com.intellij.openapi.vcs.VcsVFSListener.myProcessor.acquireAllDeletedFiles().deletedFiles` instead. - -`com.intellij.openapi.vcs.VcsVFSListener.myDeletedWithoutConfirmFiles` field removed -: Use `com.intellij.openapi.vcs.VcsVFSListener.myProcessor.acquireAllDeletedFiles().deletedWithoutConfirmFiles` instead. - -`com.intellij.openapi.vcs.VcsVFSListener.myExceptions` field removed -: Use `com.intellij.openapi.vcs.VcsVFSListener.myProcessor.acquireExceptions()` or `com.intellij.openapi.vcs.VcsVFSListener.myProcessor.addException(VcsException exception)` instead. - -#### Test Framework -`com.intellij.testFramework.PlatformTestUtil.registerExtension(ExtensionsArea, T, Disposable)` method removed -: Use `com.intellij.testFramework.ServiceContainerUtil#registerExtension(BaseExtensionPointName, T, Disposable)` instead. - -`com.intellij.testFramework.PlatformTestUtil.registerExtension(ExtensionsArea, BaseExtensionPointName, T, Disposable)` method removed -: Use `com.intellij.testFramework.ServiceContainerUtil#registerExtension(BaseExtensionPointName, T, Disposable)` instead. - -`com.intellij.testFramework.fixtures.DefaultLightProjectDescriptor.getModuleType()` method removed -: Use `com.intellij.testFramework.fixtures.DefaultLightProjectDescriptor.getModuleTypeId()` instead (see `com.intellij.openapi.module.ModuleTypeId`). - -### Java Plugin 2019.3 - -`com.intellij.codeInspection.magicConstant.MagicCompletionContributor.getAllowedValues(PsiElement)` method return type changed from `com.intellij.codeInspection.magicConstant.MagicConstantInspection.AllowedValues` to `com.intellij.codeInspection.magicConstant.MagicConstantUtils.AllowedValues` -: Use new type instead. - -### Groovy Plugin 2019.3 - -`org.jetbrains.plugins.groovy.extensions.GroovyScriptTypeDetector(GroovyScriptType, String[])` constructor removed -: Use constructor `GroovyScriptTypeDetector(GroovyScriptType)` instead, and `com.intellij.fileType` to register additional extensions. - -### Cucumber Plugin 2019.3 - -`org.jetbrains.plugins.cucumber.javascript.CucumberJavaScriptStepDefinitionCreator#createStepDefinition(GherkinStep, PsiFile)` method removed -: Use `org.jetbrains.plugins.cucumber.javascript.CucumberJavaScriptStepDefinitionCreator#createStepDefinition(GherkinStep, PsiFile, boolean)` instead. - -`org.jetbrains.plugins.cucumber.psi.GherkinStep#getStepName()` method removed -: Use `org.jetbrains.plugins.cucumber.psi.GherkinStep#getName()` instead. - -`org.jetbrains.plugins.cucumber.CucumberJvmExtensionPoint#resolveStep()` method removed -: See `org.jetbrains.plugins.cucumber.steps.reference.CucumberStepReference#multiResolveInner()` instead. - -`org.jetbrains.plugins.cucumber.CucumberJvmExtensionPoint#getGlues()` method removed -: Java specific method was moved to CucumberJava implementation. - -### DataGrip and Database Tools Plugin 2019.3 - -`com.intellij.sql.dialects.mssql.MssqlDialect` class renamed to `com.intellij.sql.dialects.mssql.MsDialect` -: Do not use SQL dialect classes directly. - -`com.intellij.sql.dialects.oracle.OracleDialect` class renamed to `com.intellij.sql.dialects.oracle.OraDialect` -: Do not use SQL dialect classes directly. - -`com.intellij.sql.dialects.postgres.PostgresDialect` class renamed to `com.intellij.sql.dialects.postgres.PgDialect` -: Do not use SQL dialect classes directly. - -### RubyMine and Ruby Plugin 2019.3 - -`org.jetbrains.plugins.ruby.ruby.codeInsight.types.RubyTypeProvider.createTypeBySymbolFromProviders(Symbol symbol, Context context)` method parameter `Context` removed -: This was done as part of [`RUBY-24760`](https://youtrack.jetbrains.com/issue/RUBY-24760) in order to move to new Context-less approach. - -### PyCharm and Python Plugin 2019.3 - -`com.jetbrains.python.inspections.PythonVisitorFilter` class moved to package `com.jetbrains.python.psi` - -`com.jetbrains.python.psi.PyUtil.addElementToStatementList(PsiElement, PyStatementList, boolean)` method removed -: Use `com.jetbrains.python.refactoring.PyRefactoringUtil.addElementToStatementList(PsiElement, PyStatementList, boolean)` instead - -`com.jetbrains.python.psi.search.PyProjectScopeBuilder.excludeSdkTestsScope(Project)` method removed -: Use `com.jetbrains.python.psi.search.PySearchUtilBase.excludeSdkTestsScope(Project)` instead. - -`icons.PythonIcons.Python.PropertySetter` field removed -: Use `icons.PythonPsiApiIcons.PropertySetter` instead. - -`icons.PythonIcons.Python.PropertyGetter` field removed -: Use `icons.PythonPsiApiIcons.PropertyGetter` instead. - -`PARSE.expected.colon` property removed from resource bundle `com.jetbrains.python.PyBundle` -: Use `com.jetbrains.python.PyPsiBundle` instead. - -`PARSE.expected.expression` property removed from resource bundle `com.jetbrains.python.PyBundle` -: Use `com.jetbrains.python.PyPsiBundle` instead. - -## 2019.2 - -### IntelliJ Platform 2019.2 -Constructor injection referring to extension points not supported -: Obtain reference to extension points via `(Project)ExtensionPointName.findExtension()` in your constructor instead. - -`com.intellij.openapi.components.BaseState.map$default(BaseState, Map, int, Object)` method removed -: Use `com.intellij.openapi.components.BaseState.map()` instead. - -`org.nustaq` package removed -: [fast-serialization](https://github.com/RuedigerMoeller/fast-serialization) library was removed, please use `com.intellij.serialization.ObjectSerializer` instead. - -`java.org.java_websocket` package removed -: [Java-WebSocket](https://github.com/TooTallNate/Java-WebSocket) library was removed, bundle it with your plugin instead. - -`com.intellij.ui.layout.Cell.invoke$default(Cell, JComponent, CCFlags[], int, GrowPolicy, String, int, Object)` method parameter type changed -: The signature of this function has been seriously changed without the possibility to keep the old function. Change invocations and overriding of that function according to new parameters and recompile the code. - -`com.intellij.ui.layout.Row.label$default(Row, String, int, UIUtil.ComponentStyle, UIUtil.FontColor, boolean, int, Object)` method removed -: This method has been pulled up to the base class `Cell`; since it has default parameters, it's a binary breaking change in Kotlin. -Recompile your code to pick up the new signature. - -`com.yourkit` package removed -: YourKit library has been extracted into the separate plugin, which is not bundled in all IDEs by default. YourKit library is a library for profiling IDE, and its util classes shouldn't be used for general purposes. Instead of `com.yourkit.util.Strings` please use `org.apache.commons.lang.StringUtils`. Instead of `com.yourkit.util.ArrayUtil` please use `org.apache.commons.lang.ArrayUtils`. - -`org.jetbrains.intellij.build.ProductProperties.yourkitAgentBinariesDirectoryPath` field removed -: Please bundle [performanceTesting plugin](https://plugins.jetbrains.com/plugin/7819-performance-testing) in case you would like to bundle YourKit profiler within your IDE. - -`org.jetbrains.intellij.build.ProductProperties.enableYourkitAgentInEAP` field removed -: Please bundle [performanceTesting plugin](https://plugins.jetbrains.com/plugin/7819-performance-testing) in case you would like to bundle YourKit profiler within your IDE. - -`com.intellij.extapi.psi.PsiElementBase` class removed -: Please use `com.intellij.psi.impl.PsiElementBase` or one of its descendants as a base class for PSI elements, e.g. `com.intellij.extapi.psi.ASTWrapperPsiElement`, as suggested in [Custom Language Support Tutorial](grammar_and_parser.md). - -`com.intellij.extapi.psi.MetadataPsiElementBase` class removed -: Please use different base class for PSI elements. - -`com.intellij.ide.actions.SearchAgainAction` class now extends `com.intellij.openapi.editor.actionSystem.EditorAction` and inherits its final method `actionPerformed` -: Please use the to register a different handler for the action. - -`com.intellij.ide.actions.SearchBackAction` class now extends `com.intellij.openapi.editor.actionSystem.EditorAction` and inherits its final method `actionPerformed` -: Please use the to register a different handler for the action. - -`com.intellij.lexer.RestartableLexer.getRestartableState()` method removed -: Please use `com.intellij.lexer.RestartableLexer.isRestartableState(int state)` instead. - -`com.intellij.lexer.RestartableLexer.isRestartableState(int state)` abstract method added -: Implement method in `RestartableLexer` implementations. - -`com.intellij.lexer.RestartableLexer.start(CharSequence buffer, int startOffset, int endOffset, int initialState, TokenIterator tokenIterator)` abstract method added -: Implement method in `RestartableLexer` implementations. - -## 2019.1 - -### IntelliJ Platform 2019.1 - -`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.(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. - -`com.intellij.openapi.util.KeyedExtensionCollector.getExtensions()` method marked final -: Remove custom implementation. - -### DataGrip and Database Tools Plugin 2019.1 - -`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. - -### Kotlin Plugin API 1.3 - -`org.jetbrains.kotlin.KtNodeTypes.BOOLEAN_CONSTANT` field type changed from `org.jetbrains.kotlin.KtNodeType` to `com.intellij.psi.tree.IElementType` -: Field type has been generalized. In most of the cases, it's enough to recompile the code of the plugin. - -`org.jetbrains.kotlin.KtNodeTypes.CHARACTER_CONSTANT` field type changed from `org.jetbrains.kotlin.KtNodeType` to `com.intellij.psi.tree.IElementType` -: Field type has been generalized. In most of the cases, it's enough to recompile the code of the plugin. - -`org.jetbrains.kotlin.KtNodeTypes.FLOAT_CONSTANT` field type changed from `org.jetbrains.kotlin.KtNodeType` to `com.intellij.psi.tree.IElementType` -: Field type has been generalized. In most of the cases, it's enough to recompile the code of the plugin. - -`org.jetbrains.kotlin.KtNodeTypes.INTEGER_CONSTANT` field type changed from `org.jetbrains.kotlin.KtNodeType` to `com.intellij.psi.tree.IElementType` -: Field type has been generalized. In most of the cases, it's enough to recompile the code of the plugin. - -`org.jetbrains.kotlin.KtNodeTypes.STRING_TEMPLATE` field type changed from `org.jetbrains.kotlin.KtNodeType` to `com.intellij.psi.tree.IElementType` -: Field type has been generalized. In most of the cases, it's enough to recompile the code of the plugin. diff --git a/topics/reference_guide/custom_language_support/registering_file_type.md b/topics/reference_guide/custom_language_support/registering_file_type.md index e19c9326a..4168e0e0b 100644 --- a/topics/reference_guide/custom_language_support/registering_file_type.md +++ b/topics/reference_guide/custom_language_support/registering_file_type.md @@ -17,9 +17,6 @@ The IDE typically determines the type of a file by looking at its filename or ex A custom language file type is a class derived from [`LanguageFileType`](%gh-ic%/platform/core-api/src/com/intellij/openapi/fileTypes/LanguageFileType.java), which passes a [`Language`](%gh-ic%/platform/core-api/src/com/intellij/lang/Language.java) subclass to its base class constructor. ### Registration - - - Use to register `LanguageFileType` implementation and instance via `implementationClass` and `fieldName` attributes. Also, `name` and `language` must be declared matching `FileType.getName()` and ID of language returned from `LanguageFileType.getLanguage()`, respectively. @@ -33,20 +30,6 @@ To associate the file type in the IDE, specify one or more associations listed i | Filename pattern(s) | `patterns` | Semicolon-separated list of patterns (`*` and `?`) | | Hashbang _(2020.2+)_ | `hashBangs` | Semicolon-separated list of hash bang patterns | - - - - -> The `FileTypeFactory` approach is deprecated. Use it only when the plugin supports platform versions older than 2019.2. -> -{style="warning"} - -To register a file type, the plugin developer provides a subclass of [`FileTypeFactory`](%gh-ic%/platform/ide-core/src/com/intellij/openapi/fileTypes/FileTypeFactory.java), which is registered via -the . - - - - **Examples** - [Custom Language Support Tutorial: Language and File Type](language_and_filetype.md) - [`LanguageFileType`](%gh-ic%/platform/core-api/src/com/intellij/openapi/fileTypes/LanguageFileType.java) subclass in [Properties language plugin](%gh-ic%/plugins/properties/properties-psi-api/src/com/intellij/lang/properties/PropertiesFileType.java) diff --git a/topics/tutorials/live_templates/providing_live_templates.md b/topics/tutorials/live_templates/providing_live_templates.md index bfdfbb7e3..f7681fae3 100644 --- a/topics/tutorials/live_templates/providing_live_templates.md +++ b/topics/tutorials/live_templates/providing_live_templates.md @@ -101,7 +101,7 @@ Depending on the version of the IntelliJ Platform, different steps are used to c - + Using the and , register the implementations with the IntelliJ Platform. The `file` attribute in specifies `path/filename` under the src/main/resources folder. @@ -119,7 +119,7 @@ Specify required `contextId` attribute in - + Using the and , register the implementations with the IntelliJ Platform. The `file` attribute in the specifies `path/filename` under the src/main/resources folder. @@ -134,43 +134,6 @@ The `file` attribute in the - - -The `MarkdownTemplateProvider` implementing [`DefaultLiveTemplatesProvider`](%gh-ic%/platform/lang-impl/src/com/intellij/codeInsight/template/impl/DefaultLiveTemplatesProvider.java) tells the Platform where to find the Live Template settings file. -Make sure to include the full path to the file, relative to the src/main/resources directory, excluding the file extension. - -```java -package org.intellij.sdk.liveTemplates; - -import com.intellij.codeInsight.template.impl.DefaultLiveTemplatesProvider; -import org.jetbrains.annotations.Nullable; - -final class MarkdownTemplateProvider implements DefaultLiveTemplatesProvider { - @Override - public String[] getDefaultLiveTemplateFiles() { - return new String[]{"liveTemplates/Markdown"}; - } - - @Nullable - @Override - public String[] getHiddenLiveTemplateFiles() { - return null; - } -} -``` - -Using the and , register the implementations with the IntelliJ Platform. - -```xml - - - - -``` - - ## Check Plugin diff --git a/topics/user_interface_components/tool_windows.md b/topics/user_interface_components/tool_windows.md index c1ead48d9..90fa494d1 100644 --- a/topics/user_interface_components/tool_windows.md +++ b/topics/user_interface_components/tool_windows.md @@ -46,28 +46,22 @@ This procedure ensures that unused tool windows don't cause any overhead in star #### Conditional Display -If the tool window of a plugin should not be displayed for all projects: +If the tool window of a plugin should not be displayed for all projects, the plugin can provide a corresponding condition. - + Implement suspending `ToolWindowFactory.isApplicableAsync(Project)` in Kotlin. - + Implement `ToolWindowFactory.isApplicable(Project)`. - - -Specify the `conditionClass` attribute in plugin.xml with a class implementing [`Condition`](%gh-ic%/platform/util/src/com/intellij/openapi/util/Condition.java) (can be the same class as the `ToolWindowFactory` implementation). - - - > The condition is evaluated only once when the project is loaded.