blob: 4d30fa29a3b3d281878c3db05eeac8554bcab601 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
package com.jetbrains.python.edu;
import com.intellij.execution.Location;
import com.intellij.execution.RunManagerEx;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.actions.ConfigurationContext;
import com.intellij.execution.executors.DefaultRunExecutor;
import com.intellij.execution.runners.ExecutionUtil;
import com.intellij.icons.AllIcons;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.Presentation;
import com.jetbrains.python.PythonFileType;
import org.jetbrains.annotations.NotNull;
/**
* @author traff
*/
public class PyRunCurrentFileAction extends AnAction {
public PyRunCurrentFileAction() {
getTemplatePresentation().setIcon(AllIcons.Actions.Execute);
}
@Override
public void update(AnActionEvent e) {
Presentation presentation = e.getPresentation();
final ConfigurationContext context = ConfigurationContext.getFromContext(e.getDataContext());
Location location = context.getLocation();
if (location != null && location.getPsiElement().getContainingFile() != null && location.getPsiElement().getContainingFile().getFileType() == PythonFileType.INSTANCE) {
presentation.setEnabled(true);
presentation.setText("Run '" + location.getPsiElement().getContainingFile().getName() + "'");
}
}
@Override
public void actionPerformed(AnActionEvent e) {
final ConfigurationContext context = ConfigurationContext.getFromContext(e.getDataContext());
run(context);
}
public static void run(@NotNull ConfigurationContext context) {
RunnerAndConfigurationSettings configuration = context.findExisting();
final RunManagerEx runManager = (RunManagerEx)context.getRunManager();
if (configuration == null) {
configuration = context.getConfiguration();
if (configuration == null) {
return;
}
runManager.setTemporaryConfiguration(configuration);
}
runManager.setSelectedConfiguration(configuration);
ExecutionUtil.runConfiguration(configuration, DefaultRunExecutor.getRunExecutorInstance());
}
}
|