From 8351e04e4e4b958d2f04078c6ad5512ff45d1b2f Mon Sep 17 00:00:00 2001 From: Animeshz Date: Tue, 9 Feb 2021 21:33:22 +0530 Subject: [PATCH 1/5] Use storage scope for annotations's text part and improve annotation regex. --- dist/Kotlin.JSON-tmLanguage | 14 ++++++-------- dist/Kotlin.YAML-tmLanguage | 13 +++++-------- dist/Kotlin.tmLanguage | 19 ++++++++----------- src/annotations.YAML-tmLanguage | 12 +++++------- 4 files changed, 24 insertions(+), 34 deletions(-) diff --git a/dist/Kotlin.JSON-tmLanguage b/dist/Kotlin.JSON-tmLanguage index a74bdd6..bd5920f 100644 --- a/dist/Kotlin.JSON-tmLanguage +++ b/dist/Kotlin.JSON-tmLanguage @@ -3,14 +3,12 @@ "annotations": { "patterns": [ { - "comment": "Use-site annotation", - "match": "@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:\\s*?[a-zA-Z_]\\w*", - "name": "meta.annotation.kotlin" - }, - { - "begin": "@[a-zA-Z_]\\w*\\s*(\\()", + "begin": "(@(?:(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:\\s*)?[a-zA-Z_]\\w*)(\\()", "beginCaptures": { "1": { + "name": "storage.type.annotation.kotlin" + }, + "2": { "name": "punctuation.definition.arguments.begin.kotlin" } }, @@ -32,8 +30,8 @@ ] }, { - "match": "@[a-zA-Z_]\\w*", - "name": "meta.annotation.kotlin" + "match": "@(?:(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:\\s*)?[a-zA-Z_]\\w*", + "name": "storage.type.annotation.kotlin" } ] }, diff --git a/dist/Kotlin.YAML-tmLanguage b/dist/Kotlin.YAML-tmLanguage index 80924cf..5a2b409 100644 --- a/dist/Kotlin.YAML-tmLanguage +++ b/dist/Kotlin.YAML-tmLanguage @@ -2,13 +2,10 @@ repository: annotations: patterns: - - comment: 'Use-site annotation' - match: '@(?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*?[a-zA-Z_]\w*' - name: meta.annotation.kotlin - - - begin: '@[a-zA-Z_]\w*\s*(\()' + begin: '(@(?:(?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?[a-zA-Z_]\w*)(\()' beginCaptures: - '1': {name: punctuation.definition.arguments.begin.kotlin} + '1': {name: storage.type.annotation.kotlin} + '2': {name: punctuation.definition.arguments.begin.kotlin} end: \) endCaptures: '0': {name: punctuation.definition.arguments.end.kotlin} @@ -17,8 +14,8 @@ repository: - {include: '#code'} - {match: ',', name: punctuation.seperator.property.kotlin} - - match: '@[a-zA-Z_]\w*' - name: meta.annotation.kotlin + match: '@(?:(?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?[a-zA-Z_]\w*' + name: storage.type.annotation.kotlin class-literal: patterns: - diff --git a/dist/Kotlin.tmLanguage b/dist/Kotlin.tmLanguage index 82ba286..0568298 100644 --- a/dist/Kotlin.tmLanguage +++ b/dist/Kotlin.tmLanguage @@ -8,20 +8,17 @@ patterns - - comment - Use-site annotation - match - @(?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*?[a-zA-Z_]\w* - name - meta.annotation.kotlin - begin - @[a-zA-Z_]\w*\s*(\() + (@(?:(?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?[a-zA-Z_]\w*)(\() beginCaptures 1 + + name + storage.type.annotation.kotlin + + 2 name punctuation.definition.arguments.begin.kotlin @@ -55,9 +52,9 @@ match - @[a-zA-Z_]\w* + @(?:(?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?[a-zA-Z_]\w* name - meta.annotation.kotlin + storage.type.annotation.kotlin diff --git a/src/annotations.YAML-tmLanguage b/src/annotations.YAML-tmLanguage index 7904ccf..82e6776 100644 --- a/src/annotations.YAML-tmLanguage +++ b/src/annotations.YAML-tmLanguage @@ -2,13 +2,11 @@ repository: annotations: patterns: - - comment: 'Use-site annotation' - match: '@(?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*?[a-zA-Z_]\w*' - name: meta.annotation.kotlin - - - begin: '@[a-zA-Z_]\w*\s*(\()' + begin: '(@(?:(?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?[a-zA-Z_]\w*)(\()' beginCaptures: '1': + name: storage.type.annotation.kotlin + '2': name: punctuation.definition.arguments.begin.kotlin end: \) endCaptures: @@ -22,5 +20,5 @@ repository: match: ',' name: punctuation.seperator.property.kotlin - - match: '@[a-zA-Z_]\w*' - name: meta.annotation.kotlin + match: '@(?:(?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?[a-zA-Z_]\w*' + name: storage.type.annotation.kotlin From db251e142b0b2cb062d244ebc2fecacaf48c5802 Mon Sep 17 00:00:00 2001 From: Animesh Sahu Date: Tue, 9 Feb 2021 21:59:32 +0530 Subject: [PATCH 2/5] Fix failing tests, due to change in scopes. --- snapshots/corpus.kt.snap | 28 ++++++++++++++-------------- test/Functions.test.kt | 2 +- test/annotations.test.kt | 25 +++++++++++++------------ 3 files changed, 28 insertions(+), 27 deletions(-) diff --git a/snapshots/corpus.kt.snap b/snapshots/corpus.kt.snap index 289e489..83b8013 100644 --- a/snapshots/corpus.kt.snap +++ b/snapshots/corpus.kt.snap @@ -38,7 +38,7 @@ # ^ source.kotlin meta.function.kotlin # ^^^^ source.kotlin meta.function.kotlin entity.name.function.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin punctuation.section.group.begin.kotlin punctuation.definition.parameters.begin.kotlin -# ^^^^^^^^ source.kotlin meta.function.kotlin meta.parameters.kotlin meta.annotation.kotlin +# ^^^^^^^^ source.kotlin meta.function.kotlin meta.parameters.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin # ^^^^ source.kotlin meta.function.kotlin meta.parameters.kotlin variable.parameter.function.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin keyword.operator.declaration.kotlin @@ -165,7 +165,7 @@ # ^^ source.kotlin constant.numeric.integer.kotlin > >@get:Rule -#^^^^^^^^^ source.kotlin meta.annotation.kotlin +#^^^^^^^^^ source.kotlin storage.type.annotation.kotlin >val activityRule = ActivityTestRule(SplashActivity::class.java) #^^^ source.kotlin storage.type.kotlin # ^^^^^^^^^^^^^^ source.kotlin @@ -350,7 +350,7 @@ # ^ source.kotlin # ^^^ source.kotlin meta.function.kotlin keyword.other.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin punctuation.section.group.begin.kotlin punctuation.definition.parameters.begin.kotlin -# ^^^^^^^ source.kotlin meta.function.kotlin meta.parameters.kotlin meta.annotation.kotlin +# ^^^^^^^ source.kotlin meta.function.kotlin meta.parameters.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin variable.parameter.function.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin keyword.operator.declaration.kotlin @@ -840,12 +840,12 @@ #^^ source.kotlin punctuation.definition.comment.kotlin comment.line.double-slash.kotlin # ^^^^^^^^^^^^^^^^^^^^ source.kotlin punctuation.definition.comment.kotlin >@file:JvmName("Foo") -#^^^^^^^^^^^^^ source.kotlin meta.annotation.kotlin -# ^ source.kotlin meta.group.kotlin punctuation.section.group.begin.kotlin -# ^ source.kotlin meta.group.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin -# ^^^ source.kotlin meta.group.kotlin string.quoted.double.kotlin -# ^ source.kotlin meta.group.kotlin string.quoted.double.kotlin punctuation.definition.string.end.kotlin -# ^ source.kotlin meta.group.kotlin punctuation.section.group.end.kotlin +#^^^^^^^^^^^^^ source.kotlin meta.annotation.kotlin storage.type.annotation.kotlin +# ^ source.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin +# ^ source.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin +# ^^^ source.kotlin meta.annotation.kotlin string.quoted.double.kotlin +# ^ source.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.end.kotlin +# ^ source.kotlin meta.annotation.kotlin punctuation.definition.arguments.end.kotlin >private sealed class InjectedClass @Inject constructor(val test: Int = 50, var anotherVar: String = "hello world") : SomeSuperClass(test, anotherVar) { #^^^^^^^ source.kotlin storage.modifier.kotlin # ^ source.kotlin @@ -861,7 +861,7 @@ # ^ source.kotlin meta.class.kotlin entity.name.type.class.kotlin # ^ source.kotlin meta.class.kotlin punctuation.bracket.angle.end.kotlin # ^ source.kotlin meta.class.kotlin -# ^^^^^^^ source.kotlin meta.class.kotlin meta.annotation.kotlin +# ^^^^^^^ source.kotlin meta.class.kotlin storage.type.annotation.kotlin # ^^^^^^^^^^^^ source.kotlin meta.class.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin punctuation.section.group.begin.kotlin punctuation.definition.parameters.begin.kotlin # ^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin storage.type.kotlin @@ -959,7 +959,7 @@ # ^^^ source.kotlin # ^ source.kotlin keyword.operator.assignment.kotlin # ^ source.kotlin -# ^^^^^^^^^^^^ source.kotlin meta.annotation.kotlin +# ^^^^^^^^^^^^ source.kotlin storage.type.annotation.kotlin # ^ source.kotlin # ^ source.kotlin meta.block.kotlin punctuation.section.group.begin.kotlin # ^ source.kotlin meta.block.kotlin @@ -1022,7 +1022,7 @@ # ^ source.kotlin meta.class.kotlin # ^^^^^^^^ source.kotlin meta.class.kotlin entity.name.class.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin punctuation.section.group.begin.kotlin punctuation.definition.parameters.begin.kotlin -# ^^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin +# ^^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin # ^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin @@ -1038,7 +1038,7 @@ # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin punctuation.seperator.kotlin > @SerializedName("param2") val param2: String, #^^^^^^^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin -# ^^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin +# ^^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin # ^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin @@ -1054,7 +1054,7 @@ # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin punctuation.seperator.kotlin > @SerializedName("param3") val param3: String) { #^^^^^^^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin -# ^^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin +# ^^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin # ^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin diff --git a/test/Functions.test.kt b/test/Functions.test.kt index 50cf34d..750522e 100644 --- a/test/Functions.test.kt +++ b/test/Functions.test.kt @@ -4,7 +4,7 @@ //^^^ keyword.other.kotlin // ^^^^ entity.name.function.kotlin // ^ meta.parameters.kotlin punctuation.section.group.begin.kotlin punctuation.definition.parameters.begin.kotlin -// ^^^^^^^^ meta.parameters.kotlin meta.annotation.kotlin +// ^^^^^^^^ meta.parameters.kotlin storage.type.annotation.kotlin // ^ meta.parameters.kotlin // ^^^^ meta.parameters.kotlin variable.parameter.function.kotlin // ^ meta.parameters.kotlin keyword.operator.declaration.kotlin diff --git a/test/annotations.test.kt b/test/annotations.test.kt index 0bf8f8e..b3d362b 100644 --- a/test/annotations.test.kt +++ b/test/annotations.test.kt @@ -1,15 +1,16 @@ // SYNTAX TEST "source.kotlin" "Annotations" -@file:JvmName("Foo") -//<------------- meta.annotation.kotlin -// ^ punctuation.section.group.begin.kotlin -// ^ meta.group.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin -// ^^^ meta.group.kotlin string.quoted.double.kotlin -// ^ meta.group.kotlin string.quoted.double.kotlin punctuation.definition.string.end.kotlin -// ^ meta.group.kotlin punctuation.section.group.end.kotlin + @file:JvmName("Foo") +//^^^^^^^^^^^^^^^^^^^^ meta.annotation.kotlin +//^^^^^^^^^^^^^ storage.type.annotation.kotlin +// ^ punctuation.definition.arguments.begin.kotlin +// ^ meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin +// ^^^ meta.annotation.kotlin string.quoted.double.kotlin +// ^ meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.end.kotlin +// ^ meta.annotation.kotlin punctuation.definition.arguments.end.kotlin data class Response(@SerializedName("param1") val param1: String, -// ^^^^^^^^^^^^^^^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin +// ^^^^^^^^^^^^^^^ meta.class.kotlin meta.parameters.kotlin storage.type.annotation.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin // ^^^^^^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin @@ -22,7 +23,7 @@ data class Response(@SerializedName("param1") val param1: String, // ^ meta.class.kotlin meta.parameters.kotlin punctuation.seperator.kotlin @SerializedName("param2") val param2: String, -// ^^^^^^^^^^^^^^^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin +// ^^^^^^^^^^^^^^^ meta.class.kotlin meta.parameters.kotlin storage.type.annotation.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin // ^^^^^^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin @@ -34,7 +35,7 @@ data class Response(@SerializedName("param1") val param1: String, // ^^^^^^ meta.class.kotlin meta.parameters.kotlin support.class.kotlin // ^ meta.class.kotlin meta.parameters.kotlin punctuation.seperator.kotlin @SerializedName("param3") val param3: String) { -// ^^^^^^^^^^^^^^^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin +// ^^^^^^^^^^^^^^^ meta.class.kotlin meta.parameters.kotlin storage.type.annotation.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin // ^^^^^^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin @@ -50,13 +51,13 @@ data class Response(@SerializedName("param1") val param1: String, class Example { @set:Inject -// ^^^^^^^^^^^ meta.annotation.kotlin +// ^^^^^^^^^^^ storage.type.annotation.kotlin var collaborator: Collaborator } @MultiLineAnnotation( -//^^^^^^^^^^^^^^^^^^^^ meta.annotation.kotlin +//^^^^^^^^^^^^^^^^^^^^ meta.annotation.kotlin storage.type.annotation.kotlin // ^ meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin "One", // ^ meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin From aff0bab3ee958b31a6d2c5cfbee1318c676f21e5 Mon Sep 17 00:00:00 2001 From: Animesh Sahu Date: Tue, 16 Feb 2021 09:18:17 +0530 Subject: [PATCH 3/5] Changes on annotation captures, assign proper scopes to annotation elements. --- dist/Kotlin.JSON-tmLanguage | 25 +++++++++-- dist/Kotlin.YAML-tmLanguage | 16 ++++--- dist/Kotlin.tmLanguage | 36 ++++++++++++++-- snapshots/corpus.kt.snap | 29 +++++++++---- src/annotations.YAML-tmLanguage | 19 +++++++-- src/generic.YAML-tmLanguage | 75 ++++++++++++++++----------------- src/ident.YAML-tmLanguage | 2 - src/keywords.YAML-tmLanguage | 1 - test/Functions.test.kt | 3 +- test/annotations.test.kt | 23 ++++++---- 10 files changed, 153 insertions(+), 76 deletions(-) diff --git a/dist/Kotlin.JSON-tmLanguage b/dist/Kotlin.JSON-tmLanguage index bd5920f..8e41b32 100644 --- a/dist/Kotlin.JSON-tmLanguage +++ b/dist/Kotlin.JSON-tmLanguage @@ -3,12 +3,18 @@ "annotations": { "patterns": [ { - "begin": "(@(?:(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:\\s*)?[a-zA-Z_]\\w*)(\\()", + "begin": "(@)((?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:\\s*)?([a-zA-Z_]\\w*)(\\()", "beginCaptures": { "1": { - "name": "storage.type.annotation.kotlin" + "name": "punctuation.definition.annotation.kotlin" }, "2": { + "name": "punctuation.definition.keyword.kotlin" + }, + "3": { + "name": "storage.type.annotation.kotlin" + }, + "4": { "name": "punctuation.definition.arguments.begin.kotlin" } }, @@ -30,8 +36,19 @@ ] }, { - "match": "@(?:(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:\\s*)?[a-zA-Z_]\\w*", - "name": "storage.type.annotation.kotlin" + "match": "(@)((?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:\\s*)?([a-zA-Z_]\\w*)", + "captures": { + "1": { + "name": "punctuation.definition.annotation.kotlin" + }, + "2": { + "name": "punctuation.definition.keyword.kotlin" + }, + "3": { + "name": "storage.type.annotation.kotlin" + } + }, + "name": "meta.annotation.kotlin" } ] }, diff --git a/dist/Kotlin.YAML-tmLanguage b/dist/Kotlin.YAML-tmLanguage index 5a2b409..27cef70 100644 --- a/dist/Kotlin.YAML-tmLanguage +++ b/dist/Kotlin.YAML-tmLanguage @@ -2,10 +2,12 @@ repository: annotations: patterns: - - begin: '(@(?:(?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?[a-zA-Z_]\w*)(\()' + begin: '(@)((?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?([a-zA-Z_]\w*)(\()' beginCaptures: - '1': {name: storage.type.annotation.kotlin} - '2': {name: punctuation.definition.arguments.begin.kotlin} + '1': {name: punctuation.definition.annotation.kotlin} + '2': {name: punctuation.definition.keyword.kotlin} + '3': {name: storage.type.annotation.kotlin} + '4': {name: punctuation.definition.arguments.begin.kotlin} end: \) endCaptures: '0': {name: punctuation.definition.arguments.end.kotlin} @@ -14,8 +16,12 @@ repository: - {include: '#code'} - {match: ',', name: punctuation.seperator.property.kotlin} - - match: '@(?:(?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?[a-zA-Z_]\w*' - name: storage.type.annotation.kotlin + match: '(@)((?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?([a-zA-Z_]\w*)' + captures: + '1': {name: punctuation.definition.annotation.kotlin} + '2': {name: punctuation.definition.keyword.kotlin} + '3': {name: storage.type.annotation.kotlin} + name: meta.annotation.kotlin class-literal: patterns: - diff --git a/dist/Kotlin.tmLanguage b/dist/Kotlin.tmLanguage index 0568298..22f23f7 100644 --- a/dist/Kotlin.tmLanguage +++ b/dist/Kotlin.tmLanguage @@ -10,15 +10,25 @@ begin - (@(?:(?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?[a-zA-Z_]\w*)(\() + (@)((?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?([a-zA-Z_]\w*)(\() beginCaptures 1 name - storage.type.annotation.kotlin + punctuation.definition.annotation.kotlin 2 + + name + punctuation.definition.keyword.kotlin + + 3 + + name + storage.type.annotation.kotlin + + 4 name punctuation.definition.arguments.begin.kotlin @@ -52,9 +62,27 @@ match - @(?:(?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?[a-zA-Z_]\w* + (@)((?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?([a-zA-Z_]\w*) + captures + + 1 + + name + punctuation.definition.annotation.kotlin + + 2 + + name + punctuation.definition.keyword.kotlin + + 3 + + name + storage.type.annotation.kotlin + + name - storage.type.annotation.kotlin + meta.annotation.kotlin diff --git a/snapshots/corpus.kt.snap b/snapshots/corpus.kt.snap index 83b8013..97efb59 100644 --- a/snapshots/corpus.kt.snap +++ b/snapshots/corpus.kt.snap @@ -38,7 +38,8 @@ # ^ source.kotlin meta.function.kotlin # ^^^^ source.kotlin meta.function.kotlin entity.name.function.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin punctuation.section.group.begin.kotlin punctuation.definition.parameters.begin.kotlin -# ^^^^^^^^ source.kotlin meta.function.kotlin meta.parameters.kotlin storage.type.annotation.kotlin +# ^ source.kotlin meta.function.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +# ^^^^^^^ source.kotlin meta.function.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin # ^^^^ source.kotlin meta.function.kotlin meta.parameters.kotlin variable.parameter.function.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin keyword.operator.declaration.kotlin @@ -165,7 +166,9 @@ # ^^ source.kotlin constant.numeric.integer.kotlin > >@get:Rule -#^^^^^^^^^ source.kotlin storage.type.annotation.kotlin +#^ source.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +# ^^^^ source.kotlin meta.annotation.kotlin punctuation.definition.keyword.kotlin +# ^^^^ source.kotlin meta.annotation.kotlin storage.type.annotation.kotlin >val activityRule = ActivityTestRule(SplashActivity::class.java) #^^^ source.kotlin storage.type.kotlin # ^^^^^^^^^^^^^^ source.kotlin @@ -350,7 +353,8 @@ # ^ source.kotlin # ^^^ source.kotlin meta.function.kotlin keyword.other.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin punctuation.section.group.begin.kotlin punctuation.definition.parameters.begin.kotlin -# ^^^^^^^ source.kotlin meta.function.kotlin meta.parameters.kotlin storage.type.annotation.kotlin +# ^ source.kotlin meta.function.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +# ^^^^^^ source.kotlin meta.function.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin variable.parameter.function.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin keyword.operator.declaration.kotlin @@ -840,7 +844,9 @@ #^^ source.kotlin punctuation.definition.comment.kotlin comment.line.double-slash.kotlin # ^^^^^^^^^^^^^^^^^^^^ source.kotlin punctuation.definition.comment.kotlin >@file:JvmName("Foo") -#^^^^^^^^^^^^^ source.kotlin meta.annotation.kotlin storage.type.annotation.kotlin +#^ source.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +# ^^^^^^^^^^^^ source.kotlin meta.annotation.kotlin punctuation.definition.keyword.kotlin +# ^^^^^^^ source.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin # ^ source.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin # ^^^ source.kotlin meta.annotation.kotlin string.quoted.double.kotlin @@ -861,7 +867,8 @@ # ^ source.kotlin meta.class.kotlin entity.name.type.class.kotlin # ^ source.kotlin meta.class.kotlin punctuation.bracket.angle.end.kotlin # ^ source.kotlin meta.class.kotlin -# ^^^^^^^ source.kotlin meta.class.kotlin storage.type.annotation.kotlin +# ^ source.kotlin meta.class.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +# ^^^^^^ source.kotlin meta.class.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^^^^^^^^^^^^ source.kotlin meta.class.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin punctuation.section.group.begin.kotlin punctuation.definition.parameters.begin.kotlin # ^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin storage.type.kotlin @@ -959,7 +966,8 @@ # ^^^ source.kotlin # ^ source.kotlin keyword.operator.assignment.kotlin # ^ source.kotlin -# ^^^^^^^^^^^^ source.kotlin storage.type.annotation.kotlin +# ^ source.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +# ^^^^^^^^^^^ source.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin # ^ source.kotlin meta.block.kotlin punctuation.section.group.begin.kotlin # ^ source.kotlin meta.block.kotlin @@ -1022,7 +1030,8 @@ # ^ source.kotlin meta.class.kotlin # ^^^^^^^^ source.kotlin meta.class.kotlin entity.name.class.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin punctuation.section.group.begin.kotlin punctuation.definition.parameters.begin.kotlin -# ^^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin +# ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +# ^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin # ^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin @@ -1038,7 +1047,8 @@ # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin punctuation.seperator.kotlin > @SerializedName("param2") val param2: String, #^^^^^^^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin -# ^^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin +# ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +# ^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin # ^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin @@ -1054,7 +1064,8 @@ # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin punctuation.seperator.kotlin > @SerializedName("param3") val param3: String) { #^^^^^^^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin -# ^^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin +# ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +# ^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin # ^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin diff --git a/src/annotations.YAML-tmLanguage b/src/annotations.YAML-tmLanguage index 82e6776..24deadb 100644 --- a/src/annotations.YAML-tmLanguage +++ b/src/annotations.YAML-tmLanguage @@ -2,11 +2,15 @@ repository: annotations: patterns: - - begin: '(@(?:(?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?[a-zA-Z_]\w*)(\()' + begin: '(@)((?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?([a-zA-Z_]\w*)(\()' beginCaptures: '1': - name: storage.type.annotation.kotlin + name: punctuation.definition.annotation.kotlin '2': + name: punctuation.definition.keyword.kotlin + '3': + name: storage.type.annotation.kotlin + '4': name: punctuation.definition.arguments.begin.kotlin end: \) endCaptures: @@ -20,5 +24,12 @@ repository: match: ',' name: punctuation.seperator.property.kotlin - - match: '@(?:(?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?[a-zA-Z_]\w*' - name: storage.type.annotation.kotlin + match: '(@)((?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?([a-zA-Z_]\w*)' + captures: + '1': + name: punctuation.definition.annotation.kotlin + '2': + name: punctuation.definition.keyword.kotlin + '3': + name: storage.type.annotation.kotlin + name: meta.annotation.kotlin diff --git a/src/generic.YAML-tmLanguage b/src/generic.YAML-tmLanguage index cedf010..c1232f1 100644 --- a/src/generic.YAML-tmLanguage +++ b/src/generic.YAML-tmLanguage @@ -1,38 +1,37 @@ -repository: - generic: - patterns: - - - begin: '(?=\<(?:[A-Z_]|\*|in|out))' - end: '(?<=\>)(?!\>)' - patterns: - - - match: '<' - name: punctuation.bracket.angle.begin.kotlin - - - match: '>' - name: punctuation.bracket.angle.end.kotlin - - - match: '\*' - name: entity.name.type.generic.wildcard.kotlin - - - include: '#generic-parameter-list' - - - match: ',' - name: punctuation.seperator.kotlin - - repository: - generic-parameter-list: - patterns: - - - include: '#annotations' - - - match: '\b(in|out)\b' - name: storage.modifier.generic.variance.kotlin - - - include: '#built-in-types' - - - include: '#class-ident' - - - include: '#generic' - - - include: '#operators' +repository: + generic: + patterns: + - + begin: '(?=\<(?:[A-Z_]|\*|in|out))' + end: '(?<=\>)(?!\>)' + patterns: + - + match: '<' + name: punctuation.bracket.angle.begin.kotlin + - + match: '>' + name: punctuation.bracket.angle.end.kotlin + - + match: '\*' + name: entity.name.type.generic.wildcard.kotlin + - + include: '#generic-parameter-list' + - + match: ',' + name: punctuation.seperator.kotlin + repository: + generic-parameter-list: + patterns: + - + include: '#annotations' + - + match: \b(in|out)\b + name: storage.modifier.generic.variance.kotlin + - + include: '#built-in-types' + - + include: '#class-ident' + - + include: '#generic' + - + include: '#operators' diff --git a/src/ident.YAML-tmLanguage b/src/ident.YAML-tmLanguage index 6d71599..ff54900 100644 --- a/src/ident.YAML-tmLanguage +++ b/src/ident.YAML-tmLanguage @@ -1,5 +1,3 @@ -# remove match to original master branch - repository: class-ident: patterns: diff --git a/src/keywords.YAML-tmLanguage b/src/keywords.YAML-tmLanguage index cb914dd..407082f 100644 --- a/src/keywords.YAML-tmLanguage +++ b/src/keywords.YAML-tmLanguage @@ -37,7 +37,6 @@ repository: - match: \b(companion|object)\b name: storage.type.kotlin - operators: patterns: - diff --git a/test/Functions.test.kt b/test/Functions.test.kt index 750522e..e408749 100644 --- a/test/Functions.test.kt +++ b/test/Functions.test.kt @@ -4,7 +4,8 @@ //^^^ keyword.other.kotlin // ^^^^ entity.name.function.kotlin // ^ meta.parameters.kotlin punctuation.section.group.begin.kotlin punctuation.definition.parameters.begin.kotlin -// ^^^^^^^^ meta.parameters.kotlin storage.type.annotation.kotlin +// ^ meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +// ^^^^^^^ meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin // ^ meta.parameters.kotlin // ^^^^ meta.parameters.kotlin variable.parameter.function.kotlin // ^ meta.parameters.kotlin keyword.operator.declaration.kotlin diff --git a/test/annotations.test.kt b/test/annotations.test.kt index b3d362b..7a80365 100644 --- a/test/annotations.test.kt +++ b/test/annotations.test.kt @@ -1,16 +1,18 @@ // SYNTAX TEST "source.kotlin" "Annotations" @file:JvmName("Foo") -//^^^^^^^^^^^^^^^^^^^^ meta.annotation.kotlin -//^^^^^^^^^^^^^ storage.type.annotation.kotlin -// ^ punctuation.definition.arguments.begin.kotlin +//^ meta.annotation.kotlin punctuation.definition.annotation.kotlin +// ^^^^^ meta.annotation.kotlin punctuation.definition.keyword.kotlin +// ^^^^^^^ meta.annotation.kotlin storage.type.annotation.kotlin +// ^ meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin // ^ meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin // ^^^ meta.annotation.kotlin string.quoted.double.kotlin // ^ meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.end.kotlin // ^ meta.annotation.kotlin punctuation.definition.arguments.end.kotlin data class Response(@SerializedName("param1") val param1: String, -// ^^^^^^^^^^^^^^^ meta.class.kotlin meta.parameters.kotlin storage.type.annotation.kotlin +// ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +// ^^^^^^^^^^^^^^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin // ^^^^^^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin @@ -23,7 +25,8 @@ data class Response(@SerializedName("param1") val param1: String, // ^ meta.class.kotlin meta.parameters.kotlin punctuation.seperator.kotlin @SerializedName("param2") val param2: String, -// ^^^^^^^^^^^^^^^ meta.class.kotlin meta.parameters.kotlin storage.type.annotation.kotlin +// ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +// ^^^^^^^^^^^^^^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin // ^^^^^^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin @@ -35,7 +38,8 @@ data class Response(@SerializedName("param1") val param1: String, // ^^^^^^ meta.class.kotlin meta.parameters.kotlin support.class.kotlin // ^ meta.class.kotlin meta.parameters.kotlin punctuation.seperator.kotlin @SerializedName("param3") val param3: String) { -// ^^^^^^^^^^^^^^^ meta.class.kotlin meta.parameters.kotlin storage.type.annotation.kotlin +// ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +// ^^^^^^^^^^^^^^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin // ^^^^^^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin @@ -51,13 +55,16 @@ data class Response(@SerializedName("param1") val param1: String, class Example { @set:Inject -// ^^^^^^^^^^^ storage.type.annotation.kotlin +// ^ meta.annotation.kotlin punctuation.definition.annotation.kotlin +// ^^^^ meta.annotation.kotlin punctuation.definition.keyword.kotlin +// ^^^^^^ meta.annotation.kotlin storage.type.annotation.kotlin var collaborator: Collaborator } @MultiLineAnnotation( -//^^^^^^^^^^^^^^^^^^^^ meta.annotation.kotlin storage.type.annotation.kotlin +//^ meta.annotation.kotlin punctuation.definition.annotation.kotlin +// ^^^^^^^^^^^^^^^^^^^ meta.annotation.kotlin storage.type.annotation.kotlin // ^ meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin "One", // ^ meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin From eee9ebc266d14d9710f735205c541afc44c60f3f Mon Sep 17 00:00:00 2001 From: Animesh Sahu Date: Tue, 16 Feb 2021 09:27:00 +0530 Subject: [PATCH 4/5] Rename annotation start keyword. --- dist/Kotlin.JSON-tmLanguage | 4 ++-- dist/Kotlin.YAML-tmLanguage | 4 ++-- dist/Kotlin.tmLanguage | 4 ++-- snapshots/corpus.kt.snap | 18 +++++++++--------- src/annotations.YAML-tmLanguage | 4 ++-- test/Functions.test.kt | 2 +- test/annotations.test.kt | 12 ++++++------ 7 files changed, 24 insertions(+), 24 deletions(-) diff --git a/dist/Kotlin.JSON-tmLanguage b/dist/Kotlin.JSON-tmLanguage index 8e41b32..a39b8d3 100644 --- a/dist/Kotlin.JSON-tmLanguage +++ b/dist/Kotlin.JSON-tmLanguage @@ -6,7 +6,7 @@ "begin": "(@)((?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:\\s*)?([a-zA-Z_]\\w*)(\\()", "beginCaptures": { "1": { - "name": "punctuation.definition.annotation.kotlin" + "name": "keyword.control.annotation.kotlin" }, "2": { "name": "punctuation.definition.keyword.kotlin" @@ -39,7 +39,7 @@ "match": "(@)((?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:\\s*)?([a-zA-Z_]\\w*)", "captures": { "1": { - "name": "punctuation.definition.annotation.kotlin" + "name": "keyword.control.annotation.kotlin" }, "2": { "name": "punctuation.definition.keyword.kotlin" diff --git a/dist/Kotlin.YAML-tmLanguage b/dist/Kotlin.YAML-tmLanguage index 27cef70..fa6bef0 100644 --- a/dist/Kotlin.YAML-tmLanguage +++ b/dist/Kotlin.YAML-tmLanguage @@ -4,7 +4,7 @@ repository: - begin: '(@)((?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?([a-zA-Z_]\w*)(\()' beginCaptures: - '1': {name: punctuation.definition.annotation.kotlin} + '1': {name: keyword.control.annotation.kotlin} '2': {name: punctuation.definition.keyword.kotlin} '3': {name: storage.type.annotation.kotlin} '4': {name: punctuation.definition.arguments.begin.kotlin} @@ -18,7 +18,7 @@ repository: - match: '(@)((?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?([a-zA-Z_]\w*)' captures: - '1': {name: punctuation.definition.annotation.kotlin} + '1': {name: keyword.control.annotation.kotlin} '2': {name: punctuation.definition.keyword.kotlin} '3': {name: storage.type.annotation.kotlin} name: meta.annotation.kotlin diff --git a/dist/Kotlin.tmLanguage b/dist/Kotlin.tmLanguage index 22f23f7..291c3af 100644 --- a/dist/Kotlin.tmLanguage +++ b/dist/Kotlin.tmLanguage @@ -16,7 +16,7 @@ 1 name - punctuation.definition.annotation.kotlin + keyword.control.annotation.kotlin 2 @@ -68,7 +68,7 @@ 1 name - punctuation.definition.annotation.kotlin + keyword.control.annotation.kotlin 2 diff --git a/snapshots/corpus.kt.snap b/snapshots/corpus.kt.snap index 97efb59..72eadf0 100644 --- a/snapshots/corpus.kt.snap +++ b/snapshots/corpus.kt.snap @@ -38,7 +38,7 @@ # ^ source.kotlin meta.function.kotlin # ^^^^ source.kotlin meta.function.kotlin entity.name.function.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin punctuation.section.group.begin.kotlin punctuation.definition.parameters.begin.kotlin -# ^ source.kotlin meta.function.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +# ^ source.kotlin meta.function.kotlin meta.parameters.kotlin meta.annotation.kotlin keyword.control.annotation.kotlin # ^^^^^^^ source.kotlin meta.function.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin # ^^^^ source.kotlin meta.function.kotlin meta.parameters.kotlin variable.parameter.function.kotlin @@ -166,7 +166,7 @@ # ^^ source.kotlin constant.numeric.integer.kotlin > >@get:Rule -#^ source.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +#^ source.kotlin meta.annotation.kotlin keyword.control.annotation.kotlin # ^^^^ source.kotlin meta.annotation.kotlin punctuation.definition.keyword.kotlin # ^^^^ source.kotlin meta.annotation.kotlin storage.type.annotation.kotlin >val activityRule = ActivityTestRule(SplashActivity::class.java) @@ -353,7 +353,7 @@ # ^ source.kotlin # ^^^ source.kotlin meta.function.kotlin keyword.other.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin punctuation.section.group.begin.kotlin punctuation.definition.parameters.begin.kotlin -# ^ source.kotlin meta.function.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +# ^ source.kotlin meta.function.kotlin meta.parameters.kotlin meta.annotation.kotlin keyword.control.annotation.kotlin # ^^^^^^ source.kotlin meta.function.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin # ^ source.kotlin meta.function.kotlin meta.parameters.kotlin variable.parameter.function.kotlin @@ -844,7 +844,7 @@ #^^ source.kotlin punctuation.definition.comment.kotlin comment.line.double-slash.kotlin # ^^^^^^^^^^^^^^^^^^^^ source.kotlin punctuation.definition.comment.kotlin >@file:JvmName("Foo") -#^ source.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +#^ source.kotlin meta.annotation.kotlin keyword.control.annotation.kotlin # ^^^^^^^^^^^^ source.kotlin meta.annotation.kotlin punctuation.definition.keyword.kotlin # ^^^^^^^ source.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin @@ -867,7 +867,7 @@ # ^ source.kotlin meta.class.kotlin entity.name.type.class.kotlin # ^ source.kotlin meta.class.kotlin punctuation.bracket.angle.end.kotlin # ^ source.kotlin meta.class.kotlin -# ^ source.kotlin meta.class.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +# ^ source.kotlin meta.class.kotlin meta.annotation.kotlin keyword.control.annotation.kotlin # ^^^^^^ source.kotlin meta.class.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^^^^^^^^^^^^ source.kotlin meta.class.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin punctuation.section.group.begin.kotlin punctuation.definition.parameters.begin.kotlin @@ -966,7 +966,7 @@ # ^^^ source.kotlin # ^ source.kotlin keyword.operator.assignment.kotlin # ^ source.kotlin -# ^ source.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +# ^ source.kotlin meta.annotation.kotlin keyword.control.annotation.kotlin # ^^^^^^^^^^^ source.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin # ^ source.kotlin meta.block.kotlin punctuation.section.group.begin.kotlin @@ -1030,7 +1030,7 @@ # ^ source.kotlin meta.class.kotlin # ^^^^^^^^ source.kotlin meta.class.kotlin entity.name.class.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin punctuation.section.group.begin.kotlin punctuation.definition.parameters.begin.kotlin -# ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +# ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin keyword.control.annotation.kotlin # ^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin @@ -1047,7 +1047,7 @@ # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin punctuation.seperator.kotlin > @SerializedName("param2") val param2: String, #^^^^^^^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin -# ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +# ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin keyword.control.annotation.kotlin # ^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin @@ -1064,7 +1064,7 @@ # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin punctuation.seperator.kotlin > @SerializedName("param3") val param3: String) { #^^^^^^^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin -# ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +# ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin keyword.control.annotation.kotlin # ^^^^^^^^^^^^^^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin # ^ source.kotlin meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin diff --git a/src/annotations.YAML-tmLanguage b/src/annotations.YAML-tmLanguage index 24deadb..bcef978 100644 --- a/src/annotations.YAML-tmLanguage +++ b/src/annotations.YAML-tmLanguage @@ -5,7 +5,7 @@ repository: begin: '(@)((?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?([a-zA-Z_]\w*)(\()' beginCaptures: '1': - name: punctuation.definition.annotation.kotlin + name: keyword.control.annotation.kotlin '2': name: punctuation.definition.keyword.kotlin '3': @@ -27,7 +27,7 @@ repository: match: '(@)((?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?([a-zA-Z_]\w*)' captures: '1': - name: punctuation.definition.annotation.kotlin + name: keyword.control.annotation.kotlin '2': name: punctuation.definition.keyword.kotlin '3': diff --git a/test/Functions.test.kt b/test/Functions.test.kt index e408749..4d7343c 100644 --- a/test/Functions.test.kt +++ b/test/Functions.test.kt @@ -4,7 +4,7 @@ //^^^ keyword.other.kotlin // ^^^^ entity.name.function.kotlin // ^ meta.parameters.kotlin punctuation.section.group.begin.kotlin punctuation.definition.parameters.begin.kotlin -// ^ meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +// ^ meta.parameters.kotlin meta.annotation.kotlin keyword.control.annotation.kotlin // ^^^^^^^ meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin // ^ meta.parameters.kotlin // ^^^^ meta.parameters.kotlin variable.parameter.function.kotlin diff --git a/test/annotations.test.kt b/test/annotations.test.kt index 7a80365..54e35da 100644 --- a/test/annotations.test.kt +++ b/test/annotations.test.kt @@ -1,7 +1,7 @@ // SYNTAX TEST "source.kotlin" "Annotations" @file:JvmName("Foo") -//^ meta.annotation.kotlin punctuation.definition.annotation.kotlin +//^ meta.annotation.kotlin keyword.control.annotation.kotlin // ^^^^^ meta.annotation.kotlin punctuation.definition.keyword.kotlin // ^^^^^^^ meta.annotation.kotlin storage.type.annotation.kotlin // ^ meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin @@ -11,7 +11,7 @@ // ^ meta.annotation.kotlin punctuation.definition.arguments.end.kotlin data class Response(@SerializedName("param1") val param1: String, -// ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +// ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin keyword.control.annotation.kotlin // ^^^^^^^^^^^^^^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin @@ -25,7 +25,7 @@ data class Response(@SerializedName("param1") val param1: String, // ^ meta.class.kotlin meta.parameters.kotlin punctuation.seperator.kotlin @SerializedName("param2") val param2: String, -// ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +// ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin keyword.control.annotation.kotlin // ^^^^^^^^^^^^^^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin @@ -38,7 +38,7 @@ data class Response(@SerializedName("param1") val param1: String, // ^^^^^^ meta.class.kotlin meta.parameters.kotlin support.class.kotlin // ^ meta.class.kotlin meta.parameters.kotlin punctuation.seperator.kotlin @SerializedName("param3") val param3: String) { -// ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.annotation.kotlin +// ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin keyword.control.annotation.kotlin // ^^^^^^^^^^^^^^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin storage.type.annotation.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin // ^ meta.class.kotlin meta.parameters.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin @@ -55,7 +55,7 @@ data class Response(@SerializedName("param1") val param1: String, class Example { @set:Inject -// ^ meta.annotation.kotlin punctuation.definition.annotation.kotlin +// ^ meta.annotation.kotlin keyword.control.annotation.kotlin // ^^^^ meta.annotation.kotlin punctuation.definition.keyword.kotlin // ^^^^^^ meta.annotation.kotlin storage.type.annotation.kotlin var collaborator: Collaborator @@ -63,7 +63,7 @@ class Example { @MultiLineAnnotation( -//^ meta.annotation.kotlin punctuation.definition.annotation.kotlin +//^ meta.annotation.kotlin keyword.control.annotation.kotlin // ^^^^^^^^^^^^^^^^^^^ meta.annotation.kotlin storage.type.annotation.kotlin // ^ meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin "One", From 46e2761a761af1de2eda9c02eb5ef0c119187aad Mon Sep 17 00:00:00 2001 From: Animesh Sahu Date: Tue, 16 Feb 2021 18:00:14 +0530 Subject: [PATCH 5/5] Rename use-site scope of annotation. --- dist/Kotlin.JSON-tmLanguage | 6 ++++-- dist/Kotlin.YAML-tmLanguage | 4 ++-- dist/Kotlin.tmLanguage | 8 ++++++-- snapshots/corpus.kt.snap | 4 ++-- src/annotations.YAML-tmLanguage | 6 ++++-- test/annotations.test.kt | 4 ++-- 6 files changed, 20 insertions(+), 12 deletions(-) diff --git a/dist/Kotlin.JSON-tmLanguage b/dist/Kotlin.JSON-tmLanguage index 1a6f903..b210115 100644 --- a/dist/Kotlin.JSON-tmLanguage +++ b/dist/Kotlin.JSON-tmLanguage @@ -9,7 +9,8 @@ "name": "keyword.control.annotation.kotlin" }, "2": { - "name": "punctuation.definition.keyword.kotlin" + "name": "keyword.annotation.target.kotlin", + "comment": "Use-Site Annotation Target" }, "3": { "name": "storage.type.annotation.kotlin" @@ -42,7 +43,8 @@ "name": "keyword.control.annotation.kotlin" }, "2": { - "name": "punctuation.definition.keyword.kotlin" + "name": "keyword.annotation.target.kotlin", + "comment": "Use-Site Annotation Target" }, "3": { "name": "storage.type.annotation.kotlin" diff --git a/dist/Kotlin.YAML-tmLanguage b/dist/Kotlin.YAML-tmLanguage index 1c70928..c8bf523 100644 --- a/dist/Kotlin.YAML-tmLanguage +++ b/dist/Kotlin.YAML-tmLanguage @@ -5,7 +5,7 @@ repository: begin: '(@)((?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?([a-zA-Z_]\w*)(\()' beginCaptures: '1': {name: keyword.control.annotation.kotlin} - '2': {name: punctuation.definition.keyword.kotlin} + '2': {name: keyword.annotation.target.kotlin, comment: 'Use-Site Annotation Target'} '3': {name: storage.type.annotation.kotlin} '4': {name: punctuation.definition.arguments.begin.kotlin} end: \) @@ -19,7 +19,7 @@ repository: match: '(@)((?:file|property|field|get|set|receiver|param|setparam|delegate)\s*:\s*)?([a-zA-Z_]\w*)' captures: '1': {name: keyword.control.annotation.kotlin} - '2': {name: punctuation.definition.keyword.kotlin} + '2': {name: keyword.annotation.target.kotlin, comment: 'Use-Site Annotation Target'} '3': {name: storage.type.annotation.kotlin} name: meta.annotation.kotlin class-literal: diff --git a/dist/Kotlin.tmLanguage b/dist/Kotlin.tmLanguage index d5bb779..98024e3 100644 --- a/dist/Kotlin.tmLanguage +++ b/dist/Kotlin.tmLanguage @@ -21,7 +21,9 @@ 2 name - punctuation.definition.keyword.kotlin + keyword.annotation.target.kotlin + comment + Use-Site Annotation Target 3 @@ -73,7 +75,9 @@ 2 name - punctuation.definition.keyword.kotlin + keyword.annotation.target.kotlin + comment + Use-Site Annotation Target 3 diff --git a/snapshots/corpus.kt.snap b/snapshots/corpus.kt.snap index 72eadf0..a539239 100644 --- a/snapshots/corpus.kt.snap +++ b/snapshots/corpus.kt.snap @@ -167,7 +167,7 @@ > >@get:Rule #^ source.kotlin meta.annotation.kotlin keyword.control.annotation.kotlin -# ^^^^ source.kotlin meta.annotation.kotlin punctuation.definition.keyword.kotlin +# ^^^^ source.kotlin meta.annotation.kotlin keyword.annotation.target.kotlin # ^^^^ source.kotlin meta.annotation.kotlin storage.type.annotation.kotlin >val activityRule = ActivityTestRule(SplashActivity::class.java) #^^^ source.kotlin storage.type.kotlin @@ -845,7 +845,7 @@ # ^^^^^^^^^^^^^^^^^^^^ source.kotlin punctuation.definition.comment.kotlin >@file:JvmName("Foo") #^ source.kotlin meta.annotation.kotlin keyword.control.annotation.kotlin -# ^^^^^^^^^^^^ source.kotlin meta.annotation.kotlin punctuation.definition.keyword.kotlin +# ^^^^^^^^^^^^ source.kotlin meta.annotation.kotlin keyword.annotation.target.kotlin # ^^^^^^^ source.kotlin meta.annotation.kotlin storage.type.annotation.kotlin # ^ source.kotlin meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin # ^ source.kotlin meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin diff --git a/src/annotations.YAML-tmLanguage b/src/annotations.YAML-tmLanguage index bcef978..4e36656 100644 --- a/src/annotations.YAML-tmLanguage +++ b/src/annotations.YAML-tmLanguage @@ -7,7 +7,8 @@ repository: '1': name: keyword.control.annotation.kotlin '2': - name: punctuation.definition.keyword.kotlin + name: keyword.annotation.target.kotlin + comment: 'Use-Site Annotation Target' '3': name: storage.type.annotation.kotlin '4': @@ -29,7 +30,8 @@ repository: '1': name: keyword.control.annotation.kotlin '2': - name: punctuation.definition.keyword.kotlin + name: keyword.annotation.target.kotlin + comment: 'Use-Site Annotation Target' '3': name: storage.type.annotation.kotlin name: meta.annotation.kotlin diff --git a/test/annotations.test.kt b/test/annotations.test.kt index 54e35da..a05bd2f 100644 --- a/test/annotations.test.kt +++ b/test/annotations.test.kt @@ -2,7 +2,7 @@ @file:JvmName("Foo") //^ meta.annotation.kotlin keyword.control.annotation.kotlin -// ^^^^^ meta.annotation.kotlin punctuation.definition.keyword.kotlin +// ^^^^^ meta.annotation.kotlin keyword.annotation.target.kotlin // ^^^^^^^ meta.annotation.kotlin storage.type.annotation.kotlin // ^ meta.annotation.kotlin punctuation.definition.arguments.begin.kotlin // ^ meta.annotation.kotlin string.quoted.double.kotlin punctuation.definition.string.begin.kotlin @@ -56,7 +56,7 @@ data class Response(@SerializedName("param1") val param1: String, class Example { @set:Inject // ^ meta.annotation.kotlin keyword.control.annotation.kotlin -// ^^^^ meta.annotation.kotlin punctuation.definition.keyword.kotlin +// ^^^^ meta.annotation.kotlin keyword.annotation.target.kotlin // ^^^^^^ meta.annotation.kotlin storage.type.annotation.kotlin var collaborator: Collaborator }