fixed duplication of breakpoints and reordering

GitOrigin-RevId: 5e4dc8199a8d9ceffe1905aae6d2ccfd5fd348cb
This commit is contained in:
Arseny Chernyaev
2019-07-03 18:50:15 +03:00
committed by intellij-monorepo-bot
parent 848e793738
commit 449a7e4dc4
@@ -404,11 +404,12 @@ public class XBreakpointManagerImpl implements XBreakpointManager {
List<BreakpointState<?, ?, ?>> defaultBreakpoints = new SmartList<>();
for (Set<XBreakpointBase<?, ?, ?>> typeDefaultBreakpoints : myDefaultBreakpoints.values()) {
if (typeDefaultBreakpoints.stream().noneMatch(breakpoint -> differsFromDefault(breakpoint.getType(), breakpoint.getState()))) {
continue;
}
for (XBreakpointBase<?, ?, ?> breakpoint : typeDefaultBreakpoints) {
final BreakpointState breakpointState = breakpoint.getState();
if (differsFromDefault(breakpoint.getType(), breakpointState)) {
defaultBreakpoints.add(breakpointState);
}
defaultBreakpoints.add(breakpointState);
}
}
@@ -470,7 +471,7 @@ public class XBreakpointManagerImpl implements XBreakpointManager {
ApplicationManager.getApplication().runReadAction(() -> {
ContainerUtil.notNullize(state.getDefaultBreakpoints()).forEach(breakpointState -> loadBreakpoint(breakpointState, true));
loadDefaultBreakpointsFromType();
XBreakpointUtil.breakpointTypes().remove(myDefaultBreakpoints::containsKey).forEach(this::addDefaultBreakpoint);
myBreakpoints.values().forEach(this::doRemoveBreakpoint);
@@ -492,21 +493,6 @@ public class XBreakpointManagerImpl implements XBreakpointManager {
myDefaultGroup = state.getDefaultGroup();
}
@SuppressWarnings("unchecked")
private void loadDefaultBreakpointsFromType() {
for (XBreakpointType breakpointType : XBreakpointUtil.breakpointTypes()) {
XBreakpointBase defaultBreakpoint = (XBreakpointBase) createDefaultBreakpoint(breakpointType);
if (defaultBreakpoint == null) {
continue;
}
BreakpointState defaultBreakpointState = defaultBreakpoint.getState();
if (getDefaultBreakpoints(breakpointType).stream().allMatch(existingBreakpoint -> statesAreDifferent(defaultBreakpointState, ((XBreakpointBase) existingBreakpoint).getState(), false))) {
addBreakpoint(defaultBreakpoint, true, false);
}
}
}
private <P extends XBreakpointProperties> void addDefaultBreakpoint(XBreakpointType<?, P> type) {
final XBreakpoint<P> breakpoint = createDefaultBreakpoint(type);
if (breakpoint != null) {