mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-22 11:29:28 +07:00
PythonCore content module intellij.python.community.impl was changed to loading="optional" in PY-85882 so that PythonCore can load in JetBrains Client, where some of its descriptor dependencies (externalSystem.impl, json, toml.core, yaml, ...) are not present. In non-PyCharm IDEs (GoLand, CLion, DataGrip, IDEA, WebStorm, JetBrains Client) the same optional content module also silently fails to load, leaving the PyModuleService interface in intellij.python.community on the classpath but no implementation registered. PythonSdkUtil.findPythonSdk (in the always-loaded intellij.python.sdk) calls PyModuleService.getInstance(project) unconditionally during stub indexing, which then throws "Cannot find service ... PyModuleService" and aborts the index update for every .py file. Diogen reports 5312 events across 49 users on 2026.2 EAP1/2/3. Move PyModuleServiceImpl and its <projectService> registration into intellij.python.community.core.impl, which is a required content module of PythonCore (no loading="optional") and only depends on basic modules (psi.impl, sdk, regexp) available wherever PythonCore loads. Drop the "type is PythonModuleTypeBase" check in isPythonModule: it is fully subsumed by the existing type.id == PYTHON_MODULE_ID check (PythonModuleTypeBase's sole constructor passes that id to super), and removing it avoids a circular dep on intellij.python.community.impl from core.impl. Add the needed compile/runtime deps to core.impl (intellij.python.community, intellij.platform.lang.core, intellij.libraries.kotlinx.coroutines.core) and declare intellij.python.community explicitly in the plugin descriptor so the classloader wiring does not rely on transitive deps elsewhere. GitOrigin-RevId: 7fb2a70e557c22409ea6f36f577faa59ec4cf6d9
14 lines
498 B
XML
14 lines
498 B
XML
<idea-plugin visibility="public">
|
|
<dependencies>
|
|
<module name="intellij.python.community"/>
|
|
<module name="intellij.python.psi.impl"/>
|
|
<module name="intellij.python.sdk"/>
|
|
<module name="intellij.regexp"/>
|
|
</dependencies>
|
|
|
|
<extensions defaultExtensionNs="com.intellij">
|
|
<projectService serviceInterface="com.jetbrains.python.module.PyModuleService"
|
|
serviceImplementation="com.jetbrains.python.module.PyModuleServiceImpl"/>
|
|
</extensions>
|
|
</idea-plugin>
|