Commit Graph

22 Commits

Author SHA1 Message Date
Mike Spertus 2b60a2c0ba Improved Visual Studio visualization of OpaquePtr
Create a special visualizer for OpaquePtr<QualType> because the 
standard visualizer doesn't work with OpaquePtr<QualType>
due to QualType being heavily dependent on traits to be pointer-like.

Also, created an identical visualizer for UnionOpaquePtr


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272531 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-13 04:02:35 +00:00
Mike Spertus a068e1cafc Visual Studio Visualizer for PackExpansionType
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272522 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-12 22:54:46 +00:00
Mike Spertus 25969c5970 Visual Studio native visualizer for ParsedTemplateArgument
Does a good job with type and non-type template arguments
and lays the groundwork for template template arguments to
visualize well once there is a TemplateName visualizer.
Also fixed what looks like an incorrect comment in the
header for ParsedTemplate.h.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272521 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-12 22:21:56 +00:00
Mike Spertus 00f3397102 Rudimentary support for Visual Studio Stmt visualizer
Better than nothing...


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272518 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-12 18:42:04 +00:00
Mike Spertus 13a66b76e4 Visual Studio Visualizers for ActionResult, LocInfoType, and and TypeSourceInfo
Created a visualizer for ActionResult that displayed the validity and the pointer,
but many of them initially displayed poorly. It turns out that the primary culprit
is that LocInfoType is often passed in an action result, but it is not the same 
as other types. For example, LocInfoType is not in TypeNodes.def and clang::Type::TypeClass
does not have a LocInfoType enum. After adding a special visualizer for LocInfoType,
the display was more useful


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272487 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-11 20:15:19 +00:00
Mike Spertus 752bad647c Visual Studio visualizers associated with LookupResults
Visualizers for DeclAccessPair, UnresolvedSet, and LookupResult. For example,
when combined with LLVM diff D21256 (currently in review), a Lookup set will
show much more naturally in the Locals window something like

  Found: {public typename ...Ts}



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272448 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-11 03:02:33 +00:00
Mike Spertus 090864348e Added missing close brace to OpaquePtr Visual Studio visualizer
This syntax error resulted in garbage being appended to OpaquePtr visualizations


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272441 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-10 22:25:43 +00:00
Mike Spertus 01203ed48e Improve Visual Studio visualization of DeclaratorDecl
With this change, you can now expand its name and type.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271966 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-07 00:27:37 +00:00
Mike Spertus 9fdc667538 Improved Visual Studio visualizations for template argument lists
Improved the visualizer for TemplateArgumentList to show type arguments in the DisplayString.
E.g., <double, long>. Added a visualizer for MultiLevelTemplateArgumentList.
I decided to display them by how they would appear in a template with the
(non-existent) template-id's omitted, so the DisplayString naturally presents
as something like <double, long>::<char *>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271944 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-06 21:41:20 +00:00
Mike Spertus 37921975d7 Fix typo in last submission to visualize proper template argument
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271911 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-06 17:23:37 +00:00
Mike Spertus ca38230516 Better Visual Studio visualization of TemplateArgument and TemplateArgumentList
For pack TemplateArguments, visualize all of the items in the pack
Visualize a TemplateArgumentList as a template argument list. E.g., <int, double>


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271910 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-06 17:08:32 +00:00
Mike Spertus 9855ec1d7f Slightly improve Visual Studio visualization of clang::Expr
Now it gives the StmtClass of the Expr as well as the type. It's still
a long way from full visualization of expressions, but I have found
that having the class really helps when debugging, so definitely
worth submitting.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271866 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-06 03:37:18 +00:00
Mike Spertus 5337e47eb3 Visualize ellipses in TemplateTypeParm and TemplateTypeParmDecl
Now a TemplateTypeParm will be visualized as typename ...T if it is a pack


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270521 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-24 01:47:41 +00:00
Mike Spertus 6e5c617990 Visualizer for Pack template arguments
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270505 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 22:27:44 +00:00
Mike Spertus ea55554521 Simple visualization of expressions
While more could be done, showing the type is a lot better than what is there now.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@269623 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-16 01:36:09 +00:00
Mike Spertus c5267a849b Fix redundant "typename typename T" in Visual Studio Native Visualizer
Also, a little minor cleanup


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@265338 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-04 19:36:48 +00:00
Mike Spertus 2641018c61 Visual Studio native visualizers for clang::TemplateSpecializationType
Displays a template specialization as, say, A<int, double>. Does not
yet handle UncommonTemplateNameStorage, QualifiedTemplateName, or
DependentTemplateName, but still more than worthwhile


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@265104 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-01 03:31:43 +00:00
Mike Spertus 666c01d585 Visual Studio native visualization for clang::TemplateDecl
With this change, TemplateDecls display in the Locals Window something like

  template<typename T, typename U> struct A;



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@264997 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-31 06:09:56 +00:00
Mike Spertus cfb7120d2f 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>



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@264714 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-29 10:57:24 +00:00
Mike Spertus 68bb29225f Visual Studio native visualizer for InjectedClassNameType
Also fixes some omissions for TemplateSpecializationType


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@264710 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-29 09:24:45 +00:00
Mike Spertus c80318e532 This file was accidentally committed with bad line endings. Fixed...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@264621 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-28 19:08:27 +00:00
Mike Spertus 17a76edf1f Use VS2015 Project Support for Natvis to eliminate the need to manually install clang native visualizer
This is the clang equivalent to llvm commit 264601. When using Visual Studio 2015, cmake now puts the native visualizers in llvm.sln, so the developer automatically sees custom visualizations.
Much thanks to ariccio who provided extensive help on this change. (manual installation still needed on VS2013).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@264603 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-28 18:03:37 +00:00