mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-06 03:21:12 +07:00
This package (aka PyV3) fixes several issues, including 1. Lots of `DirectoryProjectGenerator` misuses: We now create UI and settings with `ProjectGeneratorPeer`: no more manuals casts in callback 2. Decouples project generation from UI: Settings aren't aware of UI but generate a project instead. Settings are mapped to the UI using Kotlin DSL UI 3. Kotlin DSL UI panel enables validation 4. `PySdkCreator` (an interface implemented by all "v2" SDK panels) now accepts `Module`, so we can provide it Poetry The whole machinery of `PythonGenerateProjectCallback` (a pack of manual casts only mother could love) is completely deprecated and will be removed soon. Lots of small changes towards `suspend` functions, Kotlin DSL UI and `Flow` decrease the technical debt. Merge-request: IJ-MR-144503 Merged-by: Ilya Kazakevich <ilya.kazakevich@jetbrains.com> GitOrigin-RevId: 21963e843b0ae67c71a6fc5ea1229cb0f57915a9
114 lines
7.5 KiB
XML
114 lines
7.5 KiB
XML
<idea-plugin package="com.intellij.pycharm.community.ide.impl">
|
|
<!--Customization code for both Community and Pro PyCharms-->
|
|
<dependencies>
|
|
<plugin id="PythonCore"/>
|
|
<module name="intellij.platform.whatsNew" />
|
|
</dependencies>
|
|
|
|
<projectListeners>
|
|
<listener class="com.intellij.pycharm.community.ide.impl.PyModuleListener" topic="com.intellij.openapi.project.ModuleListener"/>
|
|
<listener class="com.intellij.pycharm.community.ide.impl.PySdkFromEnvironmentVariableConfigurator"
|
|
topic="com.intellij.workspaceModel.ide.JpsProjectLoadedListener"/>
|
|
</projectListeners>
|
|
|
|
<extensions defaultExtensionNs="com.intellij">
|
|
<applicationInitializedListener implementation="com.intellij.pycharm.community.ide.impl.PyCharmCorePluginConfigurator"/>
|
|
<applicationService serviceInterface="com.intellij.lang.IdeLanguageCustomization"
|
|
serviceImplementation="com.intellij.pycharm.community.ide.impl.PyCharmPythonIdeLanguageCustomization"
|
|
overrides="true"/>
|
|
|
|
<projectConfigurable groupId="project"
|
|
id="com.intellij.pycharm.community.ide.impl.configuration.PythonContentEntriesConfigurable"
|
|
bundle="messages.PyBundle"
|
|
key="configurable.PythonContentEntriesConfigurable.display.name"
|
|
provider="com.intellij.pycharm.community.ide.impl.configuration.PythonContentEntriesConfigurableProvider"/>
|
|
<projectConfigurable groupId="project"
|
|
id="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable"
|
|
bundle="messages.PyBundle"
|
|
key="configurable.PyActiveSdkModuleConfigurable.python.interpreter.display.name"
|
|
instance="com.intellij.pycharm.community.ide.impl.PyCharmPyActiveSdkModuleConfigurable"
|
|
groupWeight="5"/> <!-- id is used in InterpreterSettingsQuickFix.showPythonInterpreterSettings -->
|
|
<projectConfigurable groupId="project"
|
|
id="com.intellij.pycharm.community.ide.impl.configuration.PyDependenciesConfigurable"
|
|
bundle="messages.PyBundle"
|
|
key="configurable.PyDependenciesConfigurable.display.name"
|
|
provider="com.intellij.pycharm.community.ide.impl.configuration.PyDependenciesConfigurableProvider"/>
|
|
|
|
<statusBarWidgetFactory id="pythonInterpreterWidget"
|
|
implementation="com.intellij.pycharm.community.ide.impl.configuration.PySdkStatusBarWidgetFactory"
|
|
order="after CodeStyleStatusBarWidget, before git, before hg, before Notifications"/>
|
|
|
|
<directoryProjectConfigurator implementation="com.intellij.pycharm.community.ide.impl.PythonSdkConfigurator" id="sdk"
|
|
order="after PlatformProjectConfigurator"/>
|
|
<directoryProjectConfigurator implementation="com.intellij.pycharm.community.ide.impl.PythonSourceRootConfigurator" id="sourceRoot"
|
|
order="after sdk"/>
|
|
<directoryProjectConfigurator implementation="com.intellij.pycharm.community.ide.impl.PlatformInspectionProfileConfigurator"/>
|
|
<directoryProjectConfigurator implementation="com.intellij.pycharm.community.ide.impl.newProject.welcome.PyWelcomeConfigurator"
|
|
id="welcome" order="last"/>
|
|
|
|
<applicationService serviceInterface="com.intellij.openapi.module.ModuleTypeManager"
|
|
serviceImplementation="com.intellij.pycharm.community.ide.impl.PythonModuleTypeManager"
|
|
overrides="true"/>
|
|
|
|
<fileStructureGroupRuleProvider implementation="com.intellij.usages.impl.rules.FileGroupingRuleProvider" order="first"/>
|
|
<fileStructureGroupRuleProvider implementation="com.intellij.pycharm.community.ide.impl.PyClassGroupingRuleProvider"
|
|
order="before py-function"/>
|
|
<diffPreviewProvider implementation="com.intellij.pycharm.community.ide.impl.configuration.PyDiffPreviewProvider"/>
|
|
|
|
<optionsApplicabilityFilter implementation="com.intellij.pycharm.community.ide.impl.PyOptionsApplicabilityFilter"/>
|
|
|
|
<applicationService serviceInterface="com.jetbrains.python.run.PyCommonOptionsFormFactory"
|
|
serviceImplementation="com.intellij.pycharm.community.ide.impl.PyIdeCommonOptionsFormFactory"/>
|
|
|
|
<applicationService serviceInterface="com.jetbrains.python.run.PyCommonFragmentsBuilder"
|
|
serviceImplementation="com.intellij.pycharm.community.ide.impl.PyIdeCommonFragmentsBuilder"/>
|
|
|
|
<applicationService serviceInterface="com.intellij.platform.whatsNew.WhatsNewInVisionContentProvider"
|
|
serviceImplementation="com.intellij.pycharm.community.ide.impl.whatsnew.PyCharmWhatsNewInVisionContentProvider"
|
|
overrides="true"/>
|
|
|
|
|
|
<directoryIndexExcludePolicy implementation="com.intellij.pycharm.community.ide.impl.PyDirectoryIndexExcludePolicy"/>
|
|
|
|
<applicationService serviceImplementation="com.intellij.pycharm.community.ide.impl.newProject.welcome.PyWelcomeSettings"/>
|
|
<statistics.counterUsagesCollector implementationClass="com.intellij.pycharm.community.ide.impl.newProject.welcome.PyWelcomeCollector"/>
|
|
<notificationGroup id="PyCharm Professional Advertiser" displayType="STICKY_BALLOON" isLogByDefault="false"
|
|
bundle="messages.PyCharmCommunityCustomizationBundle" key="notification.group.pro.advertiser"/>
|
|
|
|
<ignoredFileProvider implementation="com.intellij.pycharm.community.ide.impl.configuration.PyTemporarilyIgnoredFileProvider"/>
|
|
|
|
<statistics.counterUsagesCollector
|
|
implementationClass="com.intellij.pycharm.community.ide.impl.configuration.PySdkConfigurationCollector"/>
|
|
<defaultToolWindowLayout implementation="com.intellij.pycharm.community.ide.impl.PyToolWindowLayoutProvider" order="last"/>
|
|
|
|
<codeInsight.codeVision.settings.defaults implementation="com.intellij.pycharm.community.ide.impl.PyCharmCodeVisionSettingsDefaults"/>
|
|
</extensions>
|
|
|
|
<extensions defaultExtensionNs="Pythonid">
|
|
<projectSdkConfigurationExtension
|
|
implementation="com.intellij.pycharm.community.ide.impl.configuration.PyRequirementsTxtOrSetupPySdkConfiguration"
|
|
id="requirementsTxtOrSetupPy"/>
|
|
<projectSdkConfigurationExtension
|
|
implementation="com.intellij.pycharm.community.ide.impl.configuration.PyEnvironmentYmlSdkConfiguration"
|
|
id="environmentYml"/>
|
|
<projectSdkConfigurationExtension implementation="com.intellij.pycharm.community.ide.impl.configuration.PyPipfileSdkConfiguration"
|
|
id="pipfile" order="before requirementsTxtOrSetupPy"/>
|
|
<projectSdkConfigurationExtension implementation="com.intellij.pycharm.community.ide.impl.configuration.PyPoetrySdkConfiguration"/>
|
|
</extensions>
|
|
|
|
<actions resource-bundle="messages.ActionsBundle">
|
|
<action id="PySwitchSdkAction" class="com.intellij.pycharm.community.ide.impl.configuration.PySwitchSdkAction"/>
|
|
<action id="NewDirectoryProject" class="com.intellij.pycharm.community.ide.impl.newProject.PyCharmNewProjectAction">
|
|
<add-to-group group-id="NewProjectOrModuleGroup"/>
|
|
</action>
|
|
|
|
<group id="WelcomeScreen.Platform.NewProject">
|
|
<group id="WelcomeScreen.CreateDirectoryProject"
|
|
class="com.intellij.pycharm.community.ide.impl.newProject.impl.PyV3NewProjectStepAction"/>
|
|
<reference ref="WelcomeScreen.OpenDirectoryProject"/>
|
|
|
|
<add-to-group group-id="WelcomeScreen.QuickStart" anchor="first"/>
|
|
</group>
|
|
</actions>
|
|
</idea-plugin>
|