[python] Separate new project wizard class since it is used in java plugin only

GitOrigin-RevId: c7a31b5b17b719d3361bde5dae0c73315e597042
This commit is contained in:
Ilya.Kazakevich
2024-01-16 14:09:19 +01:00
committed by intellij-monorepo-bot
parent 8a334cf9d2
commit 064aa436a2
24 changed files with 122 additions and 78 deletions

View File

@@ -5,24 +5,24 @@
<xi:include href="/META-INF/python-community-plugin-core.xml" xpointer="xpointer(/idea-plugin/*)"/>
<extensions defaultExtensionNs="com.intellij">
<newProjectWizard.languageGenerator implementation="com.jetbrains.python.newProject.PythonNewProjectWizard"/>
<moduleType id="PYTHON_MODULE" implementationClass="com.jetbrains.python.module.PythonModuleType"/>
<newProjectWizard.languageGenerator implementation="com.intellij.python.community.plugin.java.PythonNewProjectWizard"/>
<moduleType id="PYTHON_MODULE" implementationClass="com.intellij.python.community.plugin.java.facet.PythonModuleType"/>
<facetType implementation="com.intellij.python.community.plugin.java.facet.JavaPythonFacetType"/>
<frameworkSupport implementation="com.intellij.python.community.plugin.java.facet.PythonFrameworkSupportProvider"/>
<projectStructureDetector implementation="com.jetbrains.python.module.PyProjectStructureDetector"/>
<moduleConfigurationEditorProvider implementation="com.jetbrains.python.module.PythonModuleConfigurationEditorProvider"/>
<completion.contributor language="Python" implementationClass="com.jetbrains.python.psi.impl.PyConstructorArgumentCompletionContributor"/>
<projectStructureDetector implementation="com.intellij.python.community.plugin.java.facet.PyProjectStructureDetector"/>
<moduleConfigurationEditorProvider implementation="com.intellij.python.community.plugin.java.facet.PythonModuleConfigurationEditorProvider"/>
<completion.contributor language="Python" implementationClass="com.intellij.python.community.plugin.java.psi.impl.PyConstructorArgumentCompletionContributor"/>
<!-- Console folding for Jython only, thus it's located in intellij.python.plugin only -->
<stacktrace.fold substring="*sys-package-mgr*:"/>
<sdkEditorAdditionalOptionsProvider implementation="com.jetbrains.python.PythonSdkEditorAdditionalOptionsProvider"/>
<sdkEditorAdditionalOptionsProvider implementation="com.intellij.python.community.plugin.java.PythonSdkEditorAdditionalOptionsProvider"/>
<commandLineInspectionProjectConfigurator implementation="com.jetbrains.python.inspections.PythonPluginCommandLineInspectionProjectConfigurator"/>
<commandLineInspectionProjectConfigurator implementation="com.intellij.python.community.plugin.java.inspections.PythonPluginCommandLineInspectionProjectConfigurator"/>
</extensions>
<extensions defaultExtensionNs="Pythonid">
<importResolver implementation="com.jetbrains.python.psi.impl.PyJavaImportResolver"/>
<typeProvider implementation="com.jetbrains.python.psi.impl.PyJavaTypeProvider"/>
<pySuperMethodsSearch implementation="com.jetbrains.python.psi.impl.PyJavaSuperMethodsSearchExecutor"/>
<importCandidateProvider implementation="com.jetbrains.python.psi.impl.PyJavaImportCandidateProvider"/>
<importResolver implementation="com.intellij.python.community.plugin.java.psi.impl.PyJavaImportResolver"/>
<typeProvider implementation="com.intellij.python.community.plugin.java.psi.impl.PyJavaTypeProvider"/>
<pySuperMethodsSearch implementation="com.intellij.python.community.plugin.java.psi.impl.PyJavaSuperMethodsSearchExecutor"/>
<importCandidateProvider implementation="com.intellij.python.community.plugin.java.psi.impl.PyJavaImportCandidateProvider"/>
</extensions>
</idea-plugin>

