mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge remote-tracking branch 'origin/master' into meanmail/EDU-839
Conflicts: python/educational-core/src/com/jetbrains/edu/learning/EduPluginConfigurator.java python/educational-python/Edu-Python/src/com/jetbrains/edu/learning/PyEduPluginConfigurator.java
This commit is contained in:
@@ -45,8 +45,7 @@
|
||||
<action id="StudyWatchTutorial" class="com.jetbrains.edu.learning.actions.PyStudyWatchTutorialAction">
|
||||
<add-to-group group-id="HelpMenu" anchor="before" relative-to-action="HelpTopics"/>
|
||||
</action>
|
||||
<action class="com.jetbrains.edu.learning.PyStudyCheckAction" id="PyCheckAction"
|
||||
/>
|
||||
<action class="com.jetbrains.edu.learning.PyStudyCheckAction" id="PyCheckAction"/>
|
||||
<!--course creator-->
|
||||
<action class="com.jetbrains.edu.coursecreator.PyCCCreateProjectFromArchive" id="PyCC.NewEdu">
|
||||
<add-to-group group-id="CCFileGroup" anchor="last"/>
|
||||
|
||||
+2
-1
@@ -58,7 +58,8 @@ public class PyCCProjectGenerator extends PythonProjectGenerator<PyNewProjectSet
|
||||
@Nullable final PyProjectSynchronizer synchronizer) {
|
||||
final Course course = getCourse(project, mySettingsPanel);
|
||||
EduUsagesCollector.projectTypeCreated(CCUtils.COURSE_MODE);
|
||||
|
||||
final CCProjectComponent component = project.getComponent(CCProjectComponent.class);
|
||||
component.registerListener();
|
||||
final PsiDirectory projectDir = PsiManager.getInstance(project).findDirectory(baseDir);
|
||||
if (projectDir == null) return;
|
||||
new WriteCommandAction.Simple(project) {
|
||||
|
||||
+27
@@ -7,7 +7,10 @@ import com.intellij.ide.fileTemplates.FileTemplateUtil;
|
||||
import com.intellij.ide.util.DirectoryUtil;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleType;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.startup.StartupManager;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.io.FileUtilRt;
|
||||
@@ -22,6 +25,7 @@ import com.jetbrains.edu.learning.courseFormat.Course;
|
||||
import com.jetbrains.edu.learning.courseFormat.tasks.Task;
|
||||
import com.jetbrains.edu.learning.courseFormat.tasks.TaskWithSubtasks;
|
||||
import com.jetbrains.edu.learning.newproject.EduCourseProjectGenerator;
|
||||
import com.jetbrains.python.PythonModuleTypeBase;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -150,4 +154,27 @@ public class PyEduPluginConfigurator implements EduPluginConfigurator {
|
||||
public EduCourseProjectGenerator getEduCourseProjectGenerator() {
|
||||
return new PyStudyDirectoryProjectGenerator();
|
||||
}
|
||||
|
||||
public ModuleType getModuleType() {
|
||||
return PythonModuleTypeBase.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configureModule(@NotNull Module module) {
|
||||
final Project project = module.getProject();
|
||||
StartupManager.getInstance(project).runWhenProjectIsInitialized(() -> {
|
||||
final VirtualFile baseDir = project.getBaseDir();
|
||||
final String testHelper = EduNames.TEST_HELPER;
|
||||
if (baseDir.findChild(testHelper) != null) return;
|
||||
final FileTemplate template = FileTemplateManager.getInstance(project).getInternalTemplate("test_helper");
|
||||
final PsiDirectory projectDir = PsiManager.getInstance(project).findDirectory(baseDir);
|
||||
if (projectDir == null) return;
|
||||
try {
|
||||
FileTemplateUtil.createFromTemplate(template, testHelper, null, projectDir);
|
||||
}
|
||||
catch (Exception exception) {
|
||||
LOG.error("Can't copy test_helper.py " + exception.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -3,6 +3,7 @@ package com.jetbrains.edu.learning;
|
||||
import com.intellij.codeInsight.CodeInsightSettings;
|
||||
import com.intellij.ide.util.PropertiesComponent;
|
||||
import com.intellij.openapi.application.PathManager;
|
||||
import com.intellij.openapi.components.ApplicationComponent;
|
||||
import com.intellij.openapi.fileTypes.FileTypeManager;
|
||||
import com.intellij.openapi.project.ex.ProjectManagerEx;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
@@ -12,7 +13,7 @@ import org.jetbrains.annotations.NonNls;
|
||||
import java.io.File;
|
||||
|
||||
@SuppressWarnings({"UtilityClassWithoutPrivateConstructor", "UtilityClassWithPublicConstructor"})
|
||||
public class PyStudyInitialConfigurator {
|
||||
public class PyStudyInitialConfigurator implements ApplicationComponent {
|
||||
@NonNls private static final String CONFIGURED_V40 = "StudyPyCharm.InitialConfiguration40";
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user