Neptune is a renderer that sits on top of an application. It will automatically track changes in state and update the view. It is written as a HTML first tool but other platforms will be supported.
Goal: To have an inuitive API that feels like vanilla haxe. A macro is used to generate the view expressions but it shouldn't feel like its affecting the code.
Status: I'm currently working on what each expression type will transform into when in markup mode. I'm hoping to have all expression types accounted for and then will transition into tracking assignment expressions in different scopes.
Sidenote: If anyone reading this knows how the xml meta macro works hit me up. It functions well enough but I ran into a couple cases where it disagrees on what I consider valid.
- EConst
- CInt
- Value: TextNode
- Update: None
- CFloat
- Value: TextNode
- Update: None
- CString
- Value: TextNode
- Update: None
- CIdent
- Value: TextNode
- Update: Update text content when identifier changes
- CRegexp
- Not Supported
EArray
- Value: Node
- Update: Replace node when array index changes
EBinop
- Value: TextNode
- Update: Update text content when value changes
EField
EParenthesis
- Value: Node
- Update: Determined by parenthesis item
EObjectDecl
- Not Supported
EArrayDecl
- Value: Fragment
- Update: None
ECall
ENew
- Not Supported
EUnop
- Not Supported
EVars
- Not Supported
EFunction
- Not Supported
EBlock
- Value: Node
- Update: None
EFor
- Value: Fragment
- Update: Replace node when condition changes
EIf
- Value: Node
- Update: Replace node when condition changes
EWhile
ESwitch
ETry
EReturn
EBreak
- Not Supported
EContinue
- Not Supported
EUntyped
EThrow
ECast
EDisplay
EDisplayNew
ETernary
ECheckType
EMeta
- Value: Node
- Update: None
