Support optional props in TypeScript lexer #1393
Merged
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.
TypeScript allows a user to mark a property as an optional when defining an interface by appending a question mark to the property name. Rouge's TypeScript lexer doesn't currently support this because the lexer merely uses the states defined in the JavaScript lexer.
This PR prepends a rule to the
statement
state that will match a property name ending with a?
. This will allow matches outside of the interface definition but as syntax checking is a non-goal of Rouge this is not considered to be a problem.The TypeScript visual sample is updated to include an example.
This fixes #1391.