mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[jvm console view] don't fold stack traces in analyze stack trace views, IDEA-364517
^IDEA-364517 fixed GitOrigin-RevId: 8e38e31b7b8a928aa38e4bddf142dac526c223a1
This commit is contained in:
committed by
intellij-monorepo-bot
parent
0f261ac63e
commit
617ef4d003
@@ -4,9 +4,9 @@ package com.intellij.execution.filters
|
||||
import com.intellij.execution.ConsoleFolding
|
||||
import com.intellij.execution.ExecutionBundle
|
||||
import com.intellij.execution.ui.ConsoleView
|
||||
import com.intellij.execution.ui.NoStackTraceFoldingPanel
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.ui.getParentOfType
|
||||
import com.intellij.unscramble.ThreadDumpPanel
|
||||
|
||||
private const val STACK_TRACE_ELEMENT_PREFIX = "\tat "
|
||||
private const val ASYNC_STACK_TRACE_PREFIX = "\tat --- Async.Stack.Trace --- "
|
||||
@@ -51,6 +51,5 @@ class StackTraceFolding : ConsoleFolding() {
|
||||
override fun isEnabledForConsole(consoleView: ConsoleView): Boolean =
|
||||
super.isEnabledForConsole(consoleView) &&
|
||||
enabled &&
|
||||
// We want unfolded stack traces inside ThreadDumpPanel.
|
||||
consoleView.component.getParentOfType<ThreadDumpPanel>() == null
|
||||
}
|
||||
consoleView.component.getParentOfType<NoStackTraceFoldingPanel>() == null
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ package com.intellij.unscramble;
|
||||
import com.intellij.CommonBundle;
|
||||
import com.intellij.codeInsight.highlighting.HighlightManager;
|
||||
import com.intellij.execution.ui.ConsoleView;
|
||||
import com.intellij.execution.ui.NoStackTraceFoldingPanel;
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.ide.DataManager;
|
||||
import com.intellij.ide.ExporterToTextFile;
|
||||
@@ -52,7 +53,7 @@ import static com.intellij.icons.AllIcons.Debugger.ThreadStates.*;
|
||||
* @author Jeka
|
||||
* @author Konstantin Bulenkov
|
||||
*/
|
||||
public final class ThreadDumpPanel extends JPanel implements UiDataProvider {
|
||||
public final class ThreadDumpPanel extends JPanel implements UiDataProvider, NoStackTraceFoldingPanel {
|
||||
private static final Icon PAUSE_ICON_DAEMON = LayeredIcon.layeredIcon(() -> new Icon[]{AllIcons.Actions.Pause, Daemon_sign});
|
||||
private static final Icon LOCKED_ICON_DAEMON = LayeredIcon.layeredIcon(() -> new Icon[]{AllIcons.Debugger.MuteBreakpoints, Daemon_sign});
|
||||
private static final Icon RUNNING_ICON_DAEMON = LayeredIcon.layeredIcon(() -> new Icon[]{AllIcons.Actions.Resume, Daemon_sign});
|
||||
|
||||
@@ -1767,6 +1767,7 @@ com.intellij.execution.ui.ExecutionConsoleEx
|
||||
- com.intellij.execution.ui.ExecutionConsole
|
||||
- a:buildUi(com.intellij.execution.ui.RunnerLayoutUi):V
|
||||
- a:getExecutionConsoleId():java.lang.String
|
||||
com.intellij.execution.ui.NoStackTraceFoldingPanel
|
||||
com.intellij.execution.ui.ObservableConsoleView
|
||||
- a:addChangeListener(com.intellij.execution.ui.ObservableConsoleView$ChangeListener,com.intellij.openapi.Disposable):V
|
||||
com.intellij.execution.ui.ObservableConsoleView$ChangeListener
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.execution.ui
|
||||
|
||||
/**
|
||||
* The marker interface which can be used to disable any stack trace folding in nested consoles.
|
||||
*/
|
||||
interface NoStackTraceFoldingPanel
|
||||
@@ -145,7 +145,7 @@ class AnalyzeStacktraceUtil private constructor(){
|
||||
fun createConsoleComponent(consoleView: ConsoleView?, toolbarActions: DefaultActionGroup?): JComponent?
|
||||
}
|
||||
|
||||
private class MyConsolePanel(consoleView: ExecutionConsole, toolbarActions: ActionGroup) : JPanel(BorderLayout()) {
|
||||
private class MyConsolePanel(consoleView: ExecutionConsole, toolbarActions: ActionGroup) : JPanel(BorderLayout()), NoStackTraceFoldingPanel {
|
||||
init {
|
||||
val toolbarPanel = JPanel(BorderLayout())
|
||||
val toolbar = ActionManager.getInstance().createActionToolbar(ActionPlaces.ANALYZE_STACKTRACE_PANEL_TOOLBAR, toolbarActions, false)
|
||||
|
||||
Reference in New Issue
Block a user