With large if/else/else if blocks, it's difficult to notice that folding
an if statement also folds the else and else if statements along with
them. By allowing the folds of the if, else, and else if statements to
be separate, the folds are easier to distinguish and are more granular.
Previously java was configured to use doxygen parser for documentation
comments, but javadocs are not doxygen. Inline tags have a different
syntax, block tags are not recognized, and doxygen creates a lot of
errors during highlighting.
Add parser for javadoc comments, with queries for highlights and
injections.
This just fixes the highlighting queries so everything
isn't highlighted as a variable due to the order of the queries
meaning several queries were ignored.
I also changed the node names to be highlighted as `@tag` since KDL is an
xml-like format so `@tag` seemed more appropriate than type and it differentiates it
from the type annotations.
This does NOT update to the latest KDL version 2, that would need
grammar changes. It does "mostly" work with
KDL 2 though (notably unquoted strings seem to throw the grammar off.).
These will be introduced as part of the 0.19.0 release. This commit
updates the lockfile as well as the relevant queries to accommodate the
new expression and "in" now being a keyword.
In Prometheus, label values are treated as strings when used with the
`=` and `!=` operators, and as regular expressions when used with the
`=~` and `!~` operators.
Injecting and then highlighting all label values as regex leads to a
situation where entirely valid **string** label values containing regex
special characters are mistakenly parsed and highlighted as regex. This
results in syntax errors, causing labels to be highlighted incorrectly.
For example, in `foo{bar=~"[a-z]{1,3}"}`, `{` and `}` are regex special
characters, so regex highlighting is expected. However, in
`foo{path="/foo/{id}"}`, `{` and `}` are just part of the string and
have no special meaning, so the whole value should be highlighted as a
string.
Since Java 23, java documentation supports markdown.
It is supported by a '///' line comment followed by mandatory
white space: https://openjdk.org/jeps/467