[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-03 09:07:37 +02:00
committed by intellij-monorepo-bot
parent 3865c06adb
commit c037841853
25 changed files with 57 additions and 18 deletions

View File

@@ -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/>

View File

@@ -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>

View File

@@ -1,6 +1,7 @@
<idea-plugin>
<dependencies>
<module name="intellij.platform.backend"/>
<module name="intellij.spellchecker"/>
<module name="intellij.json"/>
</dependencies>

View File

@@ -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",

View File

@@ -182,6 +182,7 @@ private val contentModulesExtractedInCorePluginWhichCanBeUsedFromExternalPlugins
"intellij.platform.tasks.impl",
"intellij.spellchecker.xml",
"intellij.relaxng",
"intellij.spellchecker",
)
private fun collectDirectDependenciesInOldFormat(rootDescriptor: IdeaPluginDescriptorImpl,

View File

@@ -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>

View File

@@ -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"/>

View File

@@ -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?

View File

@@ -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"/>

View File

@@ -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">

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

View File

@@ -23,6 +23,7 @@
]]></description>
<dependencies>
<module name="intellij.spellchecker"/>
<module name="intellij.platform.vcs.impl"/>
</dependencies>

View File

@@ -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"/>

View File

@@ -1,5 +1,6 @@
<idea-plugin>
<dependencies>
<module name="intellij.spellchecker"/>
<plugin id="com.intellij.java"/>
</dependencies>

View File

@@ -10,6 +10,7 @@
<dependencies>
<module name="intellij.json.backend"/>
<module name="intellij.spellchecker"/>
</dependencies>
<resource-bundle>messages.JsonPathBundle</resource-bundle>

View File

@@ -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"

View File

@@ -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>

View File

@@ -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

View File

@@ -13,6 +13,7 @@
<dependencies>
<plugin id="com.intellij.modules.lang"/>
<module name="intellij.spellchecker"/>
</dependencies>
<description><![CDATA[

View File

@@ -10,6 +10,7 @@
]]></description>
<depends>com.intellij.modules.lang</depends>
<depends>com.intellij.modules.spellchecker</depends>
<extensionPoints>
<extensionPoint qualifiedName="com.intellij.textmate.bundleProvider"

View File

@@ -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>

View File

@@ -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">

View File

@@ -1,5 +1,6 @@
<idea-plugin>
<dependencies>
<module name="intellij.spellchecker"/>
<module name="intellij.python.sdk"/>
<module name="intellij.python.community"/>
</dependencies>

View File

@@ -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"/>

View File

@@ -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"/>