mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Init debugger NotificationGroup on xdebugger load to see group in settings before the first debug session start
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2016 JetBrains s.r.o.
|
||||
* Copyright 2000-2017 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -27,7 +27,7 @@ import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.actionSystem.Presentation;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.MessageType;
|
||||
import com.intellij.xdebugger.impl.XDebugSessionImpl;
|
||||
import com.intellij.xdebugger.impl.XDebuggerManagerImpl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -66,7 +66,7 @@ public class InterruptThreadAction extends DebuggerAction{
|
||||
}
|
||||
if (unsupported) {
|
||||
final Project project = debugProcess.getProject();
|
||||
XDebugSessionImpl.NOTIFICATION_GROUP
|
||||
XDebuggerManagerImpl.NOTIFICATION_GROUP
|
||||
.createNotification("Thread operation 'interrupt' is not supported by VM", MessageType.INFO).notify(project);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@ import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.xdebugger.XDebugSession;
|
||||
import com.intellij.xdebugger.breakpoints.XBreakpoint;
|
||||
import com.intellij.xdebugger.impl.XDebugSessionImpl;
|
||||
import com.intellij.xdebugger.impl.XDebuggerManagerImpl;
|
||||
import com.sun.jdi.InternalException;
|
||||
import com.sun.jdi.ThreadReference;
|
||||
import com.sun.jdi.VMDisconnectedException;
|
||||
@@ -442,7 +443,7 @@ public class DebugProcessEvents extends DebugProcessImpl {
|
||||
final MethodFilter methodFilter = hint.getMethodFilter();
|
||||
if (methodFilter instanceof NamedMethodFilter && !hint.wasStepTargetMethodMatched()) {
|
||||
final String message = "Method <b>" + ((NamedMethodFilter)methodFilter).getMethodName() + "()</b> has not been called";
|
||||
XDebugSessionImpl.NOTIFICATION_GROUP.createNotification(message, MessageType.INFO).notify(project);
|
||||
XDebuggerManagerImpl.NOTIFICATION_GROUP.createNotification(message, MessageType.INFO).notify(project);
|
||||
}
|
||||
if (hint.wasStepTargetMethodMatched() && hint.isResetIgnoreFilters()) {
|
||||
checkPositionNotFiltered(suspendContext.getThread(), filters -> mySession.resetIgnoreStepFiltersFlag());
|
||||
@@ -528,7 +529,7 @@ public class DebugProcessEvents extends DebugProcessImpl {
|
||||
|
||||
private void notifySkippedBreakpoints(LocatableEvent event) {
|
||||
if (event != null) {
|
||||
XDebugSessionImpl.NOTIFICATION_GROUP
|
||||
XDebuggerManagerImpl.NOTIFICATION_GROUP
|
||||
.createNotification(DebuggerBundle.message("message.breakpoint.skipped", event.location()), MessageType.INFO)
|
||||
.notify(getProject());
|
||||
}
|
||||
|
||||
@@ -72,7 +72,10 @@ import com.intellij.psi.PsiManager;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.ui.classFilter.ClassFilter;
|
||||
import com.intellij.ui.classFilter.DebuggerClassFilterProvider;
|
||||
import com.intellij.util.*;
|
||||
import com.intellij.util.Alarm;
|
||||
import com.intellij.util.Consumer;
|
||||
import com.intellij.util.EventDispatcher;
|
||||
import com.intellij.util.StringBuilderSpinAllocator;
|
||||
import com.intellij.util.concurrency.Semaphore;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.HashMap;
|
||||
@@ -80,6 +83,7 @@ import com.intellij.util.ui.UIUtil;
|
||||
import com.intellij.xdebugger.XDebugSession;
|
||||
import com.intellij.xdebugger.XSourcePosition;
|
||||
import com.intellij.xdebugger.impl.XDebugSessionImpl;
|
||||
import com.intellij.xdebugger.impl.XDebuggerManagerImpl;
|
||||
import com.intellij.xdebugger.impl.actions.XDebuggerActions;
|
||||
import com.sun.jdi.*;
|
||||
import com.sun.jdi.connect.*;
|
||||
@@ -612,7 +616,7 @@ public abstract class DebugProcessImpl extends UserDataHolderBase implements Deb
|
||||
Arrays.stream(ProjectJdkTable.getInstance().getAllJdks())
|
||||
.filter(sdk -> versionMatch(sdk, version))
|
||||
.findFirst().ifPresent(sdk -> {
|
||||
XDebugSessionImpl.NOTIFICATION_GROUP.createNotification(
|
||||
XDebuggerManagerImpl.NOTIFICATION_GROUP.createNotification(
|
||||
DebuggerBundle.message("message.remote.jre.version.mismatch",
|
||||
version,
|
||||
runjre != null ? runjre.getVersionString() : "unknown",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2016 JetBrains s.r.o.
|
||||
* Copyright 2000-2017 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -26,7 +26,7 @@ import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.xdebugger.impl.XDebugSessionImpl;
|
||||
import com.intellij.xdebugger.impl.XDebuggerManagerImpl;
|
||||
import com.sun.jdi.IncompatibleThreadStateException;
|
||||
import com.sun.jdi.ObjectReference;
|
||||
import com.sun.jdi.ThreadReference;
|
||||
@@ -89,7 +89,7 @@ public class ThreadBlockedMonitor {
|
||||
private static void onThreadBlocked(@NotNull final ThreadReference blockedThread,
|
||||
@NotNull final ThreadReference blockingThread,
|
||||
final DebugProcessImpl process) {
|
||||
XDebugSessionImpl.NOTIFICATION_GROUP.createNotification(
|
||||
XDebuggerManagerImpl.NOTIFICATION_GROUP.createNotification(
|
||||
DebuggerBundle.message("status.thread.blocked.by", blockedThread.name(), blockingThread.name()),
|
||||
DebuggerBundle.message("status.thread.blocked.by.resume", blockingThread.name()),
|
||||
NotificationType.INFORMATION, (notification, event) -> {
|
||||
|
||||
@@ -60,7 +60,7 @@ import com.intellij.util.ui.UIUtil;
|
||||
import com.intellij.xdebugger.AbstractDebuggerSession;
|
||||
import com.intellij.xdebugger.XDebugSession;
|
||||
import com.intellij.xdebugger.XSourcePosition;
|
||||
import com.intellij.xdebugger.impl.XDebugSessionImpl;
|
||||
import com.intellij.xdebugger.impl.XDebuggerManagerImpl;
|
||||
import com.intellij.xdebugger.impl.actions.XDebuggerActions;
|
||||
import com.intellij.xdebugger.impl.evaluate.quick.common.ValueLookupManager;
|
||||
import com.sun.jdi.ObjectCollectedException;
|
||||
@@ -485,7 +485,7 @@ public class DebuggerSession implements AbstractDebuggerSession {
|
||||
if (thread != null) {
|
||||
List<Pair<Breakpoint, com.sun.jdi.event.Event>> descriptors = DebuggerUtilsEx.getEventDescriptors(suspendContext);
|
||||
if (!descriptors.isEmpty()) {
|
||||
XDebugSessionImpl.NOTIFICATION_GROUP.createNotification(
|
||||
XDebuggerManagerImpl.NOTIFICATION_GROUP.createNotification(
|
||||
DebuggerBundle.message("status.breakpoint.reached.in.thread", thread.name()),
|
||||
DebuggerBundle.message("status.breakpoint.reached.in.thread.switch"),
|
||||
NotificationType.INFORMATION, new NotificationListener() {
|
||||
|
||||
@@ -44,7 +44,7 @@ import com.intellij.psi.javadoc.PsiDocComment;
|
||||
import com.intellij.ui.AppUIUtil;
|
||||
import com.intellij.util.ThreeState;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.xdebugger.impl.XDebugSessionImpl;
|
||||
import com.intellij.xdebugger.impl.XDebuggerManagerImpl;
|
||||
import com.sun.jdi.*;
|
||||
import one.util.streamex.IntStreamEx;
|
||||
import one.util.streamex.StreamEx;
|
||||
@@ -150,7 +150,7 @@ public class SourceCodeChecker {
|
||||
DebuggerBundle.message("warning.source.code.not.match")));
|
||||
}
|
||||
else {
|
||||
XDebugSessionImpl.NOTIFICATION_GROUP
|
||||
XDebuggerManagerImpl.NOTIFICATION_GROUP
|
||||
.createNotification(DebuggerBundle.message("warning.source.code.not.match"), NotificationType.WARNING)
|
||||
.notify(project);
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ import com.intellij.xdebugger.XDebuggerUtil;
|
||||
import com.intellij.xdebugger.XSourcePosition;
|
||||
import com.intellij.xdebugger.breakpoints.*;
|
||||
import com.intellij.xdebugger.impl.DebuggerSupport;
|
||||
import com.intellij.xdebugger.impl.XDebugSessionImpl;
|
||||
import com.intellij.xdebugger.impl.XDebuggerManagerImpl;
|
||||
import com.intellij.xdebugger.impl.breakpoints.XBreakpointBase;
|
||||
import com.intellij.xdebugger.impl.breakpoints.XBreakpointManagerImpl;
|
||||
import com.intellij.xdebugger.impl.breakpoints.XDependentBreakpointManager;
|
||||
@@ -118,7 +118,7 @@ public class BreakpointManager {
|
||||
private static boolean checkAndNotifyPossiblySlowBreakpoint(XBreakpoint breakpoint) {
|
||||
XBreakpointProperties properties = breakpoint.getProperties();
|
||||
if (breakpoint.isEnabled() && properties instanceof JavaMethodBreakpointProperties && !((JavaMethodBreakpointProperties)properties).EMULATED) {
|
||||
XDebugSessionImpl.NOTIFICATION_GROUP
|
||||
XDebuggerManagerImpl.NOTIFICATION_GROUP
|
||||
.createNotification(DebuggerBundle.message("method.breakpoints.slowness.warning"), MessageType.WARNING)
|
||||
.notify(((XBreakpointBase)breakpoint).getProject());
|
||||
return true;
|
||||
|
||||
@@ -43,7 +43,6 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.MessageType;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.wm.ToolWindowId;
|
||||
import com.intellij.ui.AppUIUtil;
|
||||
import com.intellij.util.EventDispatcher;
|
||||
import com.intellij.util.SmartList;
|
||||
@@ -82,8 +81,11 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
*/
|
||||
public class XDebugSessionImpl implements XDebugSession {
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.xdebugger.impl.XDebugSessionImpl");
|
||||
public static final NotificationGroup NOTIFICATION_GROUP = NotificationGroup.toolWindowGroup("Debugger messages", ToolWindowId.DEBUG,
|
||||
false);
|
||||
|
||||
/** @deprecated Use {@link XDebuggerManagerImpl#NOTIFICATION_GROUP} */
|
||||
@Deprecated
|
||||
public static final NotificationGroup NOTIFICATION_GROUP = XDebuggerManagerImpl.NOTIFICATION_GROUP;
|
||||
|
||||
private XDebugProcess myDebugProcess;
|
||||
private final Map<XBreakpoint<?>, CustomizedBreakpointPresentation> myRegisteredBreakpoints =
|
||||
new THashMap<>();
|
||||
@@ -948,7 +950,7 @@ public class XDebugSessionImpl implements XDebugSession {
|
||||
listener.hyperlinkUpdate(event);
|
||||
}
|
||||
};
|
||||
NOTIFICATION_GROUP.createNotification("", message, type.toNotificationType(), notificationListener).notify(myProject);
|
||||
XDebuggerManagerImpl.NOTIFICATION_GROUP.createNotification("", message, type.toNotificationType(), notificationListener).notify(myProject);
|
||||
}
|
||||
|
||||
private class MyBreakpointListener implements XBreakpointListener<XBreakpoint<?>> {
|
||||
|
||||
@@ -26,6 +26,7 @@ import com.intellij.execution.ui.ExecutionConsole;
|
||||
import com.intellij.execution.ui.RunContentDescriptor;
|
||||
import com.intellij.execution.ui.RunContentManager;
|
||||
import com.intellij.execution.ui.RunContentWithExecutorListener;
|
||||
import com.intellij.notification.NotificationGroup;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.components.*;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
@@ -36,6 +37,7 @@ import com.intellij.openapi.fileEditor.FileEditorManagerListener;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.startup.StartupManager;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.wm.ToolWindowId;
|
||||
import com.intellij.util.SmartList;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.messages.MessageBus;
|
||||
@@ -68,7 +70,11 @@ import java.util.concurrent.atomic.AtomicReference;
|
||||
@State(name = XDebuggerManagerImpl.COMPONENT_NAME, storages = @Storage(StoragePathMacros.WORKSPACE_FILE))
|
||||
public class XDebuggerManagerImpl extends XDebuggerManager
|
||||
implements NamedComponent, PersistentStateComponent<XDebuggerManagerImpl.XDebuggerState> {
|
||||
|
||||
@NonNls public static final String COMPONENT_NAME = "XDebuggerManager";
|
||||
public static final NotificationGroup NOTIFICATION_GROUP =
|
||||
NotificationGroup.toolWindowGroup("Debugger messages", ToolWindowId.DEBUG, false);
|
||||
|
||||
private final Project myProject;
|
||||
private final XBreakpointManagerImpl myBreakpointManager;
|
||||
private final XDebuggerWatchesManager myWatchesManager;
|
||||
|
||||
+2
-2
@@ -23,7 +23,7 @@ import com.intellij.util.Alarm;
|
||||
import com.intellij.util.concurrency.Semaphore;
|
||||
import com.intellij.xdebugger.XDebuggerBundle;
|
||||
import com.intellij.xdebugger.frame.XFullValueEvaluator;
|
||||
import com.intellij.xdebugger.impl.XDebugSessionImpl;
|
||||
import com.intellij.xdebugger.impl.XDebuggerManagerImpl;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -62,7 +62,7 @@ public class HeadlessValueEvaluationCallback implements XFullValueEvaluator.XFul
|
||||
public void errorOccurred(@NotNull String errorMessage) {
|
||||
try {
|
||||
String message = XDebuggerBundle.message("load.value.task.error", errorMessage);
|
||||
XDebugSessionImpl.NOTIFICATION_GROUP.createNotification(message, NotificationType.ERROR).notify(myNode.getTree().getProject());
|
||||
XDebuggerManagerImpl.NOTIFICATION_GROUP.createNotification(message, NotificationType.ERROR).notify(myNode.getTree().getProject());
|
||||
}
|
||||
finally {
|
||||
evaluationComplete(errorMessage);
|
||||
|
||||
Reference in New Issue
Block a user