diff --git a/lexers/embedded/kotlin.xml b/lexers/embedded/kotlin.xml index 87bc81c..09c638a 100644 --- a/lexers/embedded/kotlin.xml +++ b/lexers/embedded/kotlin.xml @@ -180,6 +180,9 @@ <rule pattern="@(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)"> <token type="NameDecorator"/> </rule> + <rule pattern="(?:\p{Lu}[_\p{L}]*)(?=\.)"> + <token type="NameClass"/> + </rule> <rule pattern="(?:[_\p{L}][\p{L}\p{N}]*|`@?[_\p{L}][\p{L}\p{N}]+`)"> <token type="Name"/> </rule> diff --git a/lexers/testdata/kotlin.actual b/lexers/testdata/kotlin.actual index 68e05af..a3b8cda 100644 --- a/lexers/testdata/kotlin.actual +++ b/lexers/testdata/kotlin.actual @@ -48,6 +48,8 @@ fun someOperators(a: Int, b: Int) { println( a % b) println(c in a..b) + Logger.info("Hello World") + a %= 2 a && b a *= 2 diff --git a/lexers/testdata/kotlin.expected b/lexers/testdata/kotlin.expected index bf1caaf..ea87ddf 100644 --- a/lexers/testdata/kotlin.expected +++ b/lexers/testdata/kotlin.expected @@ -309,6 +309,13 @@ {"type":"Name","value":"b"}, {"type":"Punctuation","value":")"}, {"type":"Text","value":"\n \n "}, + {"type":"NameClass","value":"Logger"}, + {"type":"Punctuation","value":"."}, + {"type":"Name","value":"info"}, + {"type":"Punctuation","value":"("}, + {"type":"LiteralStringDouble","value":"\"Hello World\""}, + {"type":"Punctuation","value":")"}, + {"type":"Text","value":"\n \n "}, {"type":"Name","value":"a"}, {"type":"Text","value":" "}, {"type":"Operator","value":"%="}, @@ -488,29 +495,29 @@ {"type":"Text","value":"\n\n"}, {"type":"NameDecorator","value":"@Target"}, {"type":"Punctuation","value":"("}, - {"type":"Name","value":"AnnotationTarget"}, + {"type":"NameClass","value":"AnnotationTarget"}, {"type":"Punctuation","value":"."}, {"type":"Name","value":"CLASS"}, {"type":"Punctuation","value":","}, {"type":"Text","value":" "}, - {"type":"Name","value":"AnnotationTarget"}, + {"type":"NameClass","value":"AnnotationTarget"}, {"type":"Punctuation","value":"."}, {"type":"Name","value":"FUNCTION"}, {"type":"Punctuation","value":","}, {"type":"Text","value":"\n "}, - {"type":"Name","value":"AnnotationTarget"}, + {"type":"NameClass","value":"AnnotationTarget"}, {"type":"Punctuation","value":"."}, {"type":"Name","value":"VALUE_PARAMETER"}, {"type":"Punctuation","value":","}, {"type":"Text","value":" "}, - {"type":"Name","value":"AnnotationTarget"}, + {"type":"NameClass","value":"AnnotationTarget"}, {"type":"Punctuation","value":"."}, {"type":"Name","value":"EXPRESSION"}, {"type":"Punctuation","value":")"}, {"type":"Text","value":"\n"}, {"type":"NameDecorator","value":"@Retention"}, {"type":"Punctuation","value":"("}, - {"type":"Name","value":"AnnotationRetention"}, + {"type":"NameClass","value":"AnnotationRetention"}, {"type":"Punctuation","value":"."}, {"type":"Name","value":"SOURCE"}, {"type":"Punctuation","value":")"},