{"id":19990727,"url":"https://github.com/zspitz/ExpressionTreeVisualizer","last_synced_at":"2025-05-04T10:30:40.866Z","repository":{"id":43478470,"uuid":"163846347","full_name":"zspitz/ExpressionTreeVisualizer","owner":"zspitz","description":"Debugging visualizer for expression trees","archived":false,"fork":false,"pushed_at":"2022-12-08T14:58:31.000Z","size":2608,"stargazers_count":347,"open_issues_count":34,"forks_count":26,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-19T10:40:44.912Z","etag":null,"topics":["csharp","debugging-visualizer","expression-tree","visual-basic","visualizer"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zspitz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-02T13:44:49.000Z","updated_at":"2025-04-16T07:19:46.000Z","dependencies_parsed_at":"2023-01-25T17:46:43.055Z","dependency_job_id":null,"html_url":"https://github.com/zspitz/ExpressionTreeVisualizer","commit_stats":null,"previous_names":[],"tags_count":63,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zspitz%2FExpressionTreeVisualizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zspitz%2FExpressionTreeVisualizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zspitz%2FExpressionTreeVisualizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zspitz%2FExpressionTreeVisualizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zspitz","download_url":"https://codeload.github.com/zspitz/ExpressionTreeVisualizer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252319939,"owners_count":21729036,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","debugging-visualizer","expression-tree","visual-basic","visualizer"],"created_at":"2024-11-13T04:51:26.535Z","updated_at":"2025-05-04T10:30:40.382Z","avatar_url":"https://github.com/zspitz.png","language":"C#","readme":"# Expression Tree Visualizer\n\n[![AppVeyor build status](https://img.shields.io/appveyor/ci/zspitz/expressiontreevisualizer?style=flat\u0026max-age=86400)](https://ci.appveyor.com/project/zspitz/expressiontreevisualizer) [![Tests](https://img.shields.io/appveyor/tests/zspitz/expressiontreevisualizer?compact_message\u0026style=flat\u0026max-age=86400)](https://ci.appveyor.com/project/zspitz/expressiontreevisualizer) [![GitHub Release](https://img.shields.io/github/release/zspitz/expressiontreevisualizer.svg?style=flat\u0026max-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\u0026max-age=86400)](https://www.nuget.org/packages/ExpressionTreeVisualizer.UI/)\n\nThis project provides a custom debugging visualizer for expression trees, that can be used while debugging with Visual Studio (on Windows). The UI contains:\n\n1. a graphical treeview of the expression tree structure,\n2. [source code representation of the tree](https://github.com/zspitz/ExpressionTreeToString), and\n3. end nodes -- nodes in the tree which are not composed of other expressions: parameters, closure variables, constants and default values\n\n![Screenshot](screenshot-01.png)\n\nThere are [multiple renderers](https://github.com/zspitz/ExpressionTreeVisualizer/wiki#settings) available:\n\n![Language switch](formatter-switch.gif)\n\nSelection syncing:\n\n* when selecting from the tree:\n\n  ![Selection sync from tree](sync-from-tree.gif)\n\n* from source code:\n\n  ![Selection sync from source code](sync-from-code.gif)\n\n* and from end nodes:\n\n  ![Selection sync from end nodes](sync-from-endnodes.gif)\n  \nFor more information, see the [wiki](https://github.com/zspitz/ExpressionTreeVisualizer/wiki).\n\nThe 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)).\n  \n## Requirements / Supports\n\nThe visualizer been tested with VS 2019 and VS 2017; theoretically the 2017 version should work with previous versions of VS.\n\nIt supports .NET Core, ,NET Framework, and any .NET Standard 2.0 implementation. (Note that .NET Framework \u003c 4.7 [may have issues in VS 2017](https://github.com/zspitz/ANTLR4ParseTreeVisualizer/issues/51).)\n  \n## Installation\n\nFrom 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:\n\n1. [Unblock the ZIP file](https://github.com/zspitz/ExpressionTreeVisualizer/wiki/Troubleshooting-visualizer-installation).\n2. 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).\n\n## Uninstallation\n\nTo delete the visualizer:\n\n1. Navigate to the visualizer location. This can be done by clicking on the **About** link, and then clicking on the **ExpressionTreeVisualizer.dll** link.\n2. Delete all files and folders whose name starts with `ExpressionTreeVisualizer`. You can find these by typing `name:ExpressionTreeVisualizer` in the Windows search box.\n\n## Contributing / Feedback\n\n* Test the visualizer. (The significance of this kind of contribution cannot be overestimated.)\n* Suggest ideas and enhancements (via [issues](https://github.com/zspitz/ExpressionTreeVisualizer/issues/new/choose))\n* Notify about bugs (via [issues](https://github.com/zspitz/ExpressionTreeVisualizer/issues/new/choose))\n* 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\n* Star the project\n* Spread the word\n* Provide feedback to Microsoft about [these limitations to the visualizer API](https://github.com/zspitz/ExpressionToString/wiki/External-issues)\n\n## Credits\n\n* John M. Wright's series on [writing debugger visualizers](https://wrightfully.com/writing-a-readonly-debugger-visualizer)\n* Multiple-selection treeview is provided by [MultiSelectTreeView](https://github.com/ygoe/MultiSelectTreeView)\n* [ReadableExpressions](https://github.com/agileobjects/ReadableExpressions) for inspiration\n* [Greenshot](https://getgreenshot.org/) and [ScreenToGIF](https://www.screentogif.com/) for the screenshots\n","funding_links":[],"categories":["C\\#"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzspitz%2FExpressionTreeVisualizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzspitz%2FExpressionTreeVisualizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzspitz%2FExpressionTreeVisualizer/lists"}