Path: blob/main/extensions/groovy/syntaxes/groovy.tmLanguage.json
5240 views
{1"information_for_contributors": [2"This file has been converted from https://github.com/textmate/groovy.tmbundle/blob/master/Syntaxes/Groovy.tmLanguage",3"If you want to provide a fix or improvement, please create a pull request against the original repository.",4"Once accepted there, we are happy to receive an update request."5],6"version": "https://github.com/textmate/groovy.tmbundle/commit/85d8f7c97ae473ccb9473f6c8d27e4ec957f4be1",7"name": "Groovy",8"scopeName": "source.groovy",9"patterns": [10{11"captures": {12"1": {13"name": "punctuation.definition.comment.groovy"14}15},16"match": "^(#!).+$\\n",17"name": "comment.line.hashbang.groovy"18},19{20"captures": {21"1": {22"name": "keyword.other.package.groovy"23},24"2": {25"name": "storage.modifier.package.groovy"26},27"3": {28"name": "punctuation.terminator.groovy"29}30},31"match": "^\\s*(package)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",32"name": "meta.package.groovy"33},34{35"begin": "(import static)\\b\\s*",36"beginCaptures": {37"1": {38"name": "keyword.other.import.static.groovy"39}40},41"captures": {42"1": {43"name": "keyword.other.import.groovy"44},45"2": {46"name": "storage.modifier.import.groovy"47},48"3": {49"name": "punctuation.terminator.groovy"50}51},52"contentName": "storage.modifier.import.groovy",53"end": "\\s*(?:$|(?=%>)(;))",54"endCaptures": {55"1": {56"name": "punctuation.terminator.groovy"57}58},59"name": "meta.import.groovy",60"patterns": [61{62"match": "\\.",63"name": "punctuation.separator.groovy"64},65{66"match": "\\s",67"name": "invalid.illegal.character_not_allowed_here.groovy"68}69]70},71{72"begin": "(import)\\b\\s*",73"beginCaptures": {74"1": {75"name": "keyword.other.import.groovy"76}77},78"captures": {79"1": {80"name": "keyword.other.import.groovy"81},82"2": {83"name": "storage.modifier.import.groovy"84},85"3": {86"name": "punctuation.terminator.groovy"87}88},89"contentName": "storage.modifier.import.groovy",90"end": "\\s*(?:$|(?=%>)|(;))",91"endCaptures": {92"1": {93"name": "punctuation.terminator.groovy"94}95},96"name": "meta.import.groovy",97"patterns": [98{99"match": "\\.",100"name": "punctuation.separator.groovy"101},102{103"match": "\\s",104"name": "invalid.illegal.character_not_allowed_here.groovy"105}106]107},108{109"captures": {110"1": {111"name": "keyword.other.import.groovy"112},113"2": {114"name": "keyword.other.import.static.groovy"115},116"3": {117"name": "storage.modifier.import.groovy"118},119"4": {120"name": "punctuation.terminator.groovy"121}122},123"match": "^\\s*(import)(?:\\s+(static)\\s+)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",124"name": "meta.import.groovy"125},126{127"include": "#groovy"128}129],130"repository": {131"annotations": {132"patterns": [133{134"begin": "(?<!\\.)(@[^ (]+)(\\()",135"beginCaptures": {136"1": {137"name": "storage.type.annotation.groovy"138},139"2": {140"name": "punctuation.definition.annotation-arguments.begin.groovy"141}142},143"end": "(\\))",144"endCaptures": {145"1": {146"name": "punctuation.definition.annotation-arguments.end.groovy"147}148},149"name": "meta.declaration.annotation.groovy",150"patterns": [151{152"captures": {153"1": {154"name": "constant.other.key.groovy"155},156"2": {157"name": "keyword.operator.assignment.groovy"158}159},160"match": "(\\w*)\\s*(=)"161},162{163"include": "#values"164},165{166"match": ",",167"name": "punctuation.definition.seperator.groovy"168}169]170},171{172"match": "(?<!\\.)@\\S+",173"name": "storage.type.annotation.groovy"174}175]176},177"anonymous-classes-and-new": {178"begin": "\\bnew\\b",179"beginCaptures": {180"0": {181"name": "keyword.control.new.groovy"182}183},184"end": "(?<=\\)|\\])(?!\\s*{)|(?<=})|(?=[;])|$",185"patterns": [186{187"begin": "(\\w+)\\s*(?=\\[)",188"beginCaptures": {189"1": {190"name": "storage.type.groovy"191}192},193"end": "}|(?=\\s*(?:,|;|\\)))|$",194"patterns": [195{196"begin": "\\[",197"end": "\\]",198"patterns": [199{200"include": "#groovy"201}202]203},204{205"begin": "{",206"end": "(?=})",207"patterns": [208{209"include": "#groovy"210}211]212}213]214},215{216"begin": "(?=\\w.*\\(?)",217"end": "(?<=\\))|$",218"patterns": [219{220"include": "#object-types"221},222{223"begin": "\\(",224"beginCaptures": {225"1": {226"name": "storage.type.groovy"227}228},229"end": "\\)",230"patterns": [231{232"include": "#groovy"233}234]235}236]237},238{239"begin": "{",240"end": "}",241"name": "meta.inner-class.groovy",242"patterns": [243{244"include": "#class-body"245}246]247}248]249},250"braces": {251"begin": "\\{",252"end": "\\}",253"patterns": [254{255"include": "#groovy-code"256}257]258},259"class": {260"begin": "(?=\\w?[\\w\\s]*(?:class|(?:@)?interface|enum)\\s+\\w+)",261"end": "}",262"endCaptures": {263"0": {264"name": "punctuation.section.class.end.groovy"265}266},267"name": "meta.definition.class.groovy",268"patterns": [269{270"include": "#storage-modifiers"271},272{273"include": "#comments"274},275{276"captures": {277"1": {278"name": "storage.modifier.groovy"279},280"2": {281"name": "entity.name.type.class.groovy"282}283},284"match": "(class|(?:@)?interface|enum)\\s+(\\w+)",285"name": "meta.class.identifier.groovy"286},287{288"begin": "extends",289"beginCaptures": {290"0": {291"name": "storage.modifier.extends.groovy"292}293},294"end": "(?={|implements)",295"name": "meta.definition.class.inherited.classes.groovy",296"patterns": [297{298"include": "#object-types-inherited"299},300{301"include": "#comments"302}303]304},305{306"begin": "(implements)\\s",307"beginCaptures": {308"1": {309"name": "storage.modifier.implements.groovy"310}311},312"end": "(?=\\s*extends|\\{)",313"name": "meta.definition.class.implemented.interfaces.groovy",314"patterns": [315{316"include": "#object-types-inherited"317},318{319"include": "#comments"320}321]322},323{324"begin": "{",325"end": "(?=})",326"name": "meta.class.body.groovy",327"patterns": [328{329"include": "#class-body"330}331]332}333]334},335"class-body": {336"patterns": [337{338"include": "#enum-values"339},340{341"include": "#constructors"342},343{344"include": "#groovy"345}346]347},348"closures": {349"begin": "\\{(?=.*?->)",350"end": "\\}",351"patterns": [352{353"begin": "(?<=\\{)(?=[^\\}]*?->)",354"end": "->",355"endCaptures": {356"0": {357"name": "keyword.operator.groovy"358}359},360"patterns": [361{362"begin": "(?!->)",363"end": "(?=->)",364"name": "meta.closure.parameters.groovy",365"patterns": [366{367"begin": "(?!,|->)",368"end": "(?=,|->)",369"name": "meta.closure.parameter.groovy",370"patterns": [371{372"begin": "=",373"beginCaptures": {374"0": {375"name": "keyword.operator.assignment.groovy"376}377},378"end": "(?=,|->)",379"name": "meta.parameter.default.groovy",380"patterns": [381{382"include": "#groovy-code"383}384]385},386{387"include": "#parameters"388}389]390}391]392}393]394},395{396"begin": "(?=[^}])",397"end": "(?=\\})",398"patterns": [399{400"include": "#groovy-code"401}402]403}404]405},406"comment-block": {407"begin": "/\\*",408"captures": {409"0": {410"name": "punctuation.definition.comment.groovy"411}412},413"end": "\\*/",414"name": "comment.block.groovy"415},416"comments": {417"patterns": [418{419"captures": {420"0": {421"name": "punctuation.definition.comment.groovy"422}423},424"match": "/\\*\\*/",425"name": "comment.block.empty.groovy"426},427{428"include": "text.html.javadoc"429},430{431"include": "#comment-block"432},433{434"captures": {435"1": {436"name": "punctuation.definition.comment.groovy"437}438},439"match": "(//).*$\\n?",440"name": "comment.line.double-slash.groovy"441}442]443},444"constants": {445"patterns": [446{447"match": "\\b([A-Z][A-Z0-9_]+)\\b",448"name": "constant.other.groovy"449},450{451"match": "\\b(true|false|null)\\b",452"name": "constant.language.groovy"453}454]455},456"constructors": {457"applyEndPatternLast": 1,458"begin": "(?<=;|^)(?=\\s*(?:(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)\\s+)*[A-Z]\\w*\\()",459"end": "}",460"patterns": [461{462"include": "#method-content"463}464]465},466"enum-values": {467"patterns": [468{469"begin": "(?<=;|^)\\s*\\b([A-Z0-9_]+)(?=\\s*(?:,|;|}|\\(|$))",470"beginCaptures": {471"1": {472"name": "constant.enum.name.groovy"473}474},475"end": ",|;|(?=})|^(?!\\s*\\w+\\s*(?:,|$))",476"patterns": [477{478"begin": "\\(",479"end": "\\)",480"name": "meta.enum.value.groovy",481"patterns": [482{483"match": ",",484"name": "punctuation.definition.seperator.parameter.groovy"485},486{487"include": "#groovy-code"488}489]490}491]492}493]494},495"groovy": {496"patterns": [497{498"include": "#comments"499},500{501"include": "#class"502},503{504"include": "#variables"505},506{507"include": "#methods"508},509{510"include": "#annotations"511},512{513"include": "#groovy-code"514}515]516},517"groovy-code": {518"patterns": [519{520"include": "#groovy-code-minus-map-keys"521},522{523"include": "#map-keys"524}525]526},527"groovy-code-minus-map-keys": {528"comment": "In some situations, maps can't be declared without enclosing []'s, \n\t\t\t\ttherefore we create a collection of everything but that",529"patterns": [530{531"include": "#comments"532},533{534"include": "#annotations"535},536{537"include": "#support-functions"538},539{540"include": "#keyword-language"541},542{543"include": "#values"544},545{546"include": "#anonymous-classes-and-new"547},548{549"include": "#keyword-operator"550},551{552"include": "#types"553},554{555"include": "#storage-modifiers"556},557{558"include": "#parens"559},560{561"include": "#closures"562},563{564"include": "#braces"565}566]567},568"keyword": {569"patterns": [570{571"include": "#keyword-operator"572},573{574"include": "#keyword-language"575}576]577},578"keyword-language": {579"patterns": [580{581"match": "\\b(try|catch|finally|throw)\\b",582"name": "keyword.control.exception.groovy"583},584{585"match": "\\b((?<!\\.)(?:return|break|continue|default|do|while|for|switch|if|else))\\b",586"name": "keyword.control.groovy"587},588{589"begin": "\\bcase\\b",590"beginCaptures": {591"0": {592"name": "keyword.control.groovy"593}594},595"end": ":",596"endCaptures": {597"0": {598"name": "punctuation.definition.case-terminator.groovy"599}600},601"name": "meta.case.groovy",602"patterns": [603{604"include": "#groovy-code-minus-map-keys"605}606]607},608{609"begin": "\\b(assert)\\s",610"beginCaptures": {611"1": {612"name": "keyword.control.assert.groovy"613}614},615"end": "$|;|}",616"name": "meta.declaration.assertion.groovy",617"patterns": [618{619"match": ":",620"name": "keyword.operator.assert.expression-seperator.groovy"621},622{623"include": "#groovy-code-minus-map-keys"624}625]626},627{628"match": "\\b(throws)\\b",629"name": "keyword.other.throws.groovy"630}631]632},633"keyword-operator": {634"patterns": [635{636"match": "\\b(as)\\b",637"name": "keyword.operator.as.groovy"638},639{640"match": "\\b(in)\\b",641"name": "keyword.operator.in.groovy"642},643{644"match": "\\?\\:",645"name": "keyword.operator.elvis.groovy"646},647{648"match": "\\*\\:",649"name": "keyword.operator.spreadmap.groovy"650},651{652"match": "\\.\\.",653"name": "keyword.operator.range.groovy"654},655{656"match": "\\->",657"name": "keyword.operator.arrow.groovy"658},659{660"match": "<<",661"name": "keyword.operator.leftshift.groovy"662},663{664"match": "(?<=\\S)\\.(?=\\S)",665"name": "keyword.operator.navigation.groovy"666},667{668"match": "(?<=\\S)\\?\\.(?=\\S)",669"name": "keyword.operator.safe-navigation.groovy"670},671{672"begin": "\\?",673"beginCaptures": {674"0": {675"name": "keyword.operator.ternary.groovy"676}677},678"end": "(?=$|\\)|}|])",679"name": "meta.evaluation.ternary.groovy",680"patterns": [681{682"match": ":",683"name": "keyword.operator.ternary.expression-seperator.groovy"684},685{686"include": "#groovy-code-minus-map-keys"687}688]689},690{691"match": "==~",692"name": "keyword.operator.match.groovy"693},694{695"match": "=~",696"name": "keyword.operator.find.groovy"697},698{699"match": "\\b(instanceof)\\b",700"name": "keyword.operator.instanceof.groovy"701},702{703"match": "(===|==|!=|<=|>=|<=>|<>|<|>|<<)",704"name": "keyword.operator.comparison.groovy"705},706{707"match": "=",708"name": "keyword.operator.assignment.groovy"709},710{711"match": "(\\-\\-|\\+\\+)",712"name": "keyword.operator.increment-decrement.groovy"713},714{715"match": "(\\-|\\+|\\*|\\/|%)",716"name": "keyword.operator.arithmetic.groovy"717},718{719"match": "(!|&&|\\|\\|)",720"name": "keyword.operator.logical.groovy"721}722]723},724"language-variables": {725"patterns": [726{727"match": "\\b(this|super)\\b",728"name": "variable.language.groovy"729}730]731},732"map-keys": {733"patterns": [734{735"captures": {736"1": {737"name": "constant.other.key.groovy"738},739"2": {740"name": "punctuation.definition.seperator.key-value.groovy"741}742},743"match": "(\\w+)\\s*(:)"744}745]746},747"method-call": {748"begin": "([\\w$]+)(\\()",749"beginCaptures": {750"1": {751"name": "meta.method.groovy"752},753"2": {754"name": "punctuation.definition.method-parameters.begin.groovy"755}756},757"end": "\\)",758"endCaptures": {759"0": {760"name": "punctuation.definition.method-parameters.end.groovy"761}762},763"name": "meta.method-call.groovy",764"patterns": [765{766"match": ",",767"name": "punctuation.definition.seperator.parameter.groovy"768},769{770"include": "#groovy-code"771}772]773},774"method-content": {775"patterns": [776{777"match": "\\s"778},779{780"include": "#annotations"781},782{783"begin": "(?=(?:\\w|<)[^\\(]*\\s+(?:[\\w$]|<)+\\s*\\()",784"end": "(?=[\\w$]+\\s*\\()",785"name": "meta.method.return-type.java",786"patterns": [787{788"include": "#storage-modifiers"789},790{791"include": "#types"792}793]794},795{796"begin": "([\\w$]+)\\s*\\(",797"beginCaptures": {798"1": {799"name": "entity.name.function.java"800}801},802"end": "\\)",803"name": "meta.definition.method.signature.java",804"patterns": [805{806"begin": "(?=[^)])",807"end": "(?=\\))",808"name": "meta.method.parameters.groovy",809"patterns": [810{811"begin": "(?=[^,)])",812"end": "(?=,|\\))",813"name": "meta.method.parameter.groovy",814"patterns": [815{816"match": ",",817"name": "punctuation.definition.separator.groovy"818},819{820"begin": "=",821"beginCaptures": {822"0": {823"name": "keyword.operator.assignment.groovy"824}825},826"end": "(?=,|\\))",827"name": "meta.parameter.default.groovy",828"patterns": [829{830"include": "#groovy-code"831}832]833},834{835"include": "#parameters"836}837]838}839]840}841]842},843{844"begin": "(?=<)",845"end": "(?=\\s)",846"name": "meta.method.paramerised-type.groovy",847"patterns": [848{849"begin": "<",850"end": ">",851"name": "storage.type.parameters.groovy",852"patterns": [853{854"include": "#types"855},856{857"match": ",",858"name": "punctuation.definition.seperator.groovy"859}860]861}862]863},864{865"begin": "throws",866"beginCaptures": {867"0": {868"name": "storage.modifier.groovy"869}870},871"end": "(?={|;)|^(?=\\s*(?:[^{\\s]|$))",872"name": "meta.throwables.groovy",873"patterns": [874{875"include": "#object-types"876}877]878},879{880"begin": "{",881"end": "(?=})",882"name": "meta.method.body.java",883"patterns": [884{885"include": "#groovy-code"886}887]888}889]890},891"methods": {892"applyEndPatternLast": 1,893"begin": "(?x:(?<=;|^|{)(?=\\s*\n (?:\n (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier\n |\n (?:def)\n |\n (?:\n (?:\n (?:void|boolean|byte|char|short|int|float|long|double)\n |\n (?:@?(?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*) # object type\n )\n [\\[\\]]*\n (?:<.*>)?\n ) \n \n )\n \\s+\n ([^=]+\\s+)?\\w+\\s*\\(\n\t\t\t))",894"end": "}|(?=[^{])",895"name": "meta.definition.method.groovy",896"patterns": [897{898"include": "#method-content"899}900]901},902"nest_curly": {903"begin": "\\{",904"captures": {905"0": {906"name": "punctuation.section.scope.groovy"907}908},909"end": "\\}",910"patterns": [911{912"include": "#nest_curly"913}914]915},916"numbers": {917"patterns": [918{919"match": "((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b",920"name": "constant.numeric.groovy"921}922]923},924"object-types": {925"patterns": [926{927"begin": "\\b((?:[a-z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI]))<",928"end": ">|[^\\w\\s,\\?<\\[\\]]",929"name": "storage.type.generic.groovy",930"patterns": [931{932"include": "#object-types"933},934{935"begin": "<",936"comment": "This is just to support <>'s with no actual type prefix",937"end": ">|[^\\w\\s,\\[\\]<]",938"name": "storage.type.generic.groovy"939}940]941},942{943"begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)(?=\\[)",944"end": "(?=[^\\]\\s])",945"name": "storage.type.object.array.groovy",946"patterns": [947{948"begin": "\\[",949"end": "\\]",950"patterns": [951{952"include": "#groovy"953}954]955}956]957},958{959"match": "\\b(?:[a-zA-Z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI])\\b",960"name": "storage.type.groovy"961}962]963},964"object-types-inherited": {965"patterns": [966{967"begin": "\\b((?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)<",968"end": ">|[^\\w\\s,\\?<\\[\\]]",969"name": "entity.other.inherited-class.groovy",970"patterns": [971{972"include": "#object-types-inherited"973},974{975"begin": "<",976"comment": "This is just to support <>'s with no actual type prefix",977"end": ">|[^\\w\\s,\\[\\]<]",978"name": "storage.type.generic.groovy"979}980]981},982{983"captures": {984"1": {985"name": "keyword.operator.dereference.groovy"986}987},988"match": "\\b(?:[a-zA-Z]\\w*(\\.))*[A-Z]+\\w*[a-z]+\\w*\\b",989"name": "entity.other.inherited-class.groovy"990}991]992},993"parameters": {994"patterns": [995{996"include": "#annotations"997},998{999"include": "#storage-modifiers"1000},1001{1002"include": "#types"1003},1004{1005"match": "\\w+",1006"name": "variable.parameter.method.groovy"1007}1008]1009},1010"parens": {1011"begin": "\\(",1012"end": "\\)",1013"patterns": [1014{1015"include": "#groovy-code"1016}1017]1018},1019"primitive-arrays": {1020"patterns": [1021{1022"match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)(\\[\\])*\\b",1023"name": "storage.type.primitive.array.groovy"1024}1025]1026},1027"primitive-types": {1028"patterns": [1029{1030"match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)\\b",1031"name": "storage.type.primitive.groovy"1032}1033]1034},1035"regexp": {1036"patterns": [1037{1038"begin": "/(?=[^/]+/([^>]|$))",1039"beginCaptures": {1040"0": {1041"name": "punctuation.definition.string.regexp.begin.groovy"1042}1043},1044"end": "/",1045"endCaptures": {1046"0": {1047"name": "punctuation.definition.string.regexp.end.groovy"1048}1049},1050"name": "string.regexp.groovy",1051"patterns": [1052{1053"match": "\\\\.",1054"name": "constant.character.escape.groovy"1055}1056]1057},1058{1059"begin": "~\"",1060"beginCaptures": {1061"0": {1062"name": "punctuation.definition.string.regexp.begin.groovy"1063}1064},1065"end": "\"",1066"endCaptures": {1067"0": {1068"name": "punctuation.definition.string.regexp.end.groovy"1069}1070},1071"name": "string.regexp.compiled.groovy",1072"patterns": [1073{1074"match": "\\\\.",1075"name": "constant.character.escape.groovy"1076}1077]1078}1079]1080},1081"storage-modifiers": {1082"patterns": [1083{1084"match": "\\b(private|protected|public)\\b",1085"name": "storage.modifier.access-control.groovy"1086},1087{1088"match": "\\b(static)\\b",1089"name": "storage.modifier.static.groovy"1090},1091{1092"match": "\\b(final)\\b",1093"name": "storage.modifier.final.groovy"1094},1095{1096"match": "\\b(native|synchronized|abstract|threadsafe|transient)\\b",1097"name": "storage.modifier.other.groovy"1098}1099]1100},1101"string-quoted-double": {1102"begin": "\"",1103"beginCaptures": {1104"0": {1105"name": "punctuation.definition.string.begin.groovy"1106}1107},1108"end": "\"",1109"endCaptures": {1110"0": {1111"name": "punctuation.definition.string.end.groovy"1112}1113},1114"name": "string.quoted.double.groovy",1115"patterns": [1116{1117"include": "#string-quoted-double-contents"1118}1119]1120},1121"string-quoted-double-contents": {1122"patterns": [1123{1124"match": "\\\\.",1125"name": "constant.character.escape.groovy"1126},1127{1128"applyEndPatternLast": 1,1129"begin": "\\$\\w",1130"end": "(?=\\W)",1131"name": "variable.other.interpolated.groovy",1132"patterns": [1133{1134"match": "\\w",1135"name": "variable.other.interpolated.groovy"1136},1137{1138"match": "\\.",1139"name": "keyword.other.dereference.groovy"1140}1141]1142},1143{1144"begin": "\\$\\{",1145"captures": {1146"0": {1147"name": "punctuation.section.embedded.groovy"1148}1149},1150"end": "\\}",1151"name": "source.groovy.embedded.source",1152"patterns": [1153{1154"include": "#nest_curly"1155}1156]1157}1158]1159},1160"string-quoted-double-multiline": {1161"begin": "\"\"\"",1162"beginCaptures": {1163"0": {1164"name": "punctuation.definition.string.begin.groovy"1165}1166},1167"end": "\"\"\"",1168"endCaptures": {1169"0": {1170"name": "punctuation.definition.string.end.groovy"1171}1172},1173"name": "string.quoted.double.multiline.groovy",1174"patterns": [1175{1176"include": "#string-quoted-double-contents"1177}1178]1179},1180"string-quoted-single": {1181"begin": "'",1182"beginCaptures": {1183"0": {1184"name": "punctuation.definition.string.begin.groovy"1185}1186},1187"end": "'",1188"endCaptures": {1189"0": {1190"name": "punctuation.definition.string.end.groovy"1191}1192},1193"name": "string.quoted.single.groovy",1194"patterns": [1195{1196"include": "#string-quoted-single-contents"1197}1198]1199},1200"string-quoted-single-contents": {1201"patterns": [1202{1203"match": "\\\\.",1204"name": "constant.character.escape.groovy"1205}1206]1207},1208"string-quoted-single-multiline": {1209"begin": "'''",1210"beginCaptures": {1211"0": {1212"name": "punctuation.definition.string.begin.groovy"1213}1214},1215"end": "'''",1216"endCaptures": {1217"0": {1218"name": "punctuation.definition.string.end.groovy"1219}1220},1221"name": "string.quoted.single.multiline.groovy",1222"patterns": [1223{1224"include": "#string-quoted-single-contents"1225}1226]1227},1228"strings": {1229"patterns": [1230{1231"include": "#string-quoted-double-multiline"1232},1233{1234"include": "#string-quoted-single-multiline"1235},1236{1237"include": "#string-quoted-double"1238},1239{1240"include": "#string-quoted-single"1241},1242{1243"include": "#regexp"1244}1245]1246},1247"structures": {1248"begin": "\\[",1249"beginCaptures": {1250"0": {1251"name": "punctuation.definition.structure.begin.groovy"1252}1253},1254"end": "\\]",1255"endCaptures": {1256"0": {1257"name": "punctuation.definition.structure.end.groovy"1258}1259},1260"name": "meta.structure.groovy",1261"patterns": [1262{1263"include": "#groovy-code"1264},1265{1266"match": ",",1267"name": "punctuation.definition.separator.groovy"1268}1269]1270},1271"support-functions": {1272"patterns": [1273{1274"match": "(?x)\\b(?:sprintf|print(?:f|ln)?)\\b",1275"name": "support.function.print.groovy"1276},1277{1278"match": "(?x)\\b(?:shouldFail|fail(?:NotEquals)?|ass(?:ume|ert(?:S(?:cript|ame)|N(?:ot(?:Same|\n\t\t\t\t\tNull)|ull)|Contains|T(?:hat|oString|rue)|Inspect|Equals|False|Length|\n\t\t\t\t\tArrayEquals)))\\b",1279"name": "support.function.testing.groovy"1280}1281]1282},1283"types": {1284"patterns": [1285{1286"match": "\\b(def)\\b",1287"name": "storage.type.def.groovy"1288},1289{1290"include": "#primitive-types"1291},1292{1293"include": "#primitive-arrays"1294},1295{1296"include": "#object-types"1297}1298]1299},1300"values": {1301"patterns": [1302{1303"include": "#language-variables"1304},1305{1306"include": "#strings"1307},1308{1309"include": "#numbers"1310},1311{1312"include": "#constants"1313},1314{1315"include": "#types"1316},1317{1318"include": "#structures"1319},1320{1321"include": "#method-call"1322}1323]1324},1325"variables": {1326"applyEndPatternLast": 1,1327"patterns": [1328{1329"begin": "(?x:(?=\n (?:\n (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier\n |\n (?:def)\n |\n (?:void|boolean|byte|char|short|int|float|long|double)\n |\n (?:(?:[a-z]\\w*\\.)*[A-Z]+\\w*) # object type\n )\n \\s+\n [\\w\\d_<>\\[\\],\\s]+\n (?:=|$)\n \n \t\t\t))",1330"end": ";|$",1331"name": "meta.definition.variable.groovy",1332"patterns": [1333{1334"match": "\\s"1335},1336{1337"captures": {1338"1": {1339"name": "constant.variable.groovy"1340}1341},1342"match": "([A-Z_0-9]+)\\s+(?=\\=)"1343},1344{1345"captures": {1346"1": {1347"name": "meta.definition.variable.name.groovy"1348}1349},1350"match": "(\\w[^\\s,]*)\\s+(?=\\=)"1351},1352{1353"begin": "=",1354"beginCaptures": {1355"0": {1356"name": "keyword.operator.assignment.groovy"1357}1358},1359"end": "$",1360"patterns": [1361{1362"include": "#groovy-code"1363}1364]1365},1366{1367"captures": {1368"1": {1369"name": "meta.definition.variable.name.groovy"1370}1371},1372"match": "(\\w[^\\s=]*)(?=\\s*($|;))"1373},1374{1375"include": "#groovy-code"1376}1377]1378}1379]1380}1381}1382}13831384