mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
merge Edu-Intellij plugin into student plugin
This commit is contained in:
Generated
+1
-1
@@ -56,7 +56,6 @@
|
||||
<module fileurl="file://$PROJECT_DIR$/platform/core-api/core-api.iml" filepath="$PROJECT_DIR$/platform/core-api/core-api.iml" group="platform" />
|
||||
<module fileurl="file://$PROJECT_DIR$/platform/core-impl/core-impl.iml" filepath="$PROJECT_DIR$/platform/core-impl/core-impl.iml" group="platform" />
|
||||
<module fileurl="file://$PROJECT_DIR$/python/educational-core/course-creator/course-creator.iml" filepath="$PROJECT_DIR$/python/educational-core/course-creator/course-creator.iml" group="python/educational/educational-core" />
|
||||
<module fileurl="file://$PROJECT_DIR$/python/educational-python/course-creator-python/course-creator-python.iml" filepath="$PROJECT_DIR$/python/educational-python/course-creator-python/course-creator-python.iml" group="python/educational/educational-python" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/coverage/coverage.iml" filepath="$PROJECT_DIR$/plugins/coverage/coverage.iml" group="plugins/coverage" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/coverage-common/coverage-common.iml" filepath="$PROJECT_DIR$/plugins/coverage-common/coverage-common.iml" group="plugins/coverage" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/coverage/coverage_rt/coverage_rt.iml" filepath="$PROJECT_DIR$/plugins/coverage/coverage_rt/coverage_rt.iml" group="plugins/coverage" />
|
||||
@@ -257,6 +256,7 @@
|
||||
<module fileurl="file://$PROJECT_DIR$/platform/structure-view-impl/structure-view-impl.iml" filepath="$PROJECT_DIR$/platform/structure-view-impl/structure-view-impl.iml" group="platform" />
|
||||
<module fileurl="file://$PROJECT_DIR$/python/educational-core/student/student.iml" filepath="$PROJECT_DIR$/python/educational-core/student/student.iml" group="python/educational/educational-core" />
|
||||
<module fileurl="file://$PROJECT_DIR$/python/educational-python/student-python/student-python.iml" filepath="$PROJECT_DIR$/python/educational-python/student-python/student-python.iml" group="python/educational/educational-python" />
|
||||
<module fileurl="file://$PROJECT_DIR$/python/educational-core/edu-intellij/edu-intellij.iml" filepath="$PROJECT_DIR$/python/educational-core/edu-intellij/edu-intellij.iml" group="plugins/python/educational/educational-core" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/svn4idea/svn4idea.iml" filepath="$PROJECT_DIR$/plugins/svn4idea/svn4idea.iml" group="plugins/VCS" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/svn4idea/svn4idea-tests.iml" filepath="$PROJECT_DIR$/plugins/svn4idea/svn4idea-tests.iml" group="plugins/VCS" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/tasks/tasks-api/tasks-api.iml" filepath="$PROJECT_DIR$/plugins/tasks/tasks-api/tasks-api.iml" group="plugins/tasks" />
|
||||
|
||||
@@ -79,6 +79,7 @@ private static String getIdeaPath() {
|
||||
project(':student') {
|
||||
|
||||
dependencies {
|
||||
compile project(':edu-intellij')
|
||||
compile fileTree(dir: 'lib', include: ['*.jar'])
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?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$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="module" module-name="platform-impl" />
|
||||
<orderEntry type="module" module-name="lang-api" />
|
||||
<orderEntry type="module" module-name="idea-ui" />
|
||||
</component>
|
||||
</module>
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import org.junit.runner.Description;
|
||||
import org.junit.runner.JUnitCore;
|
||||
import org.junit.runner.notification.Failure;
|
||||
import org.junit.runner.notification.RunListener;
|
||||
|
||||
public class EduTestRunner {
|
||||
public static void main(String[] args) throws ClassNotFoundException {
|
||||
Class<?> testClass = EduTestRunner.class.getClassLoader().loadClass(args[0]);
|
||||
JUnitCore runner = new JUnitCore();
|
||||
runner.addListener(new RunListener() {
|
||||
@Override
|
||||
public void testFailure(Failure failure) throws Exception {
|
||||
System.out.println("#educational_plugin FAILED + " + failure.getMessage());
|
||||
}
|
||||
});
|
||||
runner.run(testClass);
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package com.jetbrains.edu.intellij;
|
||||
|
||||
import com.intellij.lang.LanguageExtension;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@SuppressWarnings("unused") //used in other educational plugins that are stored in separate repository
|
||||
public interface EduCourseConfigurator {
|
||||
String EP_NAME = "com.jetbrains.edu.intellij.courseConfigurator";
|
||||
LanguageExtension<EduCourseConfigurator> INSTANCE = new LanguageExtension<>(EP_NAME);
|
||||
|
||||
default void configureModule(@NotNull final Project project) {}
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
package com.jetbrains.edu.intellij;
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.platform.ProjectTemplate;
|
||||
|
||||
public interface EduIntelliJProjectTemplate extends ProjectTemplate {
|
||||
ExtensionPointName<EduIntelliJProjectTemplate> EP_NAME =
|
||||
ExtensionPointName.create("Edu.eduIntelliJProjectTemplate");
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
package com.jetbrains.edu.intellij;
|
||||
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.ide.util.projectWizard.WizardContext;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.platform.ProjectTemplate;
|
||||
import com.intellij.platform.ProjectTemplatesFactory;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
@SuppressWarnings("unused") //used in other educational plugins that are stored in separate repository
|
||||
public class EduIntelliJTemplateFactory extends ProjectTemplatesFactory {
|
||||
private static final String GROUP_NAME = "Education";
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String[] getGroups() {
|
||||
return new String[]{GROUP_NAME};
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ProjectTemplate[] createTemplates(@Nullable String group, WizardContext context) {
|
||||
return ApplicationManager.getApplication().getExtensions(EduIntelliJProjectTemplate.EP_NAME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Icon getGroupIcon(String group) {
|
||||
return AllIcons.Modules.Types.UserDefined;
|
||||
}
|
||||
}
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
package com.jetbrains.edu.intellij.android;
|
||||
|
||||
import com.intellij.ide.projectWizard.ProjectSettingsStep;
|
||||
import com.intellij.ide.projectWizard.ProjectTemplateList;
|
||||
import com.intellij.ide.util.newProjectWizard.AbstractProjectWizard;
|
||||
import com.intellij.ide.util.newProjectWizard.StepSequence;
|
||||
import com.intellij.ide.util.projectWizard.ModuleWizardStep;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
|
||||
import com.intellij.platform.ProjectTemplate;
|
||||
import com.jetbrains.edu.intellij.EduIntelliJProjectTemplate;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
class EduSelectCourseProjectWizard extends AbstractProjectWizard {
|
||||
|
||||
private StepSequence mySequence = new StepSequence();
|
||||
|
||||
EduSelectCourseProjectWizard() {
|
||||
super("New Course", null, (String)null);
|
||||
init();
|
||||
}
|
||||
|
||||
protected void init() {
|
||||
myWizardContext.setModulesProvider(ModulesProvider.EMPTY_MODULES_PROVIDER);
|
||||
MyChooseCourseStep step = new MyChooseCourseStep();
|
||||
mySequence.addCommonStep(step);
|
||||
mySequence.addCommonFinishingStep(new ProjectSettingsStep(myWizardContext), null);
|
||||
mySequence.getAllSteps().forEach(this::addStep);
|
||||
super.init();
|
||||
}
|
||||
|
||||
@Override
|
||||
public StepSequence getSequence() {
|
||||
return mySequence;
|
||||
}
|
||||
|
||||
private class MyChooseCourseStep extends ModuleWizardStep {
|
||||
private ProjectTemplateList myTemplateList = new ProjectTemplateList();
|
||||
|
||||
@Override
|
||||
public JComponent getComponent() {
|
||||
return myTemplateList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateDataModel() {
|
||||
myWizardContext.setProjectTemplate(myTemplateList.getSelectedTemplate());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStep() {
|
||||
List<ProjectTemplate> templates = new ArrayList<>();
|
||||
Collections.addAll(templates, ApplicationManager.getApplication().getExtensions(EduIntelliJProjectTemplate.EP_NAME));
|
||||
myTemplateList.setTemplates(templates, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package com.jetbrains.edu.intellij.android;
|
||||
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.ide.impl.NewProjectUtil;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.jetbrains.edu.intellij.EduIntelliJProjectTemplate;
|
||||
|
||||
public class EduStartLearningAction extends AnAction {
|
||||
|
||||
public EduStartLearningAction() {
|
||||
super(AllIcons.Modules.Types.UserDefined);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(AnActionEvent e) {
|
||||
EduSelectCourseProjectWizard wizard = new EduSelectCourseProjectWizard();
|
||||
NewProjectUtil.createNewProject(AnAction.getEventProject(e), wizard);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(AnActionEvent e) {
|
||||
if (ApplicationManager.getApplication().getExtensions(EduIntelliJProjectTemplate.EP_NAME).length < 1) {
|
||||
e.getPresentation().setEnabledAndVisible(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
include 'student', 'course-creator'
|
||||
include 'student', 'course-creator', 'edu-intellij'
|
||||
@@ -0,0 +1,9 @@
|
||||
<idea-plugin>
|
||||
<actions>
|
||||
<action id="Edu.StartLearn" class="com.jetbrains.edu.intellij.android.EduStartLearningAction" text="Start Learning"
|
||||
description="Create New Educational Project">
|
||||
<add-to-group group-id="WelcomeScreen.QuickStart" anchor="last"/>
|
||||
<add-to-group group-id="FileMenu" anchor="last"/>
|
||||
</action>
|
||||
</actions>
|
||||
</idea-plugin>
|
||||
@@ -0,0 +1,6 @@
|
||||
<idea-plugin>
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<projectTemplatesFactory implementation="com.jetbrains.edu.intellij.EduIntelliJTemplateFactory"/>
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
on how to target different products -->
|
||||
|
||||
<depends>com.intellij.modules.lang</depends>
|
||||
<depends optional="true" config-file="android-dependencies.xml">com.intellij.modules.androidstudio</depends>
|
||||
<depends optional="true" config-file="edu-intellij.xml">com.intellij.modules.java</depends>
|
||||
|
||||
<project-components>
|
||||
<component>
|
||||
@@ -35,6 +37,10 @@
|
||||
</application-components>
|
||||
|
||||
<extensionPoints>
|
||||
<extensionPoint qualifiedName="Edu.eduIntelliJProjectTemplate" interface="com.jetbrains.edu.intellij.EduIntelliJProjectTemplate"/>
|
||||
<extensionPoint qualifiedName="Edu.courseConfigurator" beanClass="com.intellij.lang.LanguageExtensionPoint">
|
||||
<with attribute="implementationClass" implements="com.jetbrains.edu.intellij.EduCourseConfigurator"/>
|
||||
</extensionPoint>
|
||||
<extensionPoint qualifiedName="Edu.StudyExecutor" beanClass="com.intellij.lang.LanguageExtensionPoint">
|
||||
<with attribute="implementationClass" implements="com.jetbrains.edu.learning.checker.StudyExecutor"/>
|
||||
</extensionPoint>
|
||||
|
||||
Reference in New Issue
Block a user