variables context menu toggle to show/hide types
authorEgor.Ushakov <egor.ushakov@jetbrains.com>
Thu, 3 Sep 2015 14:06:57 +0000 (17:06 +0300)
committerEgor.Ushakov <egor.ushakov@jetbrains.com>
Thu, 3 Sep 2015 14:07:59 +0000 (17:07 +0300)
java/debugger/impl/src/com/intellij/debugger/actions/ShowTypesAction.java [new file with mode: 0644]
java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ValueDescriptorImpl.java
platform/util/resources/misc/registry.properties
resources/src/idea/JavaActions.xml

diff --git a/java/debugger/impl/src/com/intellij/debugger/actions/ShowTypesAction.java b/java/debugger/impl/src/com/intellij/debugger/actions/ShowTypesAction.java
new file mode 100644 (file)
index 0000000..116dcc4
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2000-2015 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.
+ */
+package com.intellij.debugger.actions;
+
+import com.intellij.debugger.engine.JavaDebugProcess;
+import com.intellij.openapi.actionSystem.AnActionEvent;
+import com.intellij.openapi.actionSystem.RegistryToggleAction;
+import com.intellij.openapi.project.Project;
+import com.intellij.xdebugger.XDebugSession;
+import com.intellij.xdebugger.XDebuggerManager;
+import com.intellij.xdebugger.impl.XDebuggerUtilImpl;
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * @author egor
+ */
+public class ShowTypesAction extends RegistryToggleAction {
+  public ShowTypesAction() {
+    super("debugger.showTypes");
+  }
+
+  @Override
+  public void doWhenDone(AnActionEvent e) {
+    XDebuggerUtilImpl.rebuildAllSessionsViews(e.getProject());
+  }
+
+  @Override
+  public void update(@NotNull AnActionEvent e) {
+    Project project = e.getProject();
+    if (project != null) {
+      XDebugSession session = XDebuggerManager.getInstance(project).getCurrentSession();
+      if (session != null && session.getDebugProcess() instanceof JavaDebugProcess) {
+        e.getPresentation().setEnabledAndVisible(true);
+        super.update(e);
+        return;
+      }
+    }
+    e.getPresentation().setEnabledAndVisible(false);
+  }
+}
index 17b8e7e91a528570af75ac7d2e4987ad0a52c48a..bb922a298e6d1b3ff933f2516bdea710521d4bbf 100644 (file)
@@ -33,6 +33,7 @@ import com.intellij.debugger.ui.tree.render.*;
 import com.intellij.debugger.ui.tree.render.Renderer;
 import com.intellij.openapi.application.ApplicationManager;
 import com.intellij.openapi.project.Project;
+import com.intellij.openapi.util.registry.Registry;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.psi.PsiElement;
 import com.intellij.psi.PsiExpression;
@@ -138,7 +139,7 @@ public abstract class ValueDescriptorImpl extends NodeDescriptorImpl implements
   }
 
   public boolean isShowIdLabel() {
-    return myShowIdLabel;
+    return myShowIdLabel && Registry.is("debugger.showTypes");
   }
 
   public void setShowIdLabel(boolean showIdLabel) {
index 199ee3e4b330eab117c34f348836c8c5feadb7bf..4df755a10ce85294a420109e4b5fa237f2f71b2e 100644 (file)
@@ -180,6 +180,8 @@ ide.mac.retina.disableDrawingFix=false
 ide.mac.fix.font.fallback=false
 ide.mac.fix.font.fallback.description=Fix font fallback mechanism by using a more elaborate procedure to check whether specific font can display a particular character (when Apple JDK is used)
 
+debugger.showTypes=true
+debugger.showTypes.description=Show types in variables tree
 debugger.valueTooltipAutoShow=true
 debugger.valueTooltipAutoShow.description=Auto show tooltip on mouse over.
 debugger.valueTooltipAutoShowOnSelection=false
index 5748001c5cbe0c5965fb7d3c6d6c443791f6701f..2f511f16f87661a48f497746e9436e077a29df0e 100644 (file)
       <action id="Debugger.AdjustArrayRange" class="com.intellij.debugger.actions.AdjustArrayRangeAction">
         <add-to-group group-id="XDebugger.ValueGroup" anchor="last"/>
       </action>
+      <action id="Debugger.ShowTypes" class="com.intellij.debugger.actions.ShowTypesAction" text="Show types">
+        <add-to-group group-id="XDebugger.ValueGroup" anchor="last"/>
+      </action>
       <!--<action id="Debugger.SetValue" class="com.intellij.debugger.actions.SetValueAction"/>-->
       <!--<action id="Debugger.ShowAsHex" class="com.intellij.debugger.actions.ShowAsHexAction" text="Show as Hex"/>-->
       <action id="Debugger.ResumeThread" class="com.intellij.debugger.actions.ResumeThreadAction"/>