feat(parser): add very experimental vue template syntax to html grammar #3369
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR aims to explore how an HTML-ish language, specifically Vue, could be implemented. The ultimate goal is to be able to format and create lint rules for Vue.
I think it makes the most sense to eventually add
HtmlParseOptions
, and be able to conditionally parse Vue's syntax nodes.Discussion: #1726
Test Plan
Currently, it's broken. The generated code causes the html parser to not be able to compile anymore for multiple reasons.The first most obvious problem is how the{{
}}
interpolation syntax is handled. The code gen seems to create 2l_curly_token
entries on the struct, which is invalid rust, and also not the right token. It should bel_double_curly_token
.The second problem is that the new syntax nodes aren't getting added toAdded nodes toHtmlSyntaxKind
. No idea what the source of that would be.html_kinds_src.rs
I've managed to fix all the codegen issues.