View File

@@ -0,0 +1,25 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.python.community.plugin.java
import com.intellij.ide.projectWizard.NewProjectWizardConstants
import com.intellij.ide.wizard.NewProjectWizardStep
import com.intellij.ide.wizard.language.LanguageGeneratorNewProjectWizard
import com.jetbrains.python.newProject.NewPythonProjectStep
import com.jetbrains.python.psi.icons.PythonPsiApiIcons
/**
* A wizard for creating new pure-Python projects in IntelliJ.
*
* It suggests creating a new Python virtual environment for your new project to follow Python best practices.
*/
internal class PythonNewProjectWizard : LanguageGeneratorNewProjectWizard {
override val name = NewProjectWizardConstants.Language.PYTHON
override val icon = PythonPsiApiIcons.Python
override val ordinal = 600
override fun createStep(parent: NewProjectWizardStep): NewProjectWizardStep = NewPythonProjectStep(parent)
}

View File

@@ -1,5 +1,5 @@
// Copyright 2000-2020 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;
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.python.community.plugin.java;
import com.intellij.openapi.SdkEditorAdditionalOptionsProvider;
import com.intellij.openapi.options.ConfigurationException;
@@ -9,6 +9,7 @@ import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.util.NlsContexts;
import com.intellij.ui.AncestorListenerAdapter;
import com.intellij.webcore.packaging.PackagesNotificationPanel;
import com.jetbrains.python.PySdkBundle;
import com.jetbrains.python.packaging.PyPackageManagers;
import com.jetbrains.python.packaging.PyPackagesNotificationPanel;
import com.jetbrains.python.packaging.ui.PyInstalledPackagesPanel;

View File

