mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PY-38312 Reuse Python plugin in PyCharm
GitOrigin-RevId: 614aecfde6c57cb8f2b99c01c7085c5ae33a1d5d
This commit is contained in:
committed by
intellij-monorepo-bot
parent
e641415930
commit
92f5adff73
Generated
+3
-2
@@ -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>
|
||||
|
||||
+1
-10
@@ -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>
|
||||
+20
-11
@@ -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,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
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
+14
-14
@@ -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";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+6
-13
@@ -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"/>
|
||||
+3
-3
@@ -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"));
|
||||
}
|
||||
}
|
||||
+4
@@ -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
-3
@@ -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" />
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user