]> granicus.if.org Git - clang/commitdiff
Improve MSVC visualizations so the parser shows where we are in the code
authorMike Spertus <mike@spertus.com>
Tue, 6 Aug 2019 13:29:35 +0000 (13:29 +0000)
committerMike Spertus <mike@spertus.com>
Tue, 6 Aug 2019 13:29:35 +0000 (13:29 +0000)
Also provide a visualizer for lambda introducers

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@368029 91177308-0d34-0410-b5e6-96231b3b80d8

utils/ClangVisualizers/clang.natvis

index 3b0f21af1ad6224bbba50556840ff0c6ea275a7e..36dea11b0118fac240aae7b2cb644fdaa870b30c 100644 (file)
@@ -763,6 +763,51 @@ For later versions of Visual Studio, no setup is required-->
     <DisplayString Condition="Kind == clang::tok::identifier">{{Identifier ({(clang::IdentifierInfo *)(PtrData),na})}}</DisplayString>\r
     <DisplayString>{(clang::tok::TokenKind)Kind,en}</DisplayString>\r
   </Type>\r
+  <Type Name="clang::Lexer">\r
+    <DisplayString>{BufferPtr,nasb}</DisplayString>\r
+  </Type>\r
+  <Type Name="clang::Preprocessor::IncludeStackInfo">\r
+    <DisplayString Condition="TheLexer._Mypair._Myval2 != 0">{TheLexer._Mypair._Myval2,na}</DisplayString>\r
+    <DisplayString Condition="TheTokenLexer._Mypair._Myval2 != 0">Expanding Macro: {TheTokenLexer._Mypair._Myval2,na}</DisplayString>\r
+    <DisplayString></DisplayString>\r
+  </Type>\r
+  <Type Name="clang::Preprocessor">\r
+    <DisplayString IncludeView="cached" Condition="CachedLexPos &lt; CachedTokens.Size">\r
+      [{(Token *)(CachedTokens.BeginX) + CachedLexPos,na}] {IncludeMacroStack._Mypair._Myval2._Mylast - 1,na}\r
+    </DisplayString>\r
+    <DisplayString IncludeView="cached"> {IncludeMacroStack._Mypair._Myval2._Mylast - 1,na}</DisplayString>\r
+    <DisplayString Condition="CurLexer._Mypair._Myval2 != 0">{CurLexer._Mypair._Myval2,na}</DisplayString>\r
+    <DisplayString Condition="CurTokenLexer._Mypair._Myval2 != 0">Expanding Macro: {CurTokenLexer._Mypair._Myval2,na}</DisplayString>\r
+    <!-- Can't use CurLexerKind because natvis sees the type rather than the variable -->\r
+    <DisplayString Condition="IncludeMacroStack._Mypair._Myval2._Mylast - IncludeMacroStack._Mypair._Myval2._Myfirst">\r
+      {this,view(cached)}\r
+    </DisplayString>\r
+    <DisplayString>CLK_LexAfterModuleImport</DisplayString>\r
+  </Type>\r
+  <Type Name="clang::Parser">\r
+    <DisplayString>[{Tok}] {PP,na}</DisplayString>\r
+  </Type>\r
+  <Type Name="clang::LambdaIntroducer::LambdaCapture">\r
+    <DisplayString Condition="Kind == LCK_This">this</DisplayString>\r
+    <DisplayString Condition="Kind == LCK_StarThis">*this</DisplayString>\r
+    <DisplayString Condition="Kind == LCK_ByCopy">{Id}</DisplayString>\r
+    <DisplayString Condition="Kind == LCK_ByRef">&amp;{Id}</DisplayString>\r
+    <DisplayString>No visualizer for {Kind}</DisplayString>\r
+  </Type>\r
+  <Type Name="clang::LambdaIntroducer">\r
+    <DisplayString IncludeView="default" Condition="Default==LCD_None"></DisplayString>\r
+    <DisplayString IncludeView="default" Condition="Default==LCD_ByCopy">=,</DisplayString>\r
+    <DisplayString IncludeView="default" Condition="Default==LCD_ByRef">&amp;,</DisplayString>\r
+    <DisplayString IncludeView="capture0" Condition="Captures.Size==0"></DisplayString>\r
+    <DisplayString IncludeView="capture0">{(LambdaCapture *)(Captures.BeginX),na}{this,view(capture1)na}</DisplayString>\r
+    <DisplayString IncludeView="capture1" Condition="Captures.Size==1"></DisplayString>\r
+    <DisplayString IncludeView="capture1">,{(LambdaCapture *)(Captures.BeginX)+1,na}{this,view(capture2)na}</DisplayString>\r
+    <DisplayString IncludeView="capture2" Condition="Captures.Size==2"></DisplayString>\r
+    <DisplayString IncludeView="capture2">,{(LambdaCapture *)(Captures.BeginX)+2,na}{this,view(capture3)na}</DisplayString>\r
+    <DisplayString IncludeView="capture3" Condition="Captures.Size==3"></DisplayString>\r
+    <DisplayString IncludeView="capture3">,...</DisplayString>\r
+    <DisplayString>[{this,view(default)na}{this,view(capture0)na}]</DisplayString>\r
+  </Type>\r
   <Type Name="clang::DeclSpec">\r
     <DisplayString IncludeView="extra" Condition="TypeSpecType == TST_typename || TypeSpecType == TST_typeofType || TypeSpecType == TST_underlyingType || TypeSpecType == TST_atomic">\r
       , [{TypeRep}]\r
@@ -817,6 +862,7 @@ For later versions of Visual Studio, no setup is required-->
     <DisplayString>{(DeclaratorDecl*)this,nand}</DisplayString>\r
     <Expand>\r
       <ExpandedItem>(DeclaratorDecl*)this,nd</ExpandedItem>\r
+      <Item Name="Init">Init</Item>\r
       <Item Name="VarDeclBits">VarDeclBits</Item>\r
     </Expand>\r
   </Type>\r