Skip to content

Commit 49068a0

Browse files
committed
Improve MSVC visualizations so the parser shows where we are in the code
Also provide a visualizer for lambda introducers llvm-svn: 368029
1 parent efc24d9 commit 49068a0

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

clang/utils/ClangVisualizers/clang.natvis

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -763,6 +763,51 @@ For later versions of Visual Studio, no setup is required-->
763763
<DisplayString Condition="Kind == clang::tok::identifier">{{Identifier ({(clang::IdentifierInfo *)(PtrData),na})}}</DisplayString>
764764
<DisplayString>{(clang::tok::TokenKind)Kind,en}</DisplayString>
765765
</Type>
766+
<Type Name="clang::Lexer">
767+
<DisplayString>{BufferPtr,nasb}</DisplayString>
768+
</Type>
769+
<Type Name="clang::Preprocessor::IncludeStackInfo">
770+
<DisplayString Condition="TheLexer._Mypair._Myval2 != 0">{TheLexer._Mypair._Myval2,na}</DisplayString>
771+
<DisplayString Condition="TheTokenLexer._Mypair._Myval2 != 0">Expanding Macro: {TheTokenLexer._Mypair._Myval2,na}</DisplayString>
772+
<DisplayString></DisplayString>
773+
</Type>
774+
<Type Name="clang::Preprocessor">
775+
<DisplayString IncludeView="cached" Condition="CachedLexPos &lt; CachedTokens.Size">
776+
[{(Token *)(CachedTokens.BeginX) + CachedLexPos,na}] {IncludeMacroStack._Mypair._Myval2._Mylast - 1,na}
777+
</DisplayString>
778+
<DisplayString IncludeView="cached"> {IncludeMacroStack._Mypair._Myval2._Mylast - 1,na}</DisplayString>
779+
<DisplayString Condition="CurLexer._Mypair._Myval2 != 0">{CurLexer._Mypair._Myval2,na}</DisplayString>
780+
<DisplayString Condition="CurTokenLexer._Mypair._Myval2 != 0">Expanding Macro: {CurTokenLexer._Mypair._Myval2,na}</DisplayString>
781+
<!-- Can't use CurLexerKind because natvis sees the type rather than the variable -->
782+
<DisplayString Condition="IncludeMacroStack._Mypair._Myval2._Mylast - IncludeMacroStack._Mypair._Myval2._Myfirst">
783+
{this,view(cached)}
784+
</DisplayString>
785+
<DisplayString>CLK_LexAfterModuleImport</DisplayString>
786+
</Type>
787+
<Type Name="clang::Parser">
788+
<DisplayString>[{Tok}] {PP,na}</DisplayString>
789+
</Type>
790+
<Type Name="clang::LambdaIntroducer::LambdaCapture">
791+
<DisplayString Condition="Kind == LCK_This">this</DisplayString>
792+
<DisplayString Condition="Kind == LCK_StarThis">*this</DisplayString>
793+
<DisplayString Condition="Kind == LCK_ByCopy">{Id}</DisplayString>
794+
<DisplayString Condition="Kind == LCK_ByRef">&amp;{Id}</DisplayString>
795+
<DisplayString>No visualizer for {Kind}</DisplayString>
796+
</Type>
797+
<Type Name="clang::LambdaIntroducer">
798+
<DisplayString IncludeView="default" Condition="Default==LCD_None"></DisplayString>
799+
<DisplayString IncludeView="default" Condition="Default==LCD_ByCopy">=,</DisplayString>
800+
<DisplayString IncludeView="default" Condition="Default==LCD_ByRef">&amp;,</DisplayString>
801+
<DisplayString IncludeView="capture0" Condition="Captures.Size==0"></DisplayString>
802+
<DisplayString IncludeView="capture0">{(LambdaCapture *)(Captures.BeginX),na}{this,view(capture1)na}</DisplayString>
803+
<DisplayString IncludeView="capture1" Condition="Captures.Size==1"></DisplayString>
804+
<DisplayString IncludeView="capture1">,{(LambdaCapture *)(Captures.BeginX)+1,na}{this,view(capture2)na}</DisplayString>
805+
<DisplayString IncludeView="capture2" Condition="Captures.Size==2"></DisplayString>
806+
<DisplayString IncludeView="capture2">,{(LambdaCapture *)(Captures.BeginX)+2,na}{this,view(capture3)na}</DisplayString>
807+
<DisplayString IncludeView="capture3" Condition="Captures.Size==3"></DisplayString>
808+
<DisplayString IncludeView="capture3">,...</DisplayString>
809+
<DisplayString>[{this,view(default)na}{this,view(capture0)na}]</DisplayString>
810+
</Type>
766811
<Type Name="clang::DeclSpec">
767812
<DisplayString IncludeView="extra" Condition="TypeSpecType == TST_typename || TypeSpecType == TST_typeofType || TypeSpecType == TST_underlyingType || TypeSpecType == TST_atomic">
768813
, [{TypeRep}]
@@ -817,6 +862,7 @@ For later versions of Visual Studio, no setup is required-->
817862
<DisplayString>{(DeclaratorDecl*)this,nand}</DisplayString>
818863
<Expand>
819864
<ExpandedItem>(DeclaratorDecl*)this,nd</ExpandedItem>
865+
<Item Name="Init">Init</Item>
820866
<Item Name="VarDeclBits">VarDeclBits</Item>
821867
</Expand>
822868
</Type>

0 commit comments

Comments
 (0)