Update Scala lexer to output more differentiated token types. #1040
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.
Motivation
I decided to write this lexer addition because I felt the tokens being output by the current Scala lexer implementation were too general, usually a
Name
token. This PR makes the lexer output some more specific token types. This allows the stylesheet to define more specific colors for different tokens while also leaving it open to having these new token types be styled the same way as before.New Token Types
Name::Function
for def namesName::Variable
for val namesName::Property
for anything used after a.
e.g. method calls, class fields. I choseName::Property
because callingval
s ordef
s on an instance are more or less interchangeableName::Function
for def/function callsBefore:
After: