Expression Tree Visualizer
This project provides a custom debugging visualizer for expression trees, that can be used while debugging with Visual Studio (on Windows). The UI contains:
- a graphical treeview of the expression tree structure,
- source code representation of the tree, and
- end nodes -- nodes in the tree which are not composed of other expressions: parameters, closure variables, constants and default values
There are multiple renderers available:
Selection syncing:
For more information, see the wiki.
The UI components are also available as a NuGet package (targeting .NET Core 3.1 / .NET Framework 4.7.2), which you can use in your own projects (demo available here).
Requirements / Supports
The visualizer been tested with VS 2019 and VS 2017; theoretically the 2017 version should work with previous versions of VS.
It supports .NET Core, ,NET Framework, and any .NET Standard 2.0 implementation. (Note that .NET Framework < 4.7 may have issues in VS 2017.)
Installation
From the project's Releases page, download the ZIP file corresponding to your Visual Studio version (2019 or 2017). Then:
- Unblock the ZIP file.
- Extract the files to the visualizers folder, preserving the required folder structure.
Uninstallation
To delete the visualizer:
- Navigate to the visualizer location. This can be done by clicking on the About link, and then clicking on the ExpressionTreeVisualizer.dll link.
- Delete all files and folders whose name starts with
ExpressionTreeVisualizer
. You can find these by typingname:ExpressionTreeVisualizer
in the Windows search box.
Contributing / Feedback
- Test the visualizer. (The significance of this kind of contribution cannot be overestimated.)
- Suggest ideas and enhancements (via issues)
- Notify about bugs (via issues)
- Provide screenshots demonstrating different features of the visualizer (via issues), to be included in the README or wiki pages
- Star the project
- Spread the word
- Provide feedback to Microsoft about these limitations to the visualizer API
Credits
- John M. Wright's series on writing debugger visualizers
- Multiple-selection treeview is provided by MultiSelectTreeView
- ReadableExpressions for inspiration
- Greenshot and ScreenToGIF for the screenshots