Merge remote-tracking branch 'origin/master'

This commit is contained in:
Roman Ivanov
2017-09-01 14:21:58 +07:00
6 changed files with 54 additions and 59 deletions
+13 -9
View File
@@ -5,20 +5,24 @@
import os
import signal
import sys
import syslog
import time
if len(sys.argv) < 3:
raise Exception('usage: restart.py <pid> <path> [optional command]')
signal.signal(signal.SIGHUP, signal.SIG_IGN)
try:
signal.signal(signal.SIGHUP, signal.SIG_IGN)
pid = int(sys.argv[1])
while os.getppid() == pid:
time.sleep(0.5)
pid = int(sys.argv[1])
while os.getppid() == pid:
time.sleep(0.5)
if len(sys.argv) > 3:
to_launch = sys.argv[3:]
os.spawnv(os.P_WAIT, to_launch[0], to_launch)
if len(sys.argv) > 3:
to_launch = sys.argv[3:]
os.spawnv(os.P_WAIT, to_launch[0], to_launch)
to_launch = ['/usr/bin/open', sys.argv[2]] if sys.platform == 'darwin' else [sys.argv[2]]
os.execv(to_launch[0], to_launch)
to_launch = ['/usr/bin/open', sys.argv[2]] if sys.platform == 'darwin' else [sys.argv[2]]
os.execv(to_launch[0], to_launch)
except:
syslog.syslog(syslog.LOG_ERR, str(sys.exc_info()))
@@ -23,17 +23,17 @@ import com.intellij.execution.filters.TextConsoleBuilderFactory;
import com.intellij.execution.process.ProcessHandler;
import com.intellij.execution.ui.ConsoleView;
import com.intellij.execution.ui.ConsoleViewContentType;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.actionSystem.DataProvider;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.colors.EditorColorsManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.ThreeComponentsSplitter;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.pom.Navigatable;
import com.intellij.ui.IdeBorderFactory;
import com.intellij.ui.ScrollPaneFactory;
import com.intellij.ui.SideBorder;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.ui.treeStructure.SimpleTreeBuilder;
import com.intellij.ui.treeStructure.SimpleTreeStructure;
@@ -52,6 +52,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import javax.swing.border.CompoundBorder;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.table.DefaultTableCellRenderer;
@@ -418,13 +419,25 @@ public class BuildTreeConsoleView implements ConsoleView, DataProvider, BuildCon
@Nullable
private ExecutionNode myExecutionNode;
private final ConsoleView myConsole;
private final JPanel myPanel;
public DetailsHandler(Project project,
TreeTableTree tree,
ThreeComponentsSplitter threeComponentsSplitter) {
myConsole = TextConsoleBuilderFactory.getInstance().createBuilder(project).getConsole();
mySplitter = threeComponentsSplitter;
myConsole.getComponent().setVisible(false);
myPanel = new JPanel(new BorderLayout());
JComponent consoleComponent = myConsole.getComponent();
AnAction[] consoleActions = myConsole.createConsoleActions();
consoleComponent.setFocusable(true);
final Color editorBackground = EditorColorsManager.getInstance().getGlobalScheme().getDefaultBackground();
consoleComponent.setBorder(new CompoundBorder(IdeBorderFactory.createBorder(SideBorder.RIGHT | SideBorder.TOP),
new SideBorder(editorBackground, SideBorder.LEFT)));
myPanel.add(consoleComponent, BorderLayout.CENTER);
final ActionToolbar toolbar = ActionManager.getInstance()
.createActionToolbar("BuildResults", new DefaultActionGroup(consoleActions), false);
myPanel.add(toolbar.getComponent(), BorderLayout.EAST);
myPanel.setVisible(false);
tree.addTreeSelectionListener(new TreeSelectionListener() {
@Override
public void valueChanged(TreeSelectionEvent e) {
@@ -467,7 +480,7 @@ public class BuildTreeConsoleView implements ConsoleView, DataProvider, BuildCon
int width = Math.round(mySplitter.getWidth() / 2f);
mySplitter.setFirstSize(width);
}
myConsole.getComponent().setVisible(true);
myPanel.setVisible(true);
return true;
}
@@ -522,15 +535,15 @@ public class BuildTreeConsoleView implements ConsoleView, DataProvider, BuildCon
}
myExecutionNode = null;
myConsole.getComponent().setVisible(false);
myPanel.setVisible(false);
}
public JComponent getComponent() {
return myConsole.getComponent();
return myPanel;
}
public void clear() {
myConsole.getComponent().setVisible(false);
myPanel.setVisible(false);
myConsole.clear();
}
}
@@ -20,31 +20,26 @@ import com.intellij.util.ProcessingContext;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.function.BiPredicate;
public class PsiClassNamePatternCondition extends PatternCondition<PsiClass> {
abstract public class PsiClassNamePatternCondition extends PatternCondition<PsiClass> {
private final ElementPattern<String> stringPattern;
public static PsiClassNamePatternCondition accepting(BiPredicate<String, ProcessingContext> condition) {
return new PsiClassNamePatternCondition() {
@Override
public boolean accepts(String qualifiedName, ProcessingContext context) {
return condition.test(qualifiedName, context);
}
};
public PsiClassNamePatternCondition(ElementPattern<String> pattern) {
this("withQualifiedName", pattern);
}
public PsiClassNamePatternCondition() {
this("withQualifiedName");
}
public PsiClassNamePatternCondition(@Nullable String debugMethodName) {
public PsiClassNamePatternCondition(@Nullable String debugMethodName, ElementPattern<String> pattern) {
super(debugMethodName);
stringPattern = pattern;
}
@Override
public final boolean accepts(@NotNull PsiClass aClass, ProcessingContext context) {
return accepts(aClass.getQualifiedName(), context);
public boolean accepts(@NotNull PsiClass aClass, ProcessingContext context) {
return stringPattern.accepts(aClass.getQualifiedName(), context);
}
public abstract boolean accepts(String qualifiedName, ProcessingContext context);
@SuppressWarnings("unused") //Used in Kotlin
public ElementPattern<String> getStringPattern() {
return stringPattern;
}
}
@@ -21,6 +21,8 @@ import com.intellij.util.ProcessingContext;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import static com.intellij.patterns.StandardPatterns.string;
/**
* @author peter
*/
@@ -102,10 +104,10 @@ public class PsiClassPattern extends PsiMemberPattern<PsiClass, PsiClassPattern>
}
public PsiClassPattern withQualifiedName(@NonNls @NotNull final String qname) {
return with(PsiClassNamePatternCondition.accepting((qualifiedName, context) -> qname.equals(qualifiedName)));
return with(new PsiClassNamePatternCondition(string().equalTo(qname)));
}
public PsiClassPattern withQualifiedName(@NonNls @NotNull final ElementPattern<String> qname) {
return with(PsiClassNamePatternCondition.accepting((qualifiedName, context) -> qname.accepts(qualifiedName, context)));
return with(new PsiClassNamePatternCondition(qname));
}
}
@@ -80,4 +80,5 @@ io.t28.json2java 0.1.0 0.2.0 0.2.1
TabFolder 1.0 1.0.1
ssh 1.0 1.0.1
"Log4j Plugin" 1.1.2 1.1.1 1.1.0 1.0.1 1.0
nix-idea 0.2.0.1
nix-idea 0.2.0.1
com.basisjs 0.1.3 0.1.4.1 0.1.5
@@ -15,24 +15,15 @@
*/
package org.jetbrains.plugins.gradle.execution.test.runner;
import com.intellij.execution.console.DuplexConsoleView;
import com.intellij.execution.process.ProcessHandler;
import com.intellij.execution.testframework.TestConsoleProperties;
import com.intellij.execution.testframework.sm.runner.SMTestLocator;
import com.intellij.execution.testframework.sm.runner.SMTestProxy;
import com.intellij.execution.testframework.sm.runner.ui.SMTRunnerConsoleView;
import com.intellij.execution.ui.ConsoleView;
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Disposer;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Map;
import static org.jetbrains.plugins.gradle.execution.GradleRunnerUtil.attachTaskExecutionView;
/**
* @author Vladislav.Soroka
* @since 10/28/2015
@@ -40,22 +31,11 @@ import static org.jetbrains.plugins.gradle.execution.GradleRunnerUtil.attachTask
public class GradleTestsExecutionConsole extends SMTRunnerConsoleView {
private Map<String, SMTestProxy> testsMap = ContainerUtil.newHashMap();
private StringBuilder myBuffer = new StringBuilder();
private DuplexConsoleView myConsoleView;
public GradleTestsExecutionConsole(TestConsoleProperties consoleProperties, @Nullable String splitterProperty) {
super(consoleProperties, splitterProperty);
}
public void initTaskExecutionView(Project project, ProcessHandler processHandler, ExternalSystemTaskId taskId) {
myConsoleView = attachTaskExecutionView(project, super.getConsole(), false, "gradle.test.runner.text.console", processHandler, taskId);
}
@NotNull
@Override
public ConsoleView getConsole() {
return myConsoleView != null ? myConsoleView : super.getConsole();
}
public Map<String, SMTestProxy> getTestsMap() {
return testsMap;
}
@@ -66,8 +46,8 @@ public class GradleTestsExecutionConsole extends SMTRunnerConsoleView {
@Override
public void dispose() {
testsMap.clear();
super.dispose();
Disposer.dispose(myConsoleView);
}
public SMTestLocator getUrlProvider() {