@@ -12,9 +12,11 @@ import com.intellij.openapi.util.text.StringUtil;
import com.jetbrains.python.facet.PythonFacetSettings;
import com.jetbrains.python.sdk.PythonSdkType;
import org.jdom.Element;
import org.jetbrains.annotations.ApiStatus;
class JavaPythonFacetConfiguration extends PythonFacetSettings implements FacetConfiguration {
@ApiStatus.Internal
public class JavaPythonFacetConfiguration extends PythonFacetSettings implements FacetConfiguration {
private static final String SDK_NAME = "sdkName";
@Override

View File

@@ -8,9 +8,9 @@ import com.intellij.openapi.module.ModuleType;
import com.intellij.openapi.projectRoots.ProjectJdkTable;
import com.intellij.openapi.projectRoots.Sdk;
import com.jetbrains.python.PyBundle;
import com.jetbrains.python.module.PythonModuleType;
import com.jetbrains.python.psi.icons.PythonPsiApiIcons;
import com.jetbrains.python.sdk.PythonSdkType;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -18,7 +18,7 @@ import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.util.List;
@ApiStatus.Internal
public final class JavaPythonFacetType extends FacetType<JavaPythonFacet, JavaPythonFacetConfiguration> {
@NonNls

View File

@@ -1,5 +1,5 @@
// Copyright 2000-2021 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.module;
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.python.community.plugin.java.facet;
import com.intellij.ide.util.importProject.ProjectDescriptor;
import com.intellij.ide.util.projectWizard.ModuleWizardStep;
@@ -22,7 +22,7 @@ import java.util.Collections;
import java.util.List;
public final class PyProjectStructureDetector extends ProjectStructureDetector {
final class PyProjectStructureDetector extends ProjectStructureDetector {
private static final Logger LOG = Logger.getInstance(PyProjectStructureDetector.class);
public static final @NlsSafe String PYTHON = "Python";

View File

@@ -17,7 +17,7 @@ import javax.swing.*;
import java.awt.*;
public class PythonFrameworkSupportConfigurable extends FrameworkSupportConfigurable {
class PythonFrameworkSupportConfigurable extends FrameworkSupportConfigurable {
private final JComponent myMainPanel;
private final PythonSdkComboBox mySdkComboBox;

View File

@@ -7,15 +7,14 @@ import com.intellij.ide.util.frameworkSupport.FrameworkSupportModel;
import com.intellij.ide.util.frameworkSupport.FrameworkSupportProvider;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleType;
import com.jetbrains.python.module.PythonModuleType;
import com.jetbrains.python.psi.icons.PythonPsiApiIcons;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
public final class PythonFrameworkSupportProvider extends FrameworkSupportProvider {
public PythonFrameworkSupportProvider() {
final class PythonFrameworkSupportProvider extends FrameworkSupportProvider {
PythonFrameworkSupportProvider() {
super("Python", JavaPythonFacetType.getInstance().getPresentableName());
}

View File

@@ -1,5 +1,5 @@
// Copyright 2000-2021 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.module;
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.python.community.plugin.java.facet;
import com.intellij.ide.util.projectWizard.ModuleWizardStep;
import com.intellij.ide.util.projectWizard.SdkSettingsStep;
@@ -7,6 +7,7 @@ import com.intellij.ide.util.projectWizard.SettingsStep;
import com.intellij.ide.util.projectWizard.SourcePathsBuilder;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.util.Pair;
import com.jetbrains.python.module.PythonModuleBuilderBase;
import com.jetbrains.python.sdk.PythonSdkType;
import org.jetbrains.annotations.NotNull;

View File

@@ -1,5 +1,5 @@
// Copyright 2000-2021 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.module;
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.python.community.plugin.java.facet;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleConfigurationEditor;
@@ -7,13 +7,14 @@ import com.intellij.openapi.module.ModuleType;
import com.intellij.openapi.roots.ui.configuration.DefaultModuleConfigurationEditorFactory;
import com.intellij.openapi.roots.ui.configuration.ModuleConfigurationEditorProvider;
import com.intellij.openapi.roots.ui.configuration.ModuleConfigurationState;
import com.jetbrains.python.module.PyContentEntriesEditor;
import org.jetbrains.jps.model.java.JavaSourceRootType;
import java.util.ArrayList;
import java.util.List;
public final class PythonModuleConfigurationEditorProvider implements ModuleConfigurationEditorProvider {
final class PythonModuleConfigurationEditorProvider implements ModuleConfigurationEditorProvider {
@Override
public ModuleConfigurationEditor[] createEditors(final ModuleConfigurationState state) {
final Module module = state.getCurrentRootModel().getModule();

View File

@@ -0,0 +1,15 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.python.community.plugin.java.facet;
import com.jetbrains.python.PythonModuleTypeBase;
import com.jetbrains.python.module.PythonModuleBuilderBase;
import org.jetbrains.annotations.NotNull;
final class PythonModuleType extends PythonModuleTypeBase<PythonModuleBuilderBase> {
@Override
@NotNull
public PythonModuleBuilder createModuleBuilder() {
return new PythonModuleBuilder();
}
}

View File

@@ -16,10 +16,10 @@ import java.awt.event.ActionListener;
import java.util.List;
public class PythonSdkComboBox extends ComboboxWithBrowseButton {
class PythonSdkComboBox extends ComboboxWithBrowseButton {
private Project myProject;
public PythonSdkComboBox() {
PythonSdkComboBox() {
getComboBox().setRenderer(new PySdkListCellRenderer());
addActionListener(new ActionListener() {
@Override

View File

@@ -1,5 +1,5 @@
// Copyright 2000-2020 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.inspections;
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.python.community.plugin.java.inspections;
import com.intellij.facet.FacetManager;
import com.intellij.ide.CommandLineInspectionProgressReporter;
@@ -13,6 +13,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.projectRoots.ProjectJdkTable;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.psi.search.FileTypeIndex;
import com.intellij.python.community.plugin.java.facet.JavaPythonFacetConfiguration;
import com.jetbrains.python.PyBundle;
import com.jetbrains.python.PythonFileType;
import com.intellij.python.community.plugin.java.facet.JavaPythonFacet;

View File

@@ -1,5 +1,5 @@
// Copyright 2000-2021 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.psi.impl;
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.python.community.plugin.java.psi.impl;
import com.intellij.codeInsight.completion.*;
import com.intellij.openapi.project.DumbAware;

View File

@@ -1,5 +1,5 @@
// Copyright 2000-2021 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.psi.impl;
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.python.community.plugin.java.psi.impl;
import com.intellij.psi.*;
import com.intellij.util.ProcessingContext;
@@ -7,6 +7,7 @@ import com.intellij.util.Processor;
import com.jetbrains.python.psi.AccessDirection;
import com.jetbrains.python.psi.PyCallSiteExpression;
import com.jetbrains.python.psi.PyExpression;
import com.jetbrains.python.psi.impl.ResolveResultList;
import com.jetbrains.python.psi.resolve.CompletionVariantsProcessor;
import com.jetbrains.python.psi.resolve.PyResolveContext;
import com.jetbrains.python.psi.resolve.RatedResolveResult;

View File

@@ -1,5 +1,5 @@
// Copyright 2000-2021 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.psi.impl;
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.python.community.plugin.java.psi.impl;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtilCore;

View File

@@ -1,5 +1,5 @@
// Copyright 2000-2021 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.psi.impl;
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.python.community.plugin.java.psi.impl;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtilCore;
@@ -11,6 +11,7 @@ import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiPackage;
import com.intellij.psi.util.QualifiedName;
import com.jetbrains.python.psi.impl.PyImportResolver;
import com.jetbrains.python.psi.resolve.PyQualifiedNameResolveContext;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

View File

@@ -1,5 +1,5 @@
// Copyright 2000-2021 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.psi.impl;
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.python.community.plugin.java.psi.impl;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement;

View File

@@ -1,5 +1,5 @@
// Copyright 2000-2021 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.psi.impl;
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.python.community.plugin.java.psi.impl;
import com.intellij.codeInsight.lookup.LookupElementBuilder;
import com.intellij.openapi.module.Module;
@@ -14,6 +14,7 @@ import com.intellij.util.ArrayUtil;
import com.intellij.util.ProcessingContext;
import com.jetbrains.python.psi.AccessDirection;
import com.jetbrains.python.psi.PyExpression;
import com.jetbrains.python.psi.impl.ResolveResultList;
import com.jetbrains.python.psi.resolve.PyResolveContext;
import com.jetbrains.python.psi.resolve.RatedResolveResult;
import com.jetbrains.python.psi.types.PyType;

View File

@@ -1,5 +1,5 @@
// Copyright 2000-2021 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.psi.impl;
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.python.community.plugin.java.psi.impl;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement;

View File

@@ -1,5 +1,5 @@
// Copyright 2000-2021 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.psi.impl;
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.python.community.plugin.java.psi.impl;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtilCore;
@@ -8,6 +8,7 @@ import com.intellij.psi.*;
import com.jetbrains.python.psi.PyFunction;
import com.jetbrains.python.psi.PyNamedParameter;
import com.jetbrains.python.psi.PyParameterList;
import com.jetbrains.python.psi.impl.ParamHelper;
import com.jetbrains.python.psi.search.PySuperMethodsSearch;
import com.jetbrains.python.psi.types.PyType;
import com.jetbrains.python.psi.types.PyTypeProviderBase;

View File

@@ -1,14 +0,0 @@
// Copyright 2000-2021 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.module;
import com.jetbrains.python.PythonModuleTypeBase;
import org.jetbrains.annotations.NotNull;
public final class PythonModuleType extends PythonModuleTypeBase<PythonModuleBuilderBase> {
@Override
@NotNull
public PythonModuleBuilder createModuleBuilder() {
return new PythonModuleBuilder();
}
}