[spellchecker] convert intellij.spellchecker to a content module (IJPL-189900)

This is needed to have an explicit dependency on the backend in it (IJPL-188916), and also to convert XML modules it depend on in content modules as well.

The new module is registered in common-ide-modules.xml to include it in all IntelliJ-based IDEs as before.

A plugin alias 'com.intellij.modules.spellchecker' is introduced to allow adding dependency on the new module without using a v2 'dependencies' tag. Existing plugins which depend on intellij.spellchecker are updated to have an explicit dependency. The change shouldn't affect external plugins which use classes from 'intellij.spellchecker' because the new module will be automatically added to their dependencies.

'lucene' and 'ai.grazie.spell.gec.engine.local' libraries which were included in the main classloader of the core plugin before due to this module are temporary included in distribution of intellij.ml.llm, intellij.grazie and intellij.searchEverywhereMl plugins. This will be fixed by converting these libraries to content module in next commits.

GitOrigin-RevId: aa746fea2f6fd044cf0eaabd6589fce89133eee9
This commit is contained in:
Nikolay Chashnikov
2025-06-04 14:41:40 +00:00
committed by intellij-monorepo-bot
parent 3865c06adb
commit c037841853
25 changed files with 57 additions and 18 deletions
@@ -29,9 +29,6 @@
<xi:include href="/META-INF/RegExpPlugin.xml">
<xi:fallback/>
</xi:include>
<xi:include href="/META-INF/SpellCheckerPlugin.xml">
<xi:fallback/>
</xi:include>
<xi:include href="/META-INF/structuralsearch.xml">
<xi:fallback/>
@@ -16,6 +16,7 @@
<plugin id="com.intellij.modules.xml"/>
<plugin id="com.intellij.modules.java-capable"/>
<module name="intellij.platform.vcs.impl.lang"/>
<module name="intellij.spellchecker"/>
<module name="intellij.xml.dom.impl"/>
</dependencies>
@@ -1,6 +1,7 @@
<idea-plugin>
<dependencies>
<module name="intellij.platform.backend"/>
<module name="intellij.spellchecker"/>
<module name="intellij.json"/>
</dependencies>
@@ -82,7 +82,6 @@ private val PLATFORM_IMPLEMENTATION_MODULES = java.util.List.of(
"intellij.platform.runtime.product",
"intellij.platform.bootstrap",
"intellij.spellchecker",
"intellij.platform.polySymbols",
"intellij.platform.vcs.log",
@@ -182,6 +182,7 @@ private val contentModulesExtractedInCorePluginWhichCanBeUsedFromExternalPlugins
"intellij.platform.tasks.impl",
"intellij.spellchecker.xml",
"intellij.relaxng",
"intellij.spellchecker",
)
private fun collectDirectDependenciesInOldFormat(rootDescriptor: IdeaPluginDescriptorImpl,
@@ -4,9 +4,6 @@
<xi:include href="/META-INF/RegExpPlugin.xml">
<xi:fallback/>
</xi:include>
<xi:include href="/META-INF/SpellCheckerPlugin.xml">
<xi:fallback/>
</xi:include>
<xi:include href="/META-INF/structuralsearch.xml">
<xi:fallback/>
</xi:include>
@@ -26,6 +26,7 @@
<module name="intellij.platform.diagnostic.freezes"/>
<module name="intellij.platform.warmup"/>
<module name="intellij.settingsSync.core"/>
<module name="intellij.spellchecker"/>
<module name="intellij.spellchecker.xml"/>
<module name="intellij.emojipicker"/>
<module name="intellij.platform.ide.impl.wsl"/>
@@ -6,7 +6,10 @@ import com.intellij.driver.sdk.Project
fun Driver.getSpellCheckerSettingsInstance(project: Project) = utility(SpellCheckerSettings::class).getInstance(project)
@Remote("com.intellij.spellchecker.settings.SpellCheckerSettings")
@Remote(
value = "com.intellij.spellchecker.settings.SpellCheckerSettings",
plugin = "com.intellij/intellij.spellchecker",
)
interface SpellCheckerSettings {
fun getInstance(project: Project): SpellCheckerSettings
fun getDictionaryToSave(): String?
@@ -2,6 +2,7 @@
<dependencies>
<plugin id="com.intellij.properties"/>
<plugin id="com.intellij.java"/>
<module name="intellij.spellchecker"/>
<module name="intellij.json.backend"/>
<module name="intellij.properties.backend"/>
<module name="intellij.properties.backend.psi"/>
@@ -2,6 +2,7 @@
<idea-plugin>
<dependencies>
<module name="intellij.platform.backend"/>
<module name="intellij.spellchecker"/>
<module name="intellij.editorconfig.common"/>
</dependencies>
<actions resource-bundle="messages.EditorConfigBundle">
+20 -7
View File
@@ -3,17 +3,20 @@
module: intellij.grazie.core
files:
- name: $MAVEN_REPOSITORY$/ai/grazie/nlp/nlp-detect-jvm/0/nlp-detect-jvm-0.jar
- name: lib/ai.grazie.spell.gec.engine.local.jar
library: ai.grazie.spell.gec.engine.local
files:
- name: $MAVEN_REPOSITORY$/ai/grazie/spell/gec-spell-engine-local-jvm/0/gec-spell-engine-local-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/utils/utils-common-jvm/0/utils-common-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/nlp/nlp-common-jvm/0/nlp-common-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/model/model-gec-jvm/0/model-gec-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/model/model-text-jvm/0/model-text-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/model/model-common-jvm/0/model-common-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/nlp/nlp-patterns-jvm/0/nlp-patterns-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/nlp/nlp-tokenizer-jvm/0/nlp-tokenizer-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/nlp/nlp-similarity-jvm/0/nlp-similarity-jvm-0.jar
- name: lib/ai.grazie.nlp.langs.jar
library: ai.grazie.nlp.langs
files:
- name: $MAVEN_REPOSITORY$/ai/grazie/nlp/nlp-langs-jvm/0/nlp-langs-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/nlp/nlp-common-jvm/0/nlp-common-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/nlp/nlp-patterns-jvm/0/nlp-patterns-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/nlp/nlp-similarity-jvm/0/nlp-similarity-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/nlp/nlp-phonetics-jvm/0/nlp-phonetics-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/nlp/nlp-tokenizer-jvm/0/nlp-tokenizer-jvm-0.jar
reason: <- intellij.grazie.core
- name: lib/ai.grazie.utils.lucene.lt.compatibility.jar
library: ai.grazie.utils.lucene.lt.compatibility
@@ -79,6 +82,16 @@
module: intellij.grazie.core
files:
- name: $MAVEN_REPOSITORY$/javax/measure/unit-api/1/unit-api-1.jar
- name: lib/lucene-analysis-common.jar
library: lucene-analysis-common
files:
- name: $MAVEN_REPOSITORY$/org/apache/lucene/lucene-analysis-common/9/lucene-analysis-common-9.jar
reason: <- intellij.grazie.core
- name: lib/lucene-core.jar
library: lucene-core
files:
- name: $MAVEN_REPOSITORY$/org/apache/lucene/lucene-core/9/lucene-core-9.jar
reason: <- intellij.grazie.core
- name: lib/net.loomchild-segment.jar
library: net.loomchild:segment:2.0.1
module: intellij.grazie.core
@@ -23,6 +23,7 @@
]]></description>
<dependencies>
<module name="intellij.spellchecker"/>
<module name="intellij.platform.vcs.impl"/>
</dependencies>
@@ -21,6 +21,7 @@
<dependencies>
<plugin id="com.intellij.properties"/>
<plugin id="com.intellij.java"/>
<module name="intellij.spellchecker"/>
<module name="intellij.java.unscramble"/>
<module name="intellij.properties.backend"/>
<module name="intellij.properties.backend.psi"/>
@@ -1,5 +1,6 @@
<idea-plugin>
<dependencies>
<module name="intellij.spellchecker"/>
<plugin id="com.intellij.java"/>
</dependencies>
@@ -10,6 +10,7 @@
<dependencies>
<module name="intellij.json.backend"/>
<module name="intellij.spellchecker"/>
</dependencies>
<resource-bundle>messages.JsonPathBundle</resource-bundle>
@@ -1,6 +1,7 @@
<idea-plugin package="org.intellij.plugins.markdown.spellchecker">
<dependencies>
<plugin id="com.intellij.modules.lang"/>
<module name="intellij.spellchecker"/>
</dependencies>
<extensions defaultExtensionNs="com.intellij">
<spellchecker.support language="Markdown"
@@ -7,6 +7,7 @@
<module name="intellij.properties"/>
<module name="intellij.properties.psi"/>
<module name="intellij.properties.backend.psi"/>
<module name="intellij.spellchecker"/>
</dependencies>
<extensionPoints>
@@ -29,9 +29,20 @@
- name: lib/modules/intellij.searchEverywhereMl.typos.jar
contentModules:
- name: intellij.searchEverywhereMl.typos
libraries:
ai.grazie.spell.gec.engine.local.jvm:
- name: $MAVEN_REPOSITORY$/ai/grazie/spell/gec-spell-engine-local-jvm/0/gec-spell-engine-local-jvm-0.jar
library: ai.grazie.spell.gec.engine.local
files:
- name: $MAVEN_REPOSITORY$/ai/grazie/spell/gec-spell-engine-local-jvm/0/gec-spell-engine-local-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/utils/utils-common-jvm/0/utils-common-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/model/model-gec-jvm/0/model-gec-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/model/model-text-jvm/0/model-text-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/model/model-common-jvm/0/model-common-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/nlp/nlp-langs-jvm/0/nlp-langs-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/nlp/nlp-common-jvm/0/nlp-common-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/nlp/nlp-patterns-jvm/0/nlp-patterns-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/nlp/nlp-similarity-jvm/0/nlp-similarity-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/nlp/nlp-phonetics-jvm/0/nlp-phonetics-jvm-0.jar
- name: $MAVEN_REPOSITORY$/ai/grazie/nlp/nlp-tokenizer-jvm/0/nlp-tokenizer-jvm-0.jar
reason: <- intellij.searchEverywhereMl.typos
- name: lib/searchEverywhereMl.jar
modules:
- name: intellij.searchEverywhereMl
+1
View File
@@ -13,6 +13,7 @@
<dependencies>
<plugin id="com.intellij.modules.lang"/>
<module name="intellij.spellchecker"/>
</dependencies>
<description><![CDATA[
@@ -10,6 +10,7 @@
]]></description>
<depends>com.intellij.modules.lang</depends>
<depends>com.intellij.modules.spellchecker</depends>
<extensionPoints>
<extensionPoint qualifiedName="com.intellij.textmate.bundleProvider"
@@ -6,6 +6,7 @@
<description>Allows to design Swing UI graphically, supports code generation/instrumentation, preview, widgets library and UI-related code inspections</description>
<resource-bundle>messages.UIDesignerBundle</resource-bundle>
<depends>com.intellij.java-i18n</depends>
<depends>com.intellij.modules.spellchecker</depends>
<depends>com.intellij.properties</depends>
<extensionPoints>
@@ -5,6 +5,7 @@
<module name="intellij.platform.backend"/>
<module name="intellij.platform.searchEverywhere.backend"/>
<module name="intellij.yaml"/>
<module name="intellij.spellchecker"/>
</dependencies>
<extensions defaultExtensionNs="com.intellij">
@@ -1,5 +1,6 @@
<idea-plugin>
<dependencies>
<module name="intellij.spellchecker"/>
<module name="intellij.python.sdk"/>
<module name="intellij.python.community"/>
</dependencies>
@@ -1,4 +1,5 @@
<idea-plugin>
<module value="com.intellij.modules.spellchecker"/>
<extensionPoints>
<extensionPoint name="spellchecker.support" beanClass="com.intellij.lang.LanguageExtensionPoint" dynamic="true">
<with attribute="implementationClass" implements="com.intellij.spellchecker.tokenizer.SpellcheckingStrategy"/>
@@ -1,6 +1,7 @@
<idea-plugin>
<dependencies>
<plugin id="com.intellij.modules.xml"/>
<module name="intellij.spellchecker"/>
</dependencies>
<extensions defaultExtensionNs="com.intellij">
<spellchecker.support language="HTML" implementationClass="com.intellij.spellchecker.xml.HtmlSpellcheckingStrategy"/>