Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/francescozoccheddu/voodo

C#-based scripting language for procedural animation, data binding and prototyping on WinUI and XAML
https://github.com/francescozoccheddu/voodo

property-binding scripting-language source-generation ui-animation ui-prototyping winui xaml

Last synced: about 2 months ago
JSON representation

C#-based scripting language for procedural animation, data binding and prototyping on WinUI and XAML

Awesome Lists containing this project

README

        

VooDo Icon

# VooDo

Created by [Francesco Zoccheddu](https://github.com/francescozoccheddu)
## Requirements
Work in progress… 🤥
## Installation
Work in progress… 🤥
## Usage
Work in progress… 🤥
## Limitations & future work
- `ImplicitGlobalTypeRewriter` fails if the type depends on another unresolved type.
- `EventHookRewriter` fails if the event's expression depends on another event access.
- `PropertyScriptGenerator` crashes when counting lines of code to report diagnostics.
- `PropertyScriptGenerator` does not support aliased or generic types yet.
- `PropertyBinding` lifecycle for `FrameworkElement` properties cannot be entirely controlled.
- `PropertyBinding`'s `Setter` should use `Reflection.Emit` or `DependencyObject.SetValue`.
- Conditional access syntax is not supported yet.
- Partial tuple deconstruction is not supported yet.
- String interpolation is not supported yet.
- Switch statement is not supported yet.
- Switch expression is not supported yet.
- C#9 patterns are not supported yet.
- Generators should allow custom `IHookInitializer`.
- Should use `Problem` instead of standard exceptions.
- Syntax tagging should be improved.
- `EventHookRewriter` does not support arguments yet.
- `_existingCompilation` argument is not validated.
- Rewriters do not always use `Session`'s `CancelationToken`.
- Roslyn should not be directly exposed in `HookInitializer` and `ReferenceFinder`.
- Ensure that converting the syntax tree to a string does not change the semantics.
- Enable multithreading support by using thread local `AnimatorFactory`, `BindingManager` and caches.
- Code quality sucks.