Author: mps
Date: Tue Mar 29 05:57:24 2016
New Revision: 264714

URL: http://llvm.org/viewvc/llvm-project?rev=264714&view=rev
Log:
Visual Studio native visualization for TemplateParameterList and 
TemplateTypeParmDecl

With this change, a TemplateParameterList will suggestively display in the 
locals window something like:
  <typename T, int i>


Modified:
    cfe/trunk/utils/ClangVisualizers/clang.natvis

Modified: cfe/trunk/utils/ClangVisualizers/clang.natvis
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/ClangVisualizers/clang.natvis?rev=264714&r1=264713&r2=264714&view=diff
==============================================================================
--- cfe/trunk/utils/ClangVisualizers/clang.natvis (original)
+++ cfe/trunk/utils/ClangVisualizers/clang.natvis Tue Mar 29 05:57:24 2016
@@ -112,6 +112,10 @@ For later versions of Visual Studio, no
   <Type Name="clang::CXXDestructorDecl">
     <DisplayString>Destructor {{~{Name,view(cpp)}()}}</DisplayString>
   </Type>
+  <Type Name="clang::TemplateTypeParmDecl">
+    <DisplayString Condition="!Typename">class {Name,view(cpp)}</DisplayString>
+    <DisplayString>typename {Name,view(cpp)}</DisplayString>
+  </Type>
   <Type Name="clang::NamedDecl" >
     <DisplayString IncludeView="cpp">{Name,view(cpp)}</DisplayString>
     <DisplayString>{Name}</DisplayString>
@@ -371,4 +375,25 @@ For later versions of Visual Studio, no
       <ExpandedItem>($T1 *)Ptr</ExpandedItem>
     </Expand>
   </Type>
+  <Type Name="clang::TemplateParameterList">
+    <DisplayString IncludeView="parm0" 
Condition="NumParams==0"></DisplayString>
+    <DisplayString IncludeView="parm0">{*((NamedDecl 
**)(this+1))[0],view(cpp)}{*this,view(parm1)}</DisplayString>
+    <DisplayString IncludeView="parm1" 
Condition="NumParams==1"></DisplayString>
+    <DisplayString IncludeView="parm1">, {*((NamedDecl 
**)(this+1))[1],view(cpp)}{*this,view(parm2)}</DisplayString>
+    <DisplayString IncludeView="parm2" 
Condition="NumParams==2"></DisplayString>
+    <DisplayString IncludeView="parm2">, {*((NamedDecl 
**)(this+1))[2],view(cpp)}{*this,view(parm3)}</DisplayString>
+    <DisplayString IncludeView="parm3" 
Condition="NumParams==3"></DisplayString>
+    <DisplayString IncludeView="parm3">, {*((NamedDecl 
**)(this+1))[3],view(cpp)}{*this,view(parm4)}</DisplayString>
+    <DisplayString IncludeView="parm4" 
Condition="NumParams==4"></DisplayString>
+    <DisplayString IncludeView="parm4">, {*((NamedDecl 
**)(this+1))[4],view(cpp)}{*this,view(parm5)}</DisplayString>
+    <DisplayString IncludeView="parm5" 
Condition="NumParams==5"></DisplayString>
+    <DisplayString IncludeView="parm5">, /* Expand for more params 
*/</DisplayString>
+    <DisplayString>&lt;{*this,view(parm0)}&gt;</DisplayString>
+    <Expand>
+      <ArrayItems>
+        <Size>NumParams</Size>
+      <ValuePointer>(NamedDecl **)(this+1)</ValuePointer>
+      </ArrayItems>
+    </Expand>
+  </Type>
 </AutoVisualizer>


_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to