From 20473245ac56787160a873ceeaccafca99fb7d4e Mon Sep 17 00:00:00 2001 From: Egor Ushakov Date: Mon, 20 Nov 2017 15:11:41 +0300 Subject: [PATCH] IDEA-48873 Add easy access to exception stacktrace for exception objects - added a checkbox to disable this --- .../DebuggerDataViewsConfigurable.java | 8 +++++++- .../settings/ViewsGeneralSettings.java | 20 ++++--------------- .../ui/impl/watch/FieldDescriptorImpl.java | 4 ++-- .../util/resources/misc/registry.properties | 2 -- .../src/messages/DebuggerBundle.properties | 1 + 5 files changed, 14 insertions(+), 21 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/settings/DebuggerDataViewsConfigurable.java b/java/debugger/impl/src/com/intellij/debugger/settings/DebuggerDataViewsConfigurable.java index 770695874a49..29fefbdf4557 100644 --- a/java/debugger/impl/src/com/intellij/debugger/settings/DebuggerDataViewsConfigurable.java +++ b/java/debugger/impl/src/com/intellij/debugger/settings/DebuggerDataViewsConfigurable.java @@ -40,6 +40,7 @@ public class DebuggerDataViewsConfigurable implements SearchableConfigurable { private JCheckBox myCbShowObjectId; private JCheckBox myCbShowStringsType; private JCheckBox myCbHexValue; + private JCheckBox myCbPopulateThrowableStack; private StateRestoringCheckBox myCbShowStaticFinalFields; //private final ArrayRendererConfigurable myArrayRendererConfigurable; @@ -110,6 +111,7 @@ public class DebuggerDataViewsConfigurable implements SearchableConfigurable { myCbShowObjectId = new JCheckBox(DebuggerBundle.message("label.base.renderer.configurable.show.object.id")); myCbHexValue = new JCheckBox(DebuggerBundle.message("label.base.renderer.configurable.show.hex.value")); myCbShowStringsType = new JCheckBox(DebuggerBundle.message("label.base.renderer.configurable.show.strings.type")); + myCbPopulateThrowableStack = new JCheckBox(DebuggerBundle.message("label.base.renderer.configurable.populate.throwable.stack")); myCbEnableToString = new JCheckBox(DebuggerBundle.message("label.base.renderer.configurable.enable.toString")); myRbAllThatOverride = new JRadioButton(DebuggerBundle.message("label.base.renderer.configurable.all.overriding")); @@ -160,6 +162,7 @@ public class DebuggerDataViewsConfigurable implements SearchableConfigurable { panel.add(myCbShowStringsType, new GridBagConstraints(0, RELATIVE, 3, 1, 1.0, 0.0, NORTH, HORIZONTAL, JBUI.emptyInsets(), 0, 0)); panel.add(myCbHexValue, new GridBagConstraints(0, RELATIVE, 3, 1, 1.0, 0.0, NORTH, HORIZONTAL, JBUI.insetsTop(4), 0, 0)); panel.add(myCbHideNullArrayElements, new GridBagConstraints(0, RELATIVE, 3, 1, 1.0, 0.0, NORTH, HORIZONTAL, JBUI.insetsTop(4), 0, 0)); + panel.add(myCbPopulateThrowableStack, new GridBagConstraints(0, RELATIVE, 3, 1, 1.0, 0.0, NORTH, HORIZONTAL, JBUI.insetsTop(4), 0, 0)); panel.add(myCbEnableAlternateViews, new GridBagConstraints(0, RELATIVE, 1, 1, 0.0, 0.0, WEST, NONE, JBUI.insets(4, 0, 0, 10), 0, 0)); // starting 4-th row @@ -180,6 +183,7 @@ public class DebuggerDataViewsConfigurable implements SearchableConfigurable { generalSettings.AUTOSCROLL_TO_NEW_LOCALS = myCbAutoscroll.isSelected(); rendererSettings.setAlternateCollectionViewsEnabled(myCbEnableAlternateViews.isSelected()); generalSettings.HIDE_NULL_ARRAY_ELEMENTS = myCbHideNullArrayElements.isSelected(); + generalSettings.POPULATE_THROWABLE_STACKTRACE = myCbPopulateThrowableStack.isSelected(); final ClassRenderer classRenderer = rendererSettings.getClassRenderer(); classRenderer.SHOW_STATIC = myCbShowStatic.isSelected(); @@ -210,6 +214,7 @@ public class DebuggerDataViewsConfigurable implements SearchableConfigurable { myCbAutoscroll.setSelected(generalSettings.AUTOSCROLL_TO_NEW_LOCALS); myCbHideNullArrayElements.setSelected(generalSettings.HIDE_NULL_ARRAY_ELEMENTS); myCbEnableAlternateViews.setSelected(rendererSettings.areAlternateCollectionViewsEnabled()); + myCbPopulateThrowableStack.setSelected(generalSettings.POPULATE_THROWABLE_STACKTRACE); ClassRenderer classRenderer = rendererSettings.getClassRenderer(); @@ -251,7 +256,8 @@ public class DebuggerDataViewsConfigurable implements SearchableConfigurable { private boolean areGeneralSettingsModified() { ViewsGeneralSettings generalSettings = ViewsGeneralSettings.getInstance(); return generalSettings.AUTOSCROLL_TO_NEW_LOCALS != myCbAutoscroll.isSelected() || - generalSettings.HIDE_NULL_ARRAY_ELEMENTS != myCbHideNullArrayElements.isSelected(); + generalSettings.HIDE_NULL_ARRAY_ELEMENTS != myCbHideNullArrayElements.isSelected() || + generalSettings.POPULATE_THROWABLE_STACKTRACE != myCbPopulateThrowableStack.isSelected(); } private boolean areDefaultRenderersModified() { diff --git a/java/debugger/impl/src/com/intellij/debugger/settings/ViewsGeneralSettings.java b/java/debugger/impl/src/com/intellij/debugger/settings/ViewsGeneralSettings.java index d8d4c1c668f9..106bd9236ee9 100644 --- a/java/debugger/impl/src/com/intellij/debugger/settings/ViewsGeneralSettings.java +++ b/java/debugger/impl/src/com/intellij/debugger/settings/ViewsGeneralSettings.java @@ -1,18 +1,4 @@ -/* - * Copyright 2000-2016 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.debugger.settings; import com.intellij.openapi.components.PersistentStateComponent; @@ -29,6 +15,7 @@ public class ViewsGeneralSettings implements PersistentStateComponent