When a class name is used in an expression to access some kind of static
content, this class name is now highlighted. In other words, in
'System.out.println("")', 'System' must now be colored.
Enum values that are often/always written in uppercase are now handled
and considered as constants. They are highlighted within the Enum
declaration and outside of it in case statements or through the use of
the dot operator on an enum.
At the end of each import statement, the class must be highlighted with
the Type highlight color. However, up to now, the semicolon was also
highlighted.
It has been fixed by removing the semicolon from the match thanks to the
'\@=' expression.
The names that followed the 'extends' and 'implements' keywords were not
properly colored. Two new syntax have been added to deal with that case.
Note: Only one could have done the job.
In some case, the highlight of some generic types was overflowing:
public void method(List<String> strings, List<Integer> integers) {}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
overflow of the first parameter
It corrects this behavior by restraining the type highlight before the
parameter name.
Up to now the following text 'new ArrayList<>()' was not highlighted
correctly. The modification that has been done highlights it like a
normal type name.
The Java syntax is located under the ./after/syntax repository.
The syntax provides mainly rules for methods, types and annotations. All
syntax rules have the prefix 'javaOdyssey'.