Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zspitz/ExpressionTreeVisualizer
Debugging visualizer for expression trees
https://github.com/zspitz/ExpressionTreeVisualizer
csharp debugging-visualizer expression-tree visual-basic visualizer
Last synced: 2 months ago
JSON representation
Debugging visualizer for expression trees
- Host: GitHub
- URL: https://github.com/zspitz/ExpressionTreeVisualizer
- Owner: zspitz
- License: mit
- Created: 2019-01-02T13:44:49.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T14:58:31.000Z (about 2 years ago)
- Last Synced: 2024-11-07T20:49:11.404Z (2 months ago)
- Topics: csharp, debugging-visualizer, expression-tree, visual-basic, visualizer
- Language: C#
- Homepage:
- Size: 2.49 MB
- Stars: 339
- Watchers: 10
- Forks: 26
- Open Issues: 33
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Expression Tree Visualizer
[![AppVeyor build status](https://img.shields.io/appveyor/ci/zspitz/expressiontreevisualizer?style=flat&max-age=86400)](https://ci.appveyor.com/project/zspitz/expressiontreevisualizer) [![Tests](https://img.shields.io/appveyor/tests/zspitz/expressiontreevisualizer?compact_message&style=flat&max-age=86400)](https://ci.appveyor.com/project/zspitz/expressiontreevisualizer) [![GitHub Release](https://img.shields.io/github/release/zspitz/expressiontreevisualizer.svg?style=flat&max-age=86400)](https://github.com/zspitz/ExpressionTreeVisualizer/releases) [![NuGet status of UI components package](https://img.shields.io/nuget/v/ExpressionTreeVisualizer.UI.svg?style=flat&max-age=86400)](https://www.nuget.org/packages/ExpressionTreeVisualizer.UI/)
This project provides a custom debugging visualizer for expression trees, that can be used while debugging with Visual Studio (on Windows). The UI contains:
1. a graphical treeview of the expression tree structure,
2. [source code representation of the tree](https://github.com/zspitz/ExpressionTreeToString), and
3. end nodes -- nodes in the tree which are not composed of other expressions: parameters, closure variables, constants and default values![Screenshot](screenshot-01.png)
There are [multiple renderers](https://github.com/zspitz/ExpressionTreeVisualizer/wiki#settings) available:
![Language switch](formatter-switch.gif)
Selection syncing:
* when selecting from the tree:
![Selection sync from tree](sync-from-tree.gif)
* from source code:
![Selection sync from source code](sync-from-code.gif)
* and from end nodes:
![Selection sync from end nodes](sync-from-endnodes.gif)
For more information, see the [wiki](https://github.com/zspitz/ExpressionTreeVisualizer/wiki).The UI components are also available as a [NuGet package](https://www.nuget.org/packages/ExpressionTreeVisualizer.UI/) (targeting .NET Core 3.1 / .NET Framework 4.7.2), which you can use in your own projects (demo available [here](https://github.com/zspitz/ExpressionTreeVisualizer.UIDemo)).
## Requirements / SupportsThe 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](https://github.com/zspitz/ANTLR4ParseTreeVisualizer/issues/51).)
## InstallationFrom the [project's Releases page](https://github.com/zspitz/ExpressionTreeVisualizer/releases), download the ZIP file corresponding to your Visual Studio version (2019 or 2017). Then:
1. [Unblock the ZIP file](https://github.com/zspitz/ExpressionTreeVisualizer/wiki/Troubleshooting-visualizer-installation).
2. Extract the files to the visualizers folder, preserving the [required folder structure](https://docs.microsoft.com/en-us/visualstudio/debugger/how-to-install-a-visualizer?view=vs-2019#to-install-a-visualizer-for-visual-studio-2019).## Uninstallation
To delete the visualizer:
1. Navigate to the visualizer location. This can be done by clicking on the **About** link, and then clicking on the **ExpressionTreeVisualizer.dll** link.
2. Delete all files and folders whose name starts with `ExpressionTreeVisualizer`. You can find these by typing `name: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](https://github.com/zspitz/ExpressionTreeVisualizer/issues/new/choose))
* Notify about bugs (via [issues](https://github.com/zspitz/ExpressionTreeVisualizer/issues/new/choose))
* Provide screenshots demonstrating different features of the visualizer (via [issues](https://github.com/zspitz/ExpressionTreeVisualizer/issues/new/choose)), 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](https://github.com/zspitz/ExpressionToString/wiki/External-issues)## Credits
* John M. Wright's series on [writing debugger visualizers](https://wrightfully.com/writing-a-readonly-debugger-visualizer)
* Multiple-selection treeview is provided by [MultiSelectTreeView](https://github.com/ygoe/MultiSelectTreeView)
* [ReadableExpressions](https://github.com/agileobjects/ReadableExpressions) for inspiration
* [Greenshot](https://getgreenshot.org/) and [ScreenToGIF](https://www.screentogif.com/) for the screenshots