36 lines
2.7 KiB
Markdown
36 lines
2.7 KiB
Markdown
# TODO and general notes
|
|
|
|
## TODO
|
|
- [ ] Think about syntax for scriptlets. What semantic differences o we want between `${}`, `<%= %>`, and `<% %>`.
|
|
- [ ] Can the DollarScriptlet instead not include the dollar, more like React?
|
|
- [ ] Think about namespaces. This could ease having to write imports, because the namespace would automatically be
|
|
mapped to a star import. Syntax could be something like `<turbo::Frame someKey='someVal' />`.
|
|
- [ ] Think about how GString are currently done. Do we need to even parse them as such, between element/component tags?
|
|
Could we instead just have the `writer` variable take individual values? This would simplify implementation logic
|
|
for differentiating between closures/scriplets that take an `out` (left-shiftable) param and ones that don't take any.
|
|
- This could also make differentiating lazy/eager closures/scriptlets easier.
|
|
- [ ] Check that the lexer/parser can handle `-` dashes in component names/types, so that we can support `data-`, etc.
|
|
- [ ] Get rid of automatically generated script `main` and `run` methods; replace with a custom `main` method which
|
|
forwards the args to a helper class and then runs the template with the variables similar to the current `runTemplate`
|
|
helper tool.
|
|
- [ ] Create a custom tool for compiling which simply forwards to the Groovy `FileSystemCompiler` but with the correct
|
|
compiler configuration and parser plugin factory.
|
|
- [ ] Create smoke screen test cases for the compiler.
|
|
- [ ] Separate the api, runtime, and compiler elements. The api/runtime can depend on the compiler. If users really want
|
|
to meddle with the compiler for some reason, they can depend on it directly.
|
|
|
|
### Done
|
|
- [X] Fix inner class bug.
|
|
- Update 5/20/24: Seems to be working now. N.b.: they are not truly 'inner' classes but rather classes that are added
|
|
to the same module. We should always prefer to err on the side of what the usual groovy script semantics are.
|
|
- [X] Get rid of sketching source set.
|
|
- Update 5/20/24: Done, but moved to `sketching/(java | groovy)/sketching` src set dirs.
|
|
- [X] Think more about how to compile templates and components alongside each other. Perhaps we just need to bite
|
|
the bullet and use a custom Groovy `CompilationUnit` or `CompilerConfiguration` or whatnot to identify `.wvc` files.
|
|
- Update 5/17/24: This should be solved with the `DelegatingWvcParserPlugin` which just examines the file extension.
|
|
|
|
## Syntax ideas
|
|
- Perhaps we could have a lambda- or closure-like factory at the beginning of a component for creating it. This could
|
|
bypass the resolve mechanism and just instantiate the component directly via constructor (with some protocol).
|
|
Something like: `<Component::new ...>` or `<Component.&new ...>`. Could also have `<{ new Component() } />`.
|