diff --git a/bin/linux/restart.py b/bin/linux/restart.py index 5d49a22c3820..241e5a187cde 100755 --- a/bin/linux/restart.py +++ b/bin/linux/restart.py @@ -5,20 +5,24 @@ import os import signal import sys +import syslog import time if len(sys.argv) < 3: raise Exception('usage: restart.py [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())) diff --git a/java/compiler/impl/src/com/intellij/build/BuildTreeConsoleView.java b/java/compiler/impl/src/com/intellij/build/BuildTreeConsoleView.java index f8c2588e3b44..a5ec29588191 100644 --- a/java/compiler/impl/src/com/intellij/build/BuildTreeConsoleView.java +++ b/java/compiler/impl/src/com/intellij/build/BuildTreeConsoleView.java @@ -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(); } } diff --git a/java/java-psi-api/src/com/intellij/patterns/PsiClassNamePatternCondition.java b/java/java-psi-api/src/com/intellij/patterns/PsiClassNamePatternCondition.java index 82ebd88c7676..2d448ed0a132 100644 --- a/java/java-psi-api/src/com/intellij/patterns/PsiClassNamePatternCondition.java +++ b/java/java-psi-api/src/com/intellij/patterns/PsiClassNamePatternCondition.java @@ -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 { -abstract public class PsiClassNamePatternCondition extends PatternCondition { + private final ElementPattern stringPattern; - public static PsiClassNamePatternCondition accepting(BiPredicate condition) { - return new PsiClassNamePatternCondition() { - @Override - public boolean accepts(String qualifiedName, ProcessingContext context) { - return condition.test(qualifiedName, context); - } - }; + public PsiClassNamePatternCondition(ElementPattern pattern) { + this("withQualifiedName", pattern); } - public PsiClassNamePatternCondition() { - this("withQualifiedName"); - } - - public PsiClassNamePatternCondition(@Nullable String debugMethodName) { + public PsiClassNamePatternCondition(@Nullable String debugMethodName, ElementPattern 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 getStringPattern() { + return stringPattern; + } } diff --git a/java/java-psi-api/src/com/intellij/patterns/PsiClassPattern.java b/java/java-psi-api/src/com/intellij/patterns/PsiClassPattern.java index 39cf2ba477fa..482a1a75a2fa 100644 --- a/java/java-psi-api/src/com/intellij/patterns/PsiClassPattern.java +++ b/java/java-psi-api/src/com/intellij/patterns/PsiClassPattern.java @@ -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 } 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 qname) { - return with(PsiClassNamePatternCondition.accepting((qualifiedName, context) -> qname.accepts(qualifiedName, context))); + return with(new PsiClassNamePatternCondition(qname)); } } diff --git a/platform/platform-resources/src/brokenPlugins.txt b/platform/platform-resources/src/brokenPlugins.txt index 7098d5402cdc..aa57dd5b4dc6 100644 --- a/platform/platform-resources/src/brokenPlugins.txt +++ b/platform/platform-resources/src/brokenPlugins.txt @@ -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 \ No newline at end of file +nix-idea 0.2.0.1 +com.basisjs 0.1.3 0.1.4.1 0.1.5 \ No newline at end of file diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/test/runner/GradleTestsExecutionConsole.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/test/runner/GradleTestsExecutionConsole.java index 29ae04e74bcb..15baddb4a2cc 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/test/runner/GradleTestsExecutionConsole.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/test/runner/GradleTestsExecutionConsole.java @@ -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 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 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() {