PY-38312 Reuse Python plugin in PyCharm

GitOrigin-RevId: 614aecfde6c57cb8f2b99c01c7085c5ae33a1d5d
This commit is contained in:
Gregory.Shrago
2019-10-08 17:03:50 +00:00
committed by intellij-monorepo-bot
parent e641415930
commit 92f5adff73
27 changed files with 241 additions and 236 deletions
+3 -2
View File
@@ -643,10 +643,11 @@
<module fileurl="file://$PROJECT_DIR$/plugins/properties/intellij.properties.iml" filepath="$PROJECT_DIR$/plugins/properties/intellij.properties.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/properties/properties-psi-api/intellij.properties.psi.iml" filepath="$PROJECT_DIR$/plugins/properties/properties-psi-api/intellij.properties.psi.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/properties/properties-psi-impl/intellij.properties.psi.impl.iml" filepath="$PROJECT_DIR$/plugins/properties/properties-psi-impl/intellij.properties.psi.impl.iml" />
<module fileurl="file://$PROJECT_DIR$/python/ide/intellij.pycharm.community.iml" filepath="$PROJECT_DIR$/python/ide/intellij.pycharm.community.iml" />
<module fileurl="file://$PROJECT_DIR$/python/intellij.pycharm.community.iml" filepath="$PROJECT_DIR$/python/intellij.pycharm.community.iml" />
<module fileurl="file://$PROJECT_DIR$/python/build/intellij.pycharm.community.build.iml" filepath="$PROJECT_DIR$/python/build/intellij.pycharm.community.build.iml" />
<module fileurl="file://$PROJECT_DIR$/python/build/build-debug-binaries/intellij.pycharm.community.build.debugBinaries.iml" filepath="$PROJECT_DIR$/python/build/build-debug-binaries/intellij.pycharm.community.build.debugBinaries.iml" />
<module fileurl="file://$PROJECT_DIR$/python/build/dependencies/intellij.pycharm.community.build.dependencies.iml" filepath="$PROJECT_DIR$/python/build/dependencies/intellij.pycharm.community.build.dependencies.iml" />
<module fileurl="file://$PROJECT_DIR$/python/intellij.pycharm.community.customization.iml" filepath="$PROJECT_DIR$/python/intellij.pycharm.community.customization.iml" />
<module fileurl="file://$PROJECT_DIR$/python/intellij.pycharm.community.main.iml" filepath="$PROJECT_DIR$/python/intellij.pycharm.community.main.iml" />
<module fileurl="file://$PROJECT_DIR$/python/python-community-ide-resources/intellij.pycharm.community.resources.iml" filepath="$PROJECT_DIR$/python/python-community-ide-resources/intellij.pycharm.community.resources.iml" />
<module fileurl="file://$PROJECT_DIR$/python/openapi/intellij.python.community.iml" filepath="$PROJECT_DIR$/python/openapi/intellij.python.community.iml" />
@@ -732,4 +733,4 @@
<module fileurl="file://$PROJECT_DIR$/plugins/yaml/intellij.yaml.iml" filepath="$PROJECT_DIR$/plugins/yaml/intellij.yaml.iml" />
</modules>
</component>
</project>
</project>
@@ -20,4 +20,5 @@
<module value="com.intellij.modules.idea.community"/>
<module value="com.intellij.modules.java-capable"/>
<module value="com.intellij.modules.android-capable"/>
<module value="com.intellij.modules.python-core-capable"/>
</idea-plugin>
@@ -7,12 +7,6 @@ import org.jetbrains.intellij.build.impl.PluginLayout
* @author nik
*/
class PythonCommunityPluginModules {
static final List<String> PYCHARM_ONLY_PLUGIN_MODULES = [
"intellij.python.langInjection",
"intellij.python.copyright",
"intellij.python.terminal",
"intellij.python.reStructuredText",
]
static List<String> COMMUNITY_MODULES = ["intellij.python.community",
"intellij.python.community.plugin",
"intellij.python.community.plugin.java",
@@ -22,15 +16,12 @@ class PythonCommunityPluginModules {
"intellij.python.psi.impl",
"intellij.python.pydev",
"intellij.python.community.impl",
] + PYCHARM_ONLY_PLUGIN_MODULES
]
public static String PYTHON_COMMUNITY_PLUGIN_MODULE = "intellij.python.community.plugin.resources"
static PluginLayout pythonCommunityPluginLayout(@DelegatesTo(PluginLayout.PluginLayoutSpec) Closure body = {}) {
pythonPlugin(PYTHON_COMMUNITY_PLUGIN_MODULE, "python-ce", COMMUNITY_MODULES) {
withProjectLibrary("markdown4j") // Required for ipnb
PYCHARM_ONLY_PLUGIN_MODULES.each { module ->
excludeFromModule(module, "META-INF/plugin.xml")
}
body.delegate = delegate
body()
}
@@ -1,12 +0,0 @@
<idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude">
<name>Python IntelliLang</name>
<id>org.jetbrains.plugins.python-intelliLang</id>
<description>This plugin enables language injections</description>
<vendor>JetBrains</vendor>
<depends>com.intellij.modules.pycharm</depends>
<depends>org.intellij.intelliLang</depends>
<xi:include href="/META-INF/intellilang-python-support.xml" xpointer="xpointer(/idea-plugin/*)"/>
</idea-plugin>
@@ -17,29 +17,38 @@ package org.jetbrains.intellij.build.pycharm
import org.jetbrains.intellij.build.*
import static org.jetbrains.intellij.build.impl.PluginLayout.plugin
/**
* @author nik
*/
class PyCharmCommunityProperties extends PyCharmPropertiesBase {
PyCharmCommunityProperties(String communityHome) {
platformPrefix = "PyCharmCore"
applicationInfoModule = "intellij.pycharm.community.resources"
applicationInfoModule = "intellij.pycharm.community"
brandingResourcePaths = ["$communityHome/python/resources"]
productLayout.mainModules = ["intellij.pycharm.community.main"]
productLayout.productApiModules = ["intellij.xml.dom"]
productLayout.productImplementationModules = [
"intellij.xml.dom.impl",
"intellij.python.community.impl",
"intellij.pycharm.community.resources",
"intellij.pycharm.community",
"intellij.python.configure",
"intellij.python.community",
"intellij.python.psi",
"intellij.python.psi.impl",
"intellij.platform.main"
"intellij.platform.main",
"intellij.pycharm.community"
]
productLayout.bundledPluginModules =
["intellij.python.community.plugin.resources",
"intellij.pycharm.community.customization"
] + new File("$communityHome/python/build/plugin-list.txt").readLines()
productLayout.additionalPlatformJars.put(productLayout.mainJarName, "intellij.pycharm.community.resources")
productLayout.allNonTrivialPlugins = CommunityRepositoryModules.COMMUNITY_REPOSITORY_PLUGINS + [
plugin("intellij.pycharm.community.customization") {
directoryName = "pythonIDE"
mainJarName = "python-ide.jar"
withModule("intellij.python.configure", mainJarName)
}
]
productLayout.bundledPluginModules = new File("$communityHome/python/build/plugin-list.txt").readLines()
productLayout.mainModules = ["intellij.pycharm.community.main"]
}
@Override
@@ -30,7 +30,6 @@ abstract class PyCharmPropertiesBase extends ProductProperties {
baseFileName = "pycharm"
reassignAltClickToMultipleCarets = true
productLayout.mainJarName = "pycharm.jar"
productLayout.additionalPlatformJars.put("pycharm-pydev.jar", "intellij.python.pydev")
productLayout.additionalPlatformJars.putAll("testFramework.jar",
"intellij.platform.testFramework.core",
"intellij.platform.testFramework",
@@ -43,15 +42,11 @@ abstract class PyCharmPropertiesBase extends ProductProperties {
"intellij.platform.testFramework"
]
productLayout.buildAllCompatiblePlugins = true
productLayout.compatiblePluginsToIgnore = [
"intellij.python.community.plugin.resources"
]
}
@Override
void copyAdditionalFiles(BuildContext context, String targetDirectory) {
def tasks = BuildTasks.create(context)
tasks.zipSourcesOfModules(["intellij.python.pydev"], "$targetDirectory/lib/src/pycharm-pydev-src.zip")
tasks.zipSourcesOfModules(["intellij.python.community", "intellij.python.psi"], "$targetDirectory/lib/src/pycharm-openapi-src.zip")
context.ant.copy(todir: "$targetDirectory/helpers") {
-4
View File
@@ -4,10 +4,6 @@ intellij.editorconfig
intellij.markdown
intellij.platform.langInjection
intellij.properties
intellij.python.copyright
intellij.python.langInjection
intellij.python.reStructuredText
intellij.python.terminal
intellij.reStructuredText
intellij.settingsRepository
intellij.sh
+26
View File
@@ -0,0 +1,26 @@
<!-- Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -->
<idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude">
<name>PyCharm Community Customization</name>
<id>com.jetbrains.pycharm.community.customization</id>
<vendor>JetBrains</vendor>
<resource-bundle>messages.ActionsBundle</resource-bundle>
<depends>com.intellij.modules.pycharm.community</depends>
<depends>com.intellij.modules.python</depends>
<xi:include href="/META-INF/pycharm-community-customization.xml" xpointer="xpointer(/idea-plugin/*)"/>
<extensions defaultExtensionNs="com.intellij">
<projectService serviceInterface="com.intellij.psi.search.ProjectScopeBuilder"
serviceImplementation="com.jetbrains.python.psi.search.PyProjectScopeBuilder"
overrides="true"/>
</extensions>
<application-components>
<component>
<implementation-class>com.jetbrains.python.PyCharmCorePluginConfigurator</implementation-class>
<headless-implementation-class/>
</component>
</application-components>
</idea-plugin>
@@ -0,0 +1,65 @@
<!-- Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -->
<idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="/META-INF/python-community-configure-ide.xml" xpointer="xpointer(/idea-plugin/*)"/>
<project-components>
<component>
<implementation-class>com.jetbrains.python.PyModuleListener</implementation-class>
</component>
</project-components>
<project-components>
<component>
<implementation-class>com.jetbrains.python.console.PythonConsoleToolWindow</implementation-class>
</component>
</project-components>
<extensions defaultExtensionNs="com.intellij">
<projectConfigurable groupId="build"
id="com.jetbrains.python.buildout.BuildoutModulesConfigurable"
displayName="Buildout Support"
instance="com.jetbrains.python.buildout.BuildoutModulesConfigurable"/>
<directoryProjectConfigurator implementation="com.jetbrains.python.PythonSdkConfigurator" id="sdk"
order="after PlatformProjectConfigurator"/>
<directoryProjectConfigurator implementation="com.jetbrains.python.PythonSourceRootConfigurator" id="sourceRoot"
order="after sdk"/>
<directoryProjectConfigurator implementation="com.jetbrains.python.buildout.BuildoutFacetConfigurator" id="buildout"
order="after sourceRoot"/>
<directoryProjectConfigurator implementation="com.intellij.platform.PlatformInspectionProfileConfigurator"/>
<applicationService serviceInterface="com.intellij.openapi.module.ModuleTypeManager"
serviceImplementation="com.jetbrains.python.PythonModuleTypeManager"
overrides="true"/>
<fileStructureGroupRuleProvider implementation="com.intellij.usages.impl.rules.FileGroupingRuleProvider" order="first"/>
<fileStructureGroupRuleProvider implementation="com.jetbrains.python.findUsages.PyClassGroupingRuleProvider"
order="before py-function"/>
<diffPreviewProvider implementation="com.jetbrains.python.configuration.PyDiffPreviewProvider"/>
<optionsApplicabilityFilter implementation="com.jetbrains.python.PyOptionsApplicabilityFilter"/>
<!-- Console -->
<toolWindow id="Python Console" anchor="bottom" icon="PythonIcons.Python.PythonConsoleToolWindow" canCloseContents="true"
factoryClass="com.jetbrains.python.console.PythonConsoleToolWindowFactory" secondary="false"/>
<directoryIndexExcludePolicy implementation="com.jetbrains.python.PyDirectoryIndexExcludePolicy"/>
</extensions>
<actions>
<action id="NewDirectoryProject" class="com.jetbrains.python.newProject.PyCharmNewProjectAction">
<add-to-group group-id="NewProjectOrModuleGroup"/>
</action>
<group id="WelcomeScreen.Platform.NewProject">
<action id="WelcomeScreen.CreateDirectoryProject" class="com.jetbrains.python.newProject.steps.PyCharmNewProjectStep"
icon="AllIcons.Welcome.CreateNewProject"/>
<action id="WelcomeScreen.OpenDirectoryProject" class="com.intellij.ide.actions.OpenFileAction$OnWelcomeScreen"
icon="AllIcons.Actions.Menu_open"/>
<add-to-group group-id="WelcomeScreen.QuickStart" anchor="first"/>
</group>
</actions>
</idea-plugin>
-119
View File
@@ -1,119 +0,0 @@
<idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- Components and extensions declared in this file work ONLY in PyCharm, not in Python plugin.
Both Community and Professional editions. -->
<module value="com.intellij.modules.pycharm"/>
<xi:include href="/META-INF/IdeTipsAndTricks.xml" xpointer="xpointer(/idea-plugin/*)"/>
<xi:include href="/META-INF/PlatformLangXmlPlugin.xml" xpointer="xpointer(/idea-plugin/*)"/>
<xi:include href="/META-INF/RemoteServers.xml" xpointer="xpointer(/idea-plugin/*)"/>
<xi:include href="/META-INF/python-community-configure-ide.xml" xpointer="xpointer(/idea-plugin/*)"/>
<project-components>
<component>
<implementation-class>com.jetbrains.python.PyModuleListener</implementation-class>
</component>
</project-components>
<project-components>
<component>
<implementation-class>com.jetbrains.python.console.PythonConsoleToolWindow</implementation-class>
</component>
</project-components>
<extensions defaultExtensionNs="com.intellij">
<applicationInitializedListener implementation="com.intellij.internal.statistic.updater.StatisticsJobsScheduler"/>
<projectViewPane implementation="com.intellij.ide.projectView.impl.ProjectViewPane"/>
<projectAttachProcessor implementation="com.intellij.platform.ModuleAttachProcessor"/>
<projectConfigurable groupId="build"
id="com.jetbrains.python.buildout.BuildoutModulesConfigurable"
displayName="Buildout Support"
instance="com.jetbrains.python.buildout.BuildoutModulesConfigurable"/>
<directoryProjectConfigurator implementation="com.jetbrains.python.PythonSdkConfigurator" id="sdk"
order="after PlatformProjectConfigurator"/>
<directoryProjectConfigurator implementation="com.jetbrains.python.PythonSourceRootConfigurator" id="sourceRoot"
order="after sdk"/>
<directoryProjectConfigurator implementation="com.jetbrains.python.buildout.BuildoutFacetConfigurator" id="buildout"
order="after sourceRoot"/>
<directoryProjectConfigurator implementation="com.intellij.platform.PlatformInspectionProfileConfigurator"/>
<applicationService serviceInterface="com.intellij.openapi.module.ModuleTypeManager"
serviceImplementation="com.jetbrains.python.PythonModuleTypeManager"
overrides="true"/>
<fileStructureGroupRuleProvider implementation="com.intellij.usages.impl.rules.FileGroupingRuleProvider" order="first"/>
<fileStructureGroupRuleProvider implementation="com.jetbrains.python.findUsages.PyClassGroupingRuleProvider"
order="before py-function"/>
<diffPreviewProvider implementation="com.jetbrains.python.configuration.PyDiffPreviewProvider"/>
<applicationService serviceInterface="com.jetbrains.python.run.PyCommonOptionsFormFactory"
serviceImplementation="com.jetbrains.python.PyIdeCommonOptionsFormFactory"/>
<optionsApplicabilityFilter implementation="com.jetbrains.python.PyOptionsApplicabilityFilter"/>
<hectorComponentProvider implementation="com.intellij.codeInsight.daemon.impl.ImportPopupHectorComponentProvider"/>
<usageFilteringRuleProvider implementation="com.intellij.usages.impl.ImportUsageFilteringRuleProvider"/>
<applicationService serviceImplementation="com.intellij.usages.impl.ImportFilteringUsageViewSetting"/>
<bundledColorScheme path="/colorSchemes/monokai"/>
<bundledColorScheme path="/colorSchemes/twilight"/>
<bundledColorScheme path="/colorSchemes/WarmNeon"/>
<bundledColorScheme path="/colorSchemes/github"/>
<renameHandler implementation="com.intellij.platform.renameProject.RenameProjectHandler"/>
<renameHandler implementation="com.intellij.platform.renameProject.ProjectFolderRenameHandler"/>
<!-- Console -->
<toolWindow id="Python Console" anchor="bottom" icon="PythonIcons.Python.PythonConsoleToolWindow" canCloseContents="true"
factoryClass="com.jetbrains.python.console.PythonConsoleToolWindowFactory" secondary="false"/>
<directoryIndexExcludePolicy implementation="com.jetbrains.python.PyDirectoryIndexExcludePolicy"/>
</extensions>
<actions>
<action id="NewDirectoryProject" class="com.jetbrains.python.newProject.PyCharmNewProjectAction">
<add-to-group group-id="NewProjectOrModuleGroup"/>
</action>
<group id="PlatformOpenProjectGroup">
<reference ref="NewProjectOrModuleGroup"/>
<action id="NewElement" class="com.intellij.ide.actions.NewElementAction" />
<reference ref="NewScratchFile" />
<add-to-group group-id="FileOpenGroup" anchor="first"/>
</group>
<action id="SaveAs" class="com.intellij.ide.actions.SaveAsAction" text="Save As...">
<add-to-group group-id="FileOpenGroup" anchor="after" relative-to-action="OpenFile"/>
</action>
<action id="RerunFailedTests" class="com.intellij.execution.testframework.actions.RerunFailedTestsAction"
icon="AllIcons.RunConfigurations.RerunFailedTests"/>
<group id="WelcomeScreen.Platform.NewProject">
<action id="WelcomeScreen.CreateDirectoryProject" class="com.jetbrains.python.newProject.steps.PyCharmNewProjectStep"
icon="AllIcons.Welcome.CreateNewProject"/>
<action id="WelcomeScreen.OpenDirectoryProject" class="com.intellij.ide.actions.OpenFileAction$OnWelcomeScreen" icon="AllIcons.Actions.Menu_open"/>
<add-to-group group-id="WelcomeScreen.QuickStart" anchor="first"/>
</group>
<group>
<action id="MarkSourceRoot" class="com.intellij.ide.projectView.actions.MarkJavaSourceRootAction"/>
<action id="MarkExcludeRoot" class="com.intellij.ide.projectView.actions.MarkExcludeRootAction"/>
<action id="MarkAsContentRoot" class="com.intellij.ide.projectView.actions.MarkAsContentRootAction"/>
<action id="UnmarkRoot" class="com.intellij.ide.projectView.actions.UnmarkRootAction"/>
<add-to-group group-id="MarkRootGroup"/>
</group>
<action overrides="true" id="ForceStepInto" class="com.intellij.openapi.actionSystem.EmptyAction"/>
<action id="RenameProject" class="com.intellij.platform.renameProject.RenameProjectAction">
<add-to-group group-id="FileOpenGroup" anchor="after" relative-to-action="RenameFile"/>
</action>
</actions>
</idea-plugin>
@@ -7,13 +7,12 @@ import com.intellij.ide.AppLifecycleListener;
import com.intellij.ide.util.PropertiesComponent;
import com.intellij.openapi.actionSystem.ActionManager;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ModalityState;
import com.intellij.openapi.editor.ex.EditorSettingsExternalizable;
import com.intellij.openapi.fileTypes.FileTypeManager;
import com.intellij.openapi.options.Configurable;
import com.intellij.openapi.options.ConfigurableEP;
import com.intellij.psi.codeStyle.CodeStyleSettings;
import com.intellij.util.messages.MessageBus;
import com.jetbrains.python.codeInsight.PyCodeInsightSettings;
import org.jetbrains.annotations.NonNls;
/**
* Initialize PyCharm.
@@ -22,11 +21,11 @@ import org.jetbrains.annotations.NonNls;
* It does not work in plugin
* @author yole
*/
@SuppressWarnings({"UtilityClassWithoutPrivateConstructor", "UtilityClassWithPublicConstructor"})
public class PyCharmInitialConfigurator {
@NonNls private static final String DISPLAYED_PROPERTY = "PyCharm.initialConfigurationShown";
public final class PyCharmCorePluginConfigurator {
private static final String DISPLAYED_PROPERTY = "PyCharm.initialConfigurationShown";
public PyCharmInitialConfigurator(MessageBus bus, final PropertiesComponent propertiesComponent, final FileTypeManager fileTypeManager) {
PyCharmCorePluginConfigurator() {
PropertiesComponent propertiesComponent = PropertiesComponent.getInstance();
if (!propertiesComponent.getBoolean("PyCharm.InitialConfiguration")) {
propertiesComponent.setValue("PyCharm.InitialConfiguration", "true");
EditorSettingsExternalizable.getInstance().setVirtualSpace(false);
@@ -38,7 +37,7 @@ public class PyCharmInitialConfigurator {
}
if (!propertiesComponent.getBoolean("PyCharm.InitialConfiguration.V3")) {
propertiesComponent.setValue("PyCharm.InitialConfiguration.V3", "true");
final String ignoredFilesList = fileTypeManager.getIgnoredFilesList();
final String ignoredFilesList = FileTypeManager.getInstance().getIgnoredFilesList();
ApplicationManager.getApplication().invokeLater(() -> ApplicationManager.getApplication().runWriteAction(() -> FileTypeManager.getInstance().setIgnoredFilesList(ignoredFilesList + ";*$py.class")));
}
if (!propertiesComponent.getBoolean("PyCharm.InitialConfiguration.V4")) {
@@ -58,19 +57,20 @@ public class PyCharmInitialConfigurator {
propertiesComponent.setValue("PyCharm.InitialConfiguration.V7", true);
}
disableRunAnything();
ActionManager.getInstance().unregisterAction("RunAnything");
if (!propertiesComponent.isValueSet(DISPLAYED_PROPERTY)) {
bus.connect().subscribe(AppLifecycleListener.TOPIC, new AppLifecycleListener() {
ApplicationManager.getApplication().getMessageBus().connect().subscribe(AppLifecycleListener.TOPIC, new AppLifecycleListener() {
@Override
public void welcomeScreenDisplayed() {
ApplicationManager.getApplication().invokeLater(() -> propertiesComponent.setValue(DISPLAYED_PROPERTY, "true"));
}
});
}
}
public static void disableRunAnything() {
ApplicationManager.getApplication().invokeLater(() -> ActionManager.getInstance().unregisterAction("RunAnything"), ModalityState.any());
for (ConfigurableEP<Configurable> ep : Configurable.APPLICATION_CONFIGURABLE.getExtensionList()) {
if ("com.jetbrains.python.documentation.PythonDocumentationConfigurable".equals(ep.id)) {
ep.displayName = "External Documentation";
}
}
}
}
@@ -1,22 +1,15 @@
<!-- Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -->
<idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude">
<module value="com.intellij.modules.pycharm.community"/>
<module value="com.intellij.modules.python-core-capable"/>
<xi:include href="/META-INF/pycharm-core.xml" xpointer="xpointer(/idea-plugin/*)"/>
<xi:include href="/META-INF/python-core-ide.xml" xpointer="xpointer(/idea-plugin/*)"/>
<application-components>
<component>
<implementation-class>com.jetbrains.python.PyCharmInitialConfigurator</implementation-class>
<headless-implementation-class/>
</component>
<component>
<interface-class>com.jetbrains.python.console.PythonConsoleRunnerFactory</interface-class>
<implementation-class>com.jetbrains.python.console.PydevConsoleRunnerFactory</implementation-class>
</component>
</application-components>
<extensions defaultExtensionNs="com.intellij">
<applicationService serviceInterface="com.intellij.lang.IdeLanguageCustomization"
serviceImplementation="com.jetbrains.python.PyCharmLanguageCustomization"
overrides="true"/>
<applicationService serviceInterface="com.intellij.openapi.application.IdeUrlTrackingParametersProvider"
serviceImplementation="com.intellij.ide.customization.UtmIdeUrlTrackingParametersProvider"
overrides="true"/>
@@ -1,17 +1,17 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.jetbrains.python;
import com.intellij.lang.IdeLanguageCustomization;
import com.intellij.lang.Language;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import java.util.Collections;
import java.util.List;
public class PyCharmLanguageCustomization extends IdeLanguageCustomization {
@NotNull
@Override
public List<Language> getPrimaryIdeLanguages() {
return Collections.singletonList(PythonLanguage.getInstance());
return ContainerUtil.createMaybeSingletonList(Language.findLanguageByID("Python"));
}
}
@@ -1,3 +1,4 @@
<!-- Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -->
<component xmlns="http://jetbrains.org/intellij/schema/application-info"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jetbrains.org/intellij/schema/application-info http://jetbrains.org/intellij/schema/ApplicationInfo.xsd">
@@ -12,6 +13,9 @@
<package code="__PACKAGE_CODE__"/>
<names product="PyCharm" edition="Community Edition" script="pycharm" default-launcher-name="charm" motto="Python IDE for Professional Developers"/>
<essential-plugin>PythonCore</essential-plugin>
<essential-plugin>com.jetbrains.pycharm.community.customization</essential-plugin>
<welcome-screen logo-url="/PyCharmCoreWelcomeScreen.png"/>
<customize-ide-wizard provider="com.jetbrains.python.PyCharmCustomizeIDEWizardStepsProvider"/>
@@ -2,14 +2,13 @@
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<content url="file://$MODULE_DIR$/ide">
<sourceFolder url="file://$MODULE_DIR$/ide/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="intellij.platform.ide.impl" />
<orderEntry type="module" module-name="intellij.python.configure" />
<orderEntry type="module" module-name="intellij.pycharm.community.resources" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.python.community.impl" />
<orderEntry type="module" module-name="intellij.platform.lang" />
<orderEntry type="module" module-name="intellij.platform.lang.impl" />
+19
View File
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$/ideCoreSrc">
<sourceFolder url="file://$MODULE_DIR$/ideCoreSrc" isTestSource="false" />
</content>
<content url="file://$MODULE_DIR$/resources">
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="intellij.platform.ide.impl" />
<orderEntry type="module" module-name="intellij.platform.lang" />
<orderEntry type="module" module-name="intellij.platform.lang.impl" />
<orderEntry type="module" module-name="intellij.xml.dom.impl" scope="RUNTIME" />
<orderEntry type="library" name="Guava" level="project" />
</component>
</module>
@@ -16,11 +16,14 @@
<orderEntry type="module" module-name="intellij.python.helpers" />
<orderEntry type="module" module-name="intellij.terminal" />
<orderEntry type="module" module-name="intellij.pycharm.community" />
<orderEntry type="module" module-name="intellij.pycharm.community.customization" />
<orderEntry type="module" module-name="intellij.pycharm.community.resources" />
<orderEntry type="module" module-name="intellij.platform.main" />
<orderEntry type="module" module-name="intellij.tasks.jira" />
<orderEntry type="module" module-name="intellij.settingsRepository" />
<orderEntry type="module" module-name="intellij.python.terminal" />
<orderEntry type="module" module-name="intellij.python.copyright" />
<orderEntry type="module" module-name="intellij.python.community.plugin.main" />
<orderEntry type="module" module-name="intellij.properties" />
<orderEntry type="module" module-name="intellij.markdown" />
<orderEntry type="module" module-name="intellij.configurationScript" scope="RUNTIME" />
@@ -4,7 +4,6 @@
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" generated="true" />
</content>
<orderEntry type="inheritedJdk" />
@@ -14,11 +14,6 @@
</actions>
<application-components>
<component>
<interface-class>com.jetbrains.python.console.PythonConsoleRunnerFactory</interface-class>
<implementation-class>com.jetbrains.python.console.PydevConsoleRunnerFactory</implementation-class>
</component>
<component>
<implementation-class>com.jetbrains.python.facet.PythonSdkTableListener</implementation-class>
</component>
+11 -1
View File
@@ -15,16 +15,26 @@ The Python plug-in provides smart editing for Python scripts. The feature set of
]]></description>
<vendor url="https://www.jetbrains.com/pycharm/">JetBrains</vendor>
<depends>com.intellij.modules.python-core-capable</depends>
<xi:include href="/META-INF/python-core-plugin.xml" xpointer="xpointer(/idea-plugin/*)"/>
<xi:include href="/META-INF/python-community-plugin-core.xml" xpointer="xpointer(/idea-plugin/*)"/>
<depends optional="true" config-file="python-community-plugin-java.xml">com.intellij.modules.java</depends>
<depends optional="true" config-file="python-community-plugin-minor.xml">com.intellij.modules.clion</depends>
<depends optional="true" config-file="python-plugin-rider.xml">com.intellij.modules.rider</depends>
<depends optional="true" config-file="python-plugin-dbide.xml">com.intellij.modules.datagrip</depends>
<depends optional="true" config-file="python-plugin-datagrip.xml">com.intellij.modules.datagrip</depends>
<depends optional="true" config-file="python-plugin-goland.xml">com.intellij.modules.go</depends>
<depends optional="true" config-file="python-rest-plugin.xml">org.jetbrains.plugins.rest</depends>
<depends optional="true" config-file="python-copyright-plugin.xml">com.intellij.copyright</depends>
<depends optional="true" config-file="intellilang-python-support.xml">org.intellij.intelliLang</depends>
<depends optional="true" config-file="python-terminal-plugin.xml">org.jetbrains.plugins.terminal</depends>
<application-components>
<component>
<interface-class>com.jetbrains.python.console.PythonConsoleRunnerFactory</interface-class>
<implementation-class>com.jetbrains.python.console.PydevConsoleRunnerFactory</implementation-class>
</component>
</application-components>
</idea-plugin>
@@ -1,11 +0,0 @@
<idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude">
<name>Python Copyright</name>
<id>org.jetbrains.plugins.python-copyright</id>
<vendor>JetBrains</vendor>
<depends>com.intellij.modules.pycharm</depends>
<depends>com.intellij.copyright</depends>
<xi:include href="/META-INF/python-copyright-plugin.xml" xpointer="xpointer(/idea-plugin/*)"/>
</idea-plugin>
@@ -1,10 +0,0 @@
<idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude">
<name>Python ReStructureText Integration</name>
<id>org.jetbrains.plugins.python-rest</id>
<vendor>JetBrains</vendor>
<depends>com.intellij.modules.pycharm</depends>
<depends>org.jetbrains.plugins.rest</depends>
<xi:include href="/META-INF/python-rest-plugin.xml" xpointer="xpointer(/idea-plugin/*)"/>
</idea-plugin>
@@ -1,11 +0,0 @@
<idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude">
<name>Python Terminal</name>
<id>org.jetbrains.plugins.python-terminal</id>
<vendor>JetBrains</vendor>
<depends>com.intellij.modules.pycharm</depends>
<depends>org.jetbrains.plugins.terminal</depends>
<xi:include href="/META-INF/python-terminal-plugin.xml" xpointer="xpointer(/idea-plugin/*)"/>
</idea-plugin>
@@ -0,0 +1,61 @@
<!-- Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -->
<idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- Components and extensions declared in this file work ONLY in PyCharm, not in Python plugin.
Both Community and Professional editions. -->
<module value="com.intellij.modules.pycharm"/>
<xi:include href="/META-INF/IdeTipsAndTricks.xml" xpointer="xpointer(/idea-plugin/*)"/>
<xi:include href="/META-INF/PlatformLangXmlPlugin.xml" xpointer="xpointer(/idea-plugin/*)"/>
<xi:include href="/META-INF/RemoteServers.xml" xpointer="xpointer(/idea-plugin/*)"/>
<extensions defaultExtensionNs="com.intellij">
<applicationInitializedListener implementation="com.intellij.internal.statistic.updater.StatisticsJobsScheduler"/>
<projectViewPane implementation="com.intellij.ide.projectView.impl.ProjectViewPane"/>
<projectAttachProcessor implementation="com.intellij.platform.ModuleAttachProcessor"/>
<hectorComponentProvider implementation="com.intellij.codeInsight.daemon.impl.ImportPopupHectorComponentProvider"/>
<usageFilteringRuleProvider implementation="com.intellij.usages.impl.ImportUsageFilteringRuleProvider"/>
<applicationService serviceImplementation="com.intellij.usages.impl.ImportFilteringUsageViewSetting"/>
<bundledColorScheme path="/colorSchemes/monokai"/>
<bundledColorScheme path="/colorSchemes/twilight"/>
<bundledColorScheme path="/colorSchemes/WarmNeon"/>
<bundledColorScheme path="/colorSchemes/github"/>
<renameHandler implementation="com.intellij.platform.renameProject.RenameProjectHandler"/>
<renameHandler implementation="com.intellij.platform.renameProject.ProjectFolderRenameHandler"/>
</extensions>
<actions>
<group id="PlatformOpenProjectGroup">
<reference ref="NewProjectOrModuleGroup"/>
<action id="NewElement" class="com.intellij.ide.actions.NewElementAction" />
<reference ref="NewScratchFile" />
<add-to-group group-id="FileOpenGroup" anchor="first"/>
</group>
<action id="SaveAs" class="com.intellij.ide.actions.SaveAsAction" text="Save As...">
<add-to-group group-id="FileOpenGroup" anchor="after" relative-to-action="OpenFile"/>
</action>
<action id="RerunFailedTests" class="com.intellij.execution.testframework.actions.RerunFailedTestsAction"
icon="AllIcons.RunConfigurations.RerunFailedTests"/>
<group>
<action id="MarkSourceRoot" class="com.intellij.ide.projectView.actions.MarkJavaSourceRootAction"/>
<action id="MarkExcludeRoot" class="com.intellij.ide.projectView.actions.MarkExcludeRootAction"/>
<action id="MarkAsContentRoot" class="com.intellij.ide.projectView.actions.MarkAsContentRootAction"/>
<action id="UnmarkRoot" class="com.intellij.ide.projectView.actions.UnmarkRootAction"/>
<add-to-group group-id="MarkRootGroup"/>
</group>
<action overrides="true" id="ForceStepInto" class="com.intellij.openapi.actionSystem.EmptyAction"/>
<action id="RenameProject" class="com.intellij.platform.renameProject.RenameProjectAction">
<add-to-group group-id="FileOpenGroup" anchor="after" relative-to-action="RenameFile"/>
</action>
</actions>
</idea-plugin>
@@ -30,5 +30,6 @@
<orderEntry type="module" module-name="intellij.python.copyright" scope="TEST" />
<orderEntry type="module" module-name="intellij.platform.debugger.testFramework" scope="TEST" />
<orderEntry type="module" module-name="intellij.python.psi.impl" />
<orderEntry type="module" module-name="intellij.python.community.plugin.main" />
</component>
</module>
</module>