ghassanpl / reflector Goto Github PK
View Code? Open in Web Editor NEWA small tool to create reflection information for C++ projects, ala Unreal's UHT
License: Other
A small tool to create reflection information for C++ projects, ala Unreal's UHT
License: Other
Right now a lot of the .h and .cpp files in the project have a lot of shared stuff in it, we need to break them up into smaller files with fewer responsibilities.
I would love to have some good examples of what Reflector is and what it allows users to do
Right now we have icons for types and some docnotes. We could definitely have more for docnotes and such.
If true, will generate static constexpr methods, in the bodies of classes, for each reflected member
Maybe instead we should have an option like GeneratedReflectionData=Minimal | Normal | Full
This is a general issue that describes ideas for new annotation types
using X = ...;
declarations, so that generated documentation is better (probably other things too)Order = Declaration/Alphabetic
or Order = {Documentation = Alphabetic, Editor = Declaration }
, Collapsed = true
; stuff like Document
applies to all members, etc.This should also make sure we're writing all the reflection data to that file.
That part of the codebase needs proper heuristics to figure out if we're actually deriving from Reflectable.
It's a mess right now
This will reduce the size of Reflectable
from 24 to 16 bytes, which is not a lot but adds up across the codebase for something that is a base class for stuff.
It would be cool if we could specify propagation (NoPropagate, OnlyDirectlyDeriving, AllDerived
) in the attribute definition, and handle it automatically in the database building
It would be great to have user-definable attributes, perhaps even with behaviors attached to them.
Something like C# attributes.
Like:
plus generation of code that loads and stores these formats
Specifically:
The class right now probably doesn't work, and if it does, it probably doesn't belong in that header
Also check other places where we potentially change field values (like FieldReflectionData
setters)
This project needs proper testing:
The database needs to check if, when CleanName attributes are specified, that all those names are unique within parent type.
But make it good, and not only for Lua
Headers like ReflectorClasses.h
need proper documentation of the types inside.
This would mean that New() would always return the same value, only one instance can be constructed, and SingletonGet() always returns a valid pointer.
Specifically, two issues:
.md
Currently, reflector does not respect #if/#endif blocks and will treat annotations inside them as valid. This should be fixed with a high priority, but needs to be able to handle macros and such, and that's a massive pain.
How does doxygen do it?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.