Path: blob/main/extensions/java/syntaxes/java.tmLanguage.json
3316 views
{1"information_for_contributors": [2"This file has been converted from https://github.com/redhat-developer/vscode-java/blob/master/language-support/java/java.tmLanguage.json",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/redhat-developer/vscode-java/commit/f09b712f5d6d6339e765f58c8dfab3f78a378183",7"name": "Java",8"scopeName": "source.java",9"patterns": [10{11"begin": "\\b(package)\\b\\s*",12"beginCaptures": {13"1": {14"name": "keyword.other.package.java"15}16},17"end": "\\s*(;)",18"endCaptures": {19"1": {20"name": "punctuation.terminator.java"21}22},23"name": "meta.package.java",24"contentName": "storage.modifier.package.java",25"patterns": [26{27"include": "#comments"28},29{30"match": "(?<=\\.)\\s*\\.|\\.(?=\\s*;)",31"name": "invalid.illegal.character_not_allowed_here.java"32},33{34"match": "(?<!_)_(?=\\s*(\\.|;))|\\b\\d+|-+",35"name": "invalid.illegal.character_not_allowed_here.java"36},37{38"match": "[A-Z]+",39"name": "invalid.deprecated.package_name_not_lowercase.java"40},41{42"match": "(?x)\\b(?<!\\$)\n(abstract|assert|boolean|break|byte|case|catch|char|class|\nconst|continue|default|do|double|else|enum|extends|final|\nfinally|float|for|goto|if|implements|import|instanceof|int|\ninterface|long|native|new|non-sealed|package|permits|private|protected|public|\nreturn|sealed|short|static|strictfp|super|switch|syncronized|this|\nthrow|throws|transient|try|void|volatile|while|yield|\ntrue|false|null)\\b",43"name": "invalid.illegal.character_not_allowed_here.java"44},45{46"match": "\\.",47"name": "punctuation.separator.java"48}49]50},51{52"begin": "\\b(import)\\b\\s*\\b(static)?\\b\\s",53"beginCaptures": {54"1": {55"name": "keyword.other.import.java"56},57"2": {58"name": "storage.modifier.java"59}60},61"end": "\\s*(;)",62"endCaptures": {63"1": {64"name": "punctuation.terminator.java"65}66},67"name": "meta.import.java",68"contentName": "storage.modifier.import.java",69"patterns": [70{71"include": "#comments"72},73{74"match": "(?<=\\.)\\s*\\.|\\.(?=\\s*;)",75"name": "invalid.illegal.character_not_allowed_here.java"76},77{78"match": "(?<!\\.)\\s*\\*",79"name": "invalid.illegal.character_not_allowed_here.java"80},81{82"match": "(?<!_)_(?=\\s*(\\.|;))|\\b\\d+|-+",83"name": "invalid.illegal.character_not_allowed_here.java"84},85{86"match": "(?x)\\b(?<!\\$)\n(abstract|assert|boolean|break|byte|case|catch|char|class|\nconst|continue|default|do|double|else|enum|extends|final|\nfinally|float|for|goto|if|implements|import|instanceof|int|\ninterface|long|native|new|non-sealed|package|permits|private|protected|public|\nreturn|sealed|short|static|strictfp|super|switch|syncronized|this|\nthrow|throws|transient|try|void|volatile|while|yield|\ntrue|false|null)\\b",87"name": "invalid.illegal.character_not_allowed_here.java"88},89{90"match": "\\.",91"name": "punctuation.separator.java"92},93{94"match": "\\*",95"name": "variable.language.wildcard.java"96}97]98},99{100"include": "#comments-javadoc"101},102{103"include": "#code"104},105{106"include": "#module"107}108],109"repository": {110"all-types": {111"patterns": [112{113"include": "#primitive-arrays"114},115{116"include": "#primitive-types"117},118{119"include": "#object-types"120}121]122},123"annotations": {124"patterns": [125{126"begin": "((@)\\s*([^\\s(]+))(\\()",127"beginCaptures": {128"2": {129"name": "punctuation.definition.annotation.java"130},131"3": {132"name": "storage.type.annotation.java"133},134"4": {135"name": "punctuation.definition.annotation-arguments.begin.bracket.round.java"136}137},138"end": "\\)",139"endCaptures": {140"0": {141"name": "punctuation.definition.annotation-arguments.end.bracket.round.java"142}143},144"name": "meta.declaration.annotation.java",145"patterns": [146{147"captures": {148"1": {149"name": "constant.other.key.java"150},151"2": {152"name": "keyword.operator.assignment.java"153}154},155"match": "(\\w*)\\s*(=)"156},157{158"include": "#code"159}160]161},162{163"match": "(@)(interface)\\s+(\\w*)|((@)\\s*(\\w+))",164"name": "meta.declaration.annotation.java",165"captures": {166"1": {167"name": "punctuation.definition.annotation.java"168},169"2": {170"name": "storage.modifier.java"171},172"3": {173"name": "storage.type.annotation.java"174},175"5": {176"name": "punctuation.definition.annotation.java"177},178"6": {179"name": "storage.type.annotation.java"180}181}182}183]184},185"anonymous-block-and-instance-initializer": {186"begin": "{",187"beginCaptures": {188"0": {189"name": "punctuation.section.block.begin.bracket.curly.java"190}191},192"end": "}",193"endCaptures": {194"0": {195"name": "punctuation.section.block.end.bracket.curly.java"196}197},198"patterns": [199{200"include": "#code"201}202]203},204"anonymous-classes-and-new": {205"begin": "\\bnew\\b",206"beginCaptures": {207"0": {208"name": "keyword.control.new.java"209}210},211"end": "(?=;|\\)|\\]|\\.|,|\\?|:|}|\\+|\\-|\\*|\\/(?!\\/|\\*)|%|!|&|\\||\\^|=)",212"patterns": [213{214"include": "#comments"215},216{217"include": "#function-call"218},219{220"include": "#all-types"221},222{223"begin": "(?<=\\))",224"end": "(?=;|\\)|\\]|\\.|,|\\?|:|}|\\+|\\-|\\*|\\/(?!\\/|\\*)|%|!|&|\\||\\^|=)",225"patterns": [226{227"include": "#comments"228},229{230"begin": "{",231"beginCaptures": {232"0": {233"name": "punctuation.section.inner-class.begin.bracket.curly.java"234}235},236"end": "}",237"endCaptures": {238"0": {239"name": "punctuation.section.inner-class.end.bracket.curly.java"240}241},242"name": "meta.inner-class.java",243"patterns": [244{245"include": "#class-body"246}247]248}249]250},251{252"begin": "(?<=\\])",253"end": "(?=;|\\)|\\]|\\.|,|\\?|:|}|\\+|\\-|\\*|\\/(?!\\/|\\*)|%|!|&|\\||\\^|=)",254"patterns": [255{256"include": "#comments"257},258{259"begin": "{",260"beginCaptures": {261"0": {262"name": "punctuation.section.array-initializer.begin.bracket.curly.java"263}264},265"end": "}",266"endCaptures": {267"0": {268"name": "punctuation.section.array-initializer.end.bracket.curly.java"269}270},271"name": "meta.array-initializer.java",272"patterns": [273{274"include": "#code"275}276]277}278]279},280{281"include": "#parens"282}283]284},285"assertions": {286"patterns": [287{288"begin": "\\b(assert)\\s",289"beginCaptures": {290"1": {291"name": "keyword.control.assert.java"292}293},294"end": "$",295"name": "meta.declaration.assertion.java",296"patterns": [297{298"match": ":",299"name": "keyword.operator.assert.expression-separator.java"300},301{302"include": "#code"303}304]305}306]307},308"class": {309"begin": "(?=\\w?[\\w\\s-]*\\b(?:class|(?<!@)interface|enum)\\s+[\\w$]+)",310"end": "}",311"endCaptures": {312"0": {313"name": "punctuation.section.class.end.bracket.curly.java"314}315},316"name": "meta.class.java",317"patterns": [318{319"include": "#storage-modifiers"320},321{322"include": "#generics"323},324{325"include": "#comments"326},327{328"captures": {329"1": {330"name": "storage.modifier.java"331},332"2": {333"name": "entity.name.type.class.java"334}335},336"match": "(class|(?<!@)interface|enum)\\s+([\\w$]+)",337"name": "meta.class.identifier.java"338},339{340"begin": "extends",341"beginCaptures": {342"0": {343"name": "storage.modifier.extends.java"344}345},346"end": "(?={|implements|permits)",347"name": "meta.definition.class.inherited.classes.java",348"patterns": [349{350"include": "#object-types-inherited"351},352{353"include": "#comments"354}355]356},357{358"begin": "(implements)\\s",359"beginCaptures": {360"1": {361"name": "storage.modifier.implements.java"362}363},364"end": "(?=\\s*extends|permits|\\{)",365"name": "meta.definition.class.implemented.interfaces.java",366"patterns": [367{368"include": "#object-types-inherited"369},370{371"include": "#comments"372}373]374},375{376"begin": "(permits)\\s",377"beginCaptures": {378"1": {379"name": "storage.modifier.permits.java"380}381},382"end": "(?=\\s*extends|implements|\\{)",383"name": "meta.definition.class.permits.classes.java",384"patterns": [385{386"include": "#object-types-inherited"387},388{389"include": "#comments"390}391]392},393{394"begin": "{",395"beginCaptures": {396"0": {397"name": "punctuation.section.class.begin.bracket.curly.java"398}399},400"end": "(?=})",401"contentName": "meta.class.body.java",402"patterns": [403{404"include": "#class-body"405}406]407}408]409},410"class-body": {411"patterns": [412{413"include": "#comments-javadoc"414},415{416"include": "#comments"417},418{419"include": "#enums"420},421{422"include": "#class"423},424{425"include": "#generics"426},427{428"include": "#static-initializer"429},430{431"include": "#class-fields-and-methods"432},433{434"include": "#annotations"435},436{437"include": "#storage-modifiers"438},439{440"include": "#member-variables"441},442{443"include": "#code"444}445]446},447"class-fields-and-methods": {448"patterns": [449{450"begin": "(?=\\=)",451"end": "(?=;)",452"patterns": [453{454"include": "#code"455}456]457},458{459"include": "#methods"460}461]462},463"code": {464"patterns": [465{466"include": "#annotations"467},468{469"include": "#comments"470},471{472"include": "#enums"473},474{475"include": "#class"476},477{478"include": "#record"479},480{481"include": "#anonymous-block-and-instance-initializer"482},483{484"include": "#try-catch-finally"485},486{487"include": "#assertions"488},489{490"include": "#parens"491},492{493"include": "#constants-and-special-vars"494},495{496"include": "#numbers"497},498{499"include": "#anonymous-classes-and-new"500},501{502"include": "#lambda-expression"503},504{505"include": "#keywords"506},507{508"include": "#storage-modifiers"509},510{511"include": "#method-call"512},513{514"include": "#function-call"515},516{517"include": "#variables"518},519{520"include": "#variables-local"521},522{523"include": "#objects"524},525{526"include": "#properties"527},528{529"include": "#strings"530},531{532"include": "#all-types"533},534{535"match": ",",536"name": "punctuation.separator.delimiter.java"537},538{539"match": "\\.",540"name": "punctuation.separator.period.java"541},542{543"match": ";",544"name": "punctuation.terminator.java"545}546]547},548"comments": {549"patterns": [550{551"captures": {552"0": {553"name": "punctuation.definition.comment.java"554}555},556"match": "/\\*\\*/",557"name": "comment.block.empty.java"558},559{560"include": "#comments-inline"561}562]563},564"comments-inline": {565"patterns": [566{567"begin": "/\\*",568"captures": {569"0": {570"name": "punctuation.definition.comment.java"571}572},573"end": "\\*/",574"name": "comment.block.java"575},576{577"begin": "(^[ \\t]+)?(?=//)",578"beginCaptures": {579"1": {580"name": "punctuation.whitespace.comment.leading.java"581}582},583"end": "(?!\\G)",584"patterns": [585{586"begin": "//",587"beginCaptures": {588"0": {589"name": "punctuation.definition.comment.java"590}591},592"end": "\\n",593"name": "comment.line.double-slash.java"594}595]596}597]598},599"comments-javadoc": {600"patterns": [601{602"begin": "^\\s*(/\\*\\*)(?!/)",603"beginCaptures": {604"1": {605"name": "punctuation.definition.comment.java"606}607},608"end": "\\*/",609"endCaptures": {610"0": {611"name": "punctuation.definition.comment.java"612}613},614"name": "comment.block.javadoc.java",615"patterns": [616{617"match": "@(author|deprecated|return|see|serial|since|version)\\b",618"name": "keyword.other.documentation.javadoc.java"619},620{621"match": "(@param)\\s+(\\S+)",622"captures": {623"1": {624"name": "keyword.other.documentation.javadoc.java"625},626"2": {627"name": "variable.parameter.java"628}629}630},631{632"match": "(@(?:exception|throws))\\s+(\\S+)",633"captures": {634"1": {635"name": "keyword.other.documentation.javadoc.java"636},637"2": {638"name": "entity.name.type.class.java"639}640}641},642{643"match": "{(@link)\\s+(\\S+)?#([\\w$]+\\s*\\([^\\(\\)]*\\)).*?}",644"captures": {645"1": {646"name": "keyword.other.documentation.javadoc.java"647},648"2": {649"name": "entity.name.type.class.java"650},651"3": {652"name": "variable.parameter.java"653}654}655}656]657}658]659},660"constants-and-special-vars": {661"patterns": [662{663"match": "\\b(true|false|null)\\b",664"name": "constant.language.java"665},666{667"match": "\\bthis\\b",668"name": "variable.language.this.java"669},670{671"match": "\\bsuper\\b",672"name": "variable.language.java"673}674]675},676"enums": {677"begin": "^\\s*([\\w\\s]*)(enum)\\s+(\\w+)",678"beginCaptures": {679"1": {680"patterns": [681{682"include": "#storage-modifiers"683}684]685},686"2": {687"name": "storage.modifier.java"688},689"3": {690"name": "entity.name.type.enum.java"691}692},693"end": "}",694"endCaptures": {695"0": {696"name": "punctuation.section.enum.end.bracket.curly.java"697}698},699"name": "meta.enum.java",700"patterns": [701{702"begin": "\\b(extends)\\b",703"beginCaptures": {704"1": {705"name": "storage.modifier.extends.java"706}707},708"end": "(?={|\\bimplements\\b)",709"name": "meta.definition.class.inherited.classes.java",710"patterns": [711{712"include": "#object-types-inherited"713},714{715"include": "#comments"716}717]718},719{720"begin": "\\b(implements)\\b",721"beginCaptures": {722"1": {723"name": "storage.modifier.implements.java"724}725},726"end": "(?={|\\bextends\\b)",727"name": "meta.definition.class.implemented.interfaces.java",728"patterns": [729{730"include": "#object-types-inherited"731},732{733"include": "#comments"734}735]736},737{738"begin": "{",739"beginCaptures": {740"0": {741"name": "punctuation.section.enum.begin.bracket.curly.java"742}743},744"end": "(?=})",745"patterns": [746{747"begin": "(?<={)",748"end": "(?=;|})",749"patterns": [750{751"include": "#comments-javadoc"752},753{754"include": "#comments"755},756{757"begin": "\\b(\\w+)\\b",758"beginCaptures": {759"1": {760"name": "constant.other.enum.java"761}762},763"end": "(,)|(?=;|})",764"endCaptures": {765"1": {766"name": "punctuation.separator.delimiter.java"767}768},769"patterns": [770{771"include": "#comments-javadoc"772},773{774"include": "#comments"775},776{777"begin": "\\(",778"beginCaptures": {779"0": {780"name": "punctuation.bracket.round.java"781}782},783"end": "\\)",784"endCaptures": {785"0": {786"name": "punctuation.bracket.round.java"787}788},789"patterns": [790{791"include": "#code"792}793]794},795{796"begin": "{",797"beginCaptures": {798"0": {799"name": "punctuation.bracket.curly.java"800}801},802"end": "}",803"endCaptures": {804"0": {805"name": "punctuation.bracket.curly.java"806}807},808"patterns": [809{810"include": "#class-body"811}812]813}814]815}816]817},818{819"include": "#class-body"820}821]822}823]824},825"function-call": {826"begin": "([A-Za-z_$][\\w$]*)\\s*(\\()",827"beginCaptures": {828"1": {829"name": "entity.name.function.java"830},831"2": {832"name": "punctuation.definition.parameters.begin.bracket.round.java"833}834},835"end": "\\)",836"endCaptures": {837"0": {838"name": "punctuation.definition.parameters.end.bracket.round.java"839}840},841"name": "meta.function-call.java",842"patterns": [843{844"include": "#code"845}846]847},848"generics": {849"begin": "<",850"beginCaptures": {851"0": {852"name": "punctuation.bracket.angle.java"853}854},855"end": ">",856"endCaptures": {857"0": {858"name": "punctuation.bracket.angle.java"859}860},861"patterns": [862{863"match": "\\b(extends|super)\\b",864"name": "storage.modifier.$1.java"865},866{867"match": "(?<!\\.)([a-zA-Z$_][a-zA-Z0-9$_]*)(?=\\s*<)",868"captures": {869"1": {870"name": "storage.type.java"871}872}873},874{875"include": "#primitive-arrays"876},877{878"match": "[a-zA-Z$_][a-zA-Z0-9$_]*",879"name": "storage.type.generic.java"880},881{882"match": "\\?",883"name": "storage.type.generic.wildcard.java"884},885{886"match": "&",887"name": "punctuation.separator.types.java"888},889{890"match": ",",891"name": "punctuation.separator.delimiter.java"892},893{894"match": "\\.",895"name": "punctuation.separator.period.java"896},897{898"include": "#parens"899},900{901"include": "#generics"902},903{904"include": "#comments"905}906]907},908"keywords": {909"patterns": [910{911"match": "\\bthrow\\b",912"name": "keyword.control.throw.java"913},914{915"match": "\\?|:",916"name": "keyword.control.ternary.java"917},918{919"match": "\\b(return|yield|break|case|continue|default|do|while|for|switch|if|else)\\b",920"name": "keyword.control.java"921},922{923"match": "\\b(instanceof)\\b",924"name": "keyword.operator.instanceof.java"925},926{927"match": "(<<|>>>?|~|\\^)",928"name": "keyword.operator.bitwise.java"929},930{931"match": "((&|\\^|\\||<<|>>>?)=)",932"name": "keyword.operator.assignment.bitwise.java"933},934{935"match": "(===?|!=|<=|>=|<>|<|>)",936"name": "keyword.operator.comparison.java"937},938{939"match": "([+*/%-]=)",940"name": "keyword.operator.assignment.arithmetic.java"941},942{943"match": "(=)",944"name": "keyword.operator.assignment.java"945},946{947"match": "(\\-\\-|\\+\\+)",948"name": "keyword.operator.increment-decrement.java"949},950{951"match": "(\\-|\\+|\\*|\\/|%)",952"name": "keyword.operator.arithmetic.java"953},954{955"match": "(!|&&|\\|\\|)",956"name": "keyword.operator.logical.java"957},958{959"match": "(\\||&)",960"name": "keyword.operator.bitwise.java"961},962{963"match": "\\b(const|goto)\\b",964"name": "keyword.reserved.java"965}966]967},968"lambda-expression": {969"patterns": [970{971"match": "->",972"name": "storage.type.function.arrow.java"973}974]975},976"member-variables": {977"begin": "(?=private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)",978"end": "(?=\\=|;)",979"patterns": [980{981"include": "#storage-modifiers"982},983{984"include": "#variables"985},986{987"include": "#primitive-arrays"988},989{990"include": "#object-types"991}992]993},994"method-call": {995"begin": "(\\.)\\s*([A-Za-z_$][\\w$]*)\\s*(\\()",996"beginCaptures": {997"1": {998"name": "punctuation.separator.period.java"999},1000"2": {1001"name": "entity.name.function.java"1002},1003"3": {1004"name": "punctuation.definition.parameters.begin.bracket.round.java"1005}1006},1007"end": "\\)",1008"endCaptures": {1009"0": {1010"name": "punctuation.definition.parameters.end.bracket.round.java"1011}1012},1013"name": "meta.method-call.java",1014"patterns": [1015{1016"include": "#code"1017}1018]1019},1020"methods": {1021"begin": "(?!new)(?=[\\w<].*\\s+)(?=([^=/]|/(?!/))+\\()",1022"end": "(})|(?=;)",1023"endCaptures": {1024"1": {1025"name": "punctuation.section.method.end.bracket.curly.java"1026}1027},1028"name": "meta.method.java",1029"patterns": [1030{1031"include": "#storage-modifiers"1032},1033{1034"begin": "(\\w+)\\s*(\\()",1035"beginCaptures": {1036"1": {1037"name": "entity.name.function.java"1038},1039"2": {1040"name": "punctuation.definition.parameters.begin.bracket.round.java"1041}1042},1043"end": "\\)",1044"endCaptures": {1045"0": {1046"name": "punctuation.definition.parameters.end.bracket.round.java"1047}1048},1049"name": "meta.method.identifier.java",1050"patterns": [1051{1052"include": "#parameters"1053},1054{1055"include": "#parens"1056},1057{1058"include": "#comments"1059}1060]1061},1062{1063"include": "#generics"1064},1065{1066"begin": "(?=\\w.*\\s+\\w+\\s*\\()",1067"end": "(?=\\s+\\w+\\s*\\()",1068"name": "meta.method.return-type.java",1069"patterns": [1070{1071"include": "#all-types"1072},1073{1074"include": "#parens"1075},1076{1077"include": "#comments"1078}1079]1080},1081{1082"include": "#throws"1083},1084{1085"begin": "{",1086"beginCaptures": {1087"0": {1088"name": "punctuation.section.method.begin.bracket.curly.java"1089}1090},1091"end": "(?=})",1092"contentName": "meta.method.body.java",1093"patterns": [1094{1095"include": "#code"1096}1097]1098},1099{1100"include": "#comments"1101}1102]1103},1104"module": {1105"begin": "((open)\\s)?(module)\\s+(\\w+)",1106"end": "}",1107"beginCaptures": {1108"1": {1109"name": "storage.modifier.java"1110},1111"3": {1112"name": "storage.modifier.java"1113},1114"4": {1115"name": "entity.name.type.module.java"1116}1117},1118"endCaptures": {1119"0": {1120"name": "punctuation.section.module.end.bracket.curly.java"1121}1122},1123"name": "meta.module.java",1124"patterns": [1125{1126"begin": "{",1127"beginCaptures": {1128"0": {1129"name": "punctuation.section.module.begin.bracket.curly.java"1130}1131},1132"end": "(?=})",1133"contentName": "meta.module.body.java",1134"patterns": [1135{1136"include": "#comments"1137},1138{1139"include": "#comments-javadoc"1140},1141{1142"match": "\\b(requires|transitive|exports|opens|to|uses|provides|with)\\b",1143"name": "keyword.module.java"1144}1145]1146}1147]1148},1149"numbers": {1150"patterns": [1151{1152"match": "(?x)\n\\b(?<!\\$)\n0(x|X)\n(\n (?<!\\.)[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?[Ll]?(?!\\.)\n |\n (\n [0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?\\.?\n |\n ([0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?)?\\.[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?\n )\n [Pp][+-]?[0-9]([0-9_]*[0-9])?[FfDd]?\n)\n\\b(?!\\$)",1153"name": "constant.numeric.hex.java"1154},1155{1156"match": "\\b(?<!\\$)0(b|B)[01]([01_]*[01])?[Ll]?\\b(?!\\$)",1157"name": "constant.numeric.binary.java"1158},1159{1160"match": "\\b(?<!\\$)0[0-7]([0-7_]*[0-7])?[Ll]?\\b(?!\\$)",1161"name": "constant.numeric.octal.java"1162},1163{1164"match": "(?x)\n(?<!\\$)\n(\n \\b[0-9]([0-9_]*[0-9])?\\.\\B(?!\\.)\n |\n \\b[0-9]([0-9_]*[0-9])?\\.([Ee][+-]?[0-9]([0-9_]*[0-9])?)[FfDd]?\\b\n |\n \\b[0-9]([0-9_]*[0-9])?\\.([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]\\b\n |\n \\b[0-9]([0-9_]*[0-9])?\\.([0-9]([0-9_]*[0-9])?)([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]?\\b\n |\n (?<!\\.)\\B\\.[0-9]([0-9_]*[0-9])?([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]?\\b\n |\n \\b[0-9]([0-9_]*[0-9])?([Ee][+-]?[0-9]([0-9_]*[0-9])?)[FfDd]?\\b\n |\n \\b[0-9]([0-9_]*[0-9])?([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]\\b\n |\n \\b(0|[1-9]([0-9_]*[0-9])?)(?!\\.)[Ll]?\\b\n)\n(?!\\$)",1165"name": "constant.numeric.decimal.java"1166}1167]1168},1169"object-types": {1170"patterns": [1171{1172"include": "#generics"1173},1174{1175"begin": "\\b((?:[A-Za-z_]\\w*\\s*\\.\\s*)*)([A-Z_]\\w*)\\s*(?=\\[)",1176"beginCaptures": {1177"1": {1178"patterns": [1179{1180"match": "[A-Za-z_]\\w*",1181"name": "storage.type.java"1182},1183{1184"match": "\\.",1185"name": "punctuation.separator.period.java"1186}1187]1188},1189"2": {1190"name": "storage.type.object.array.java"1191}1192},1193"end": "(?!\\s*\\[)",1194"patterns": [1195{1196"include": "#comments"1197},1198{1199"include": "#parens"1200}1201]1202},1203{1204"match": "\\b((?:[A-Za-z_]\\w*\\s*\\.\\s*)*[A-Z_]\\w*)\\s*(?=<)",1205"captures": {1206"1": {1207"patterns": [1208{1209"match": "[A-Za-z_]\\w*",1210"name": "storage.type.java"1211},1212{1213"match": "\\.",1214"name": "punctuation.separator.period.java"1215}1216]1217}1218}1219},1220{1221"match": "\\b((?:[A-Za-z_]\\w*\\s*\\.\\s*)*[A-Z_]\\w*)\\b((?=\\s*[A-Za-z$_\\n])|(?=\\s*\\.\\.\\.))",1222"captures": {1223"1": {1224"patterns": [1225{1226"match": "[A-Za-z_]\\w*",1227"name": "storage.type.java"1228},1229{1230"match": "\\.",1231"name": "punctuation.separator.period.java"1232}1233]1234}1235}1236}1237]1238},1239"object-types-inherited": {1240"patterns": [1241{1242"include": "#generics"1243},1244{1245"match": "\\b(?:[A-Z]\\w*\\s*(\\.)\\s*)*[A-Z]\\w*\\b",1246"name": "entity.other.inherited-class.java",1247"captures": {1248"1": {1249"name": "punctuation.separator.period.java"1250}1251}1252},1253{1254"match": ",",1255"name": "punctuation.separator.delimiter.java"1256}1257]1258},1259"objects": {1260"match": "(?<![\\w$])[a-zA-Z_$][\\w$]*(?=\\s*\\.\\s*[\\w$]+)",1261"name": "variable.other.object.java"1262},1263"parameters": {1264"patterns": [1265{1266"match": "\\bfinal\\b",1267"name": "storage.modifier.java"1268},1269{1270"include": "#annotations"1271},1272{1273"include": "#all-types"1274},1275{1276"include": "#strings"1277},1278{1279"match": "\\w+",1280"name": "variable.parameter.java"1281},1282{1283"match": ",",1284"name": "punctuation.separator.delimiter.java"1285},1286{1287"match": "\\.\\.\\.",1288"name": "punctuation.definition.parameters.varargs.java"1289}1290]1291},1292"parens": {1293"patterns": [1294{1295"begin": "\\(",1296"beginCaptures": {1297"0": {1298"name": "punctuation.bracket.round.java"1299}1300},1301"end": "\\)",1302"endCaptures": {1303"0": {1304"name": "punctuation.bracket.round.java"1305}1306},1307"patterns": [1308{1309"include": "#code"1310}1311]1312},1313{1314"begin": "\\[",1315"beginCaptures": {1316"0": {1317"name": "punctuation.bracket.square.java"1318}1319},1320"end": "\\]",1321"endCaptures": {1322"0": {1323"name": "punctuation.bracket.square.java"1324}1325},1326"patterns": [1327{1328"include": "#code"1329}1330]1331},1332{1333"begin": "{",1334"beginCaptures": {1335"0": {1336"name": "punctuation.bracket.curly.java"1337}1338},1339"end": "}",1340"endCaptures": {1341"0": {1342"name": "punctuation.bracket.curly.java"1343}1344},1345"patterns": [1346{1347"include": "#code"1348}1349]1350}1351]1352},1353"primitive-arrays": {1354"patterns": [1355{1356"begin": "\\b(void|boolean|byte|char|short|int|float|long|double)\\b\\s*(?=\\[)",1357"beginCaptures": {1358"1": {1359"name": "storage.type.primitive.array.java"1360}1361},1362"end": "(?!\\s*\\[)",1363"patterns": [1364{1365"include": "#comments"1366},1367{1368"include": "#parens"1369}1370]1371}1372]1373},1374"primitive-types": {1375"match": "\\b(void|boolean|byte|char|short|int|float|long|double)\\b",1376"name": "storage.type.primitive.java"1377},1378"properties": {1379"patterns": [1380{1381"match": "(\\.)\\s*(new)",1382"captures": {1383"1": {1384"name": "punctuation.separator.period.java"1385},1386"2": {1387"name": "keyword.control.new.java"1388}1389}1390},1391{1392"match": "(\\.)\\s*([a-zA-Z_$][\\w$]*)(?=\\s*\\.\\s*[a-zA-Z_$][\\w$]*)",1393"captures": {1394"1": {1395"name": "punctuation.separator.period.java"1396},1397"2": {1398"name": "variable.other.object.property.java"1399}1400}1401},1402{1403"match": "(\\.)\\s*([a-zA-Z_$][\\w$]*)",1404"captures": {1405"1": {1406"name": "punctuation.separator.period.java"1407},1408"2": {1409"name": "variable.other.object.property.java"1410}1411}1412},1413{1414"match": "(\\.)\\s*([0-9][\\w$]*)",1415"captures": {1416"1": {1417"name": "punctuation.separator.period.java"1418},1419"2": {1420"name": "invalid.illegal.identifier.java"1421}1422}1423}1424]1425},1426"record": {1427"begin": "(?=\\w?[\\w\\s]*\\b(?:record)\\s+[\\w$]+)",1428"end": "}",1429"endCaptures": {1430"0": {1431"name": "punctuation.section.class.end.bracket.curly.java"1432}1433},1434"name": "meta.record.java",1435"patterns": [1436{1437"include": "#storage-modifiers"1438},1439{1440"include": "#generics"1441},1442{1443"include": "#comments"1444},1445{1446"begin": "(record)\\s+([\\w$]+)(<[\\w$]+>)?(\\()",1447"beginCaptures": {1448"1": {1449"name": "storage.modifier.java"1450},1451"2": {1452"name": "entity.name.type.record.java"1453},1454"3": {1455"patterns": [1456{1457"include": "#generics"1458}1459]1460},1461"4": {1462"name": "punctuation.definition.parameters.begin.bracket.round.java"1463}1464},1465"end": "\\)",1466"endCaptures": {1467"0": {1468"name": "punctuation.definition.parameters.end.bracket.round.java"1469}1470},1471"name": "meta.record.identifier.java",1472"patterns": [1473{1474"include": "#code"1475}1476]1477},1478{1479"begin": "(implements)\\s",1480"beginCaptures": {1481"1": {1482"name": "storage.modifier.implements.java"1483}1484},1485"end": "(?=\\s*\\{)",1486"name": "meta.definition.class.implemented.interfaces.java",1487"patterns": [1488{1489"include": "#object-types-inherited"1490},1491{1492"include": "#comments"1493}1494]1495},1496{1497"include": "#record-body"1498}1499]1500},1501"record-body": {1502"begin": "{",1503"beginCaptures": {1504"0": {1505"name": "punctuation.section.class.begin.bracket.curly.java"1506}1507},1508"end": "(?=})",1509"name": "meta.record.body.java",1510"patterns": [1511{1512"include": "#record-constructor"1513},1514{1515"include": "#class-body"1516}1517]1518},1519"record-constructor": {1520"begin": "(?!new)(?=[\\w<].*\\s+)(?=([^\\(=/]|/(?!/))+(?={))",1521"end": "(})|(?=;)",1522"endCaptures": {1523"1": {1524"name": "punctuation.section.method.end.bracket.curly.java"1525}1526},1527"name": "meta.method.java",1528"patterns": [1529{1530"include": "#storage-modifiers"1531},1532{1533"begin": "(\\w+)",1534"beginCaptures": {1535"1": {1536"name": "entity.name.function.java"1537}1538},1539"end": "(?=\\s*{)",1540"name": "meta.method.identifier.java",1541"patterns": [1542{1543"include": "#comments"1544}1545]1546},1547{1548"include": "#comments"1549},1550{1551"begin": "{",1552"beginCaptures": {1553"0": {1554"name": "punctuation.section.method.begin.bracket.curly.java"1555}1556},1557"end": "(?=})",1558"contentName": "meta.method.body.java",1559"patterns": [1560{1561"include": "#code"1562}1563]1564}1565]1566},1567"static-initializer": {1568"patterns": [1569{1570"include": "#anonymous-block-and-instance-initializer"1571},1572{1573"match": "static",1574"name": "storage.modifier.java"1575}1576]1577},1578"storage-modifiers": {1579"match": "\\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient|volatile|default|strictfp|sealed|non-sealed)\\b",1580"name": "storage.modifier.java"1581},1582"strings": {1583"patterns": [1584{1585"begin": "\"\"\"",1586"beginCaptures": {1587"0": {1588"name": "punctuation.definition.string.begin.java"1589}1590},1591"end": "\"\"\"",1592"endCaptures": {1593"0": {1594"name": "punctuation.definition.string.end.java"1595}1596},1597"name": "string.quoted.triple.java",1598"patterns": [1599{1600"match": "(\\\\\"\"\")(?!\")|(\\\\.)",1601"name": "constant.character.escape.java"1602}1603]1604},1605{1606"begin": "\"",1607"beginCaptures": {1608"0": {1609"name": "punctuation.definition.string.begin.java"1610}1611},1612"end": "\"",1613"endCaptures": {1614"0": {1615"name": "punctuation.definition.string.end.java"1616}1617},1618"name": "string.quoted.double.java",1619"patterns": [1620{1621"match": "\\\\.",1622"name": "constant.character.escape.java"1623}1624]1625},1626{1627"begin": "'",1628"beginCaptures": {1629"0": {1630"name": "punctuation.definition.string.begin.java"1631}1632},1633"end": "'",1634"endCaptures": {1635"0": {1636"name": "punctuation.definition.string.end.java"1637}1638},1639"name": "string.quoted.single.java",1640"patterns": [1641{1642"match": "\\\\.",1643"name": "constant.character.escape.java"1644}1645]1646}1647]1648},1649"throws": {1650"begin": "throws",1651"beginCaptures": {1652"0": {1653"name": "storage.modifier.java"1654}1655},1656"end": "(?={|;)",1657"name": "meta.throwables.java",1658"patterns": [1659{1660"match": ",",1661"name": "punctuation.separator.delimiter.java"1662},1663{1664"match": "[a-zA-Z$_][\\.a-zA-Z0-9$_]*",1665"name": "storage.type.java"1666},1667{1668"include": "#comments"1669}1670]1671},1672"try-catch-finally": {1673"patterns": [1674{1675"begin": "\\btry\\b",1676"beginCaptures": {1677"0": {1678"name": "keyword.control.try.java"1679}1680},1681"end": "}",1682"endCaptures": {1683"0": {1684"name": "punctuation.section.try.end.bracket.curly.java"1685}1686},1687"name": "meta.try.java",1688"patterns": [1689{1690"begin": "\\(",1691"beginCaptures": {1692"0": {1693"name": "punctuation.section.try.resources.begin.bracket.round.java"1694}1695},1696"end": "\\)",1697"endCaptures": {1698"0": {1699"name": "punctuation.section.try.resources.end.bracket.round.java"1700}1701},1702"name": "meta.try.resources.java",1703"patterns": [1704{1705"include": "#code"1706}1707]1708},1709{1710"begin": "{",1711"beginCaptures": {1712"0": {1713"name": "punctuation.section.try.begin.bracket.curly.java"1714}1715},1716"end": "(?=})",1717"contentName": "meta.try.body.java",1718"patterns": [1719{1720"include": "#code"1721}1722]1723}1724]1725},1726{1727"begin": "\\b(catch)\\b",1728"beginCaptures": {1729"1": {1730"name": "keyword.control.catch.java"1731}1732},1733"end": "}",1734"endCaptures": {1735"0": {1736"name": "punctuation.section.catch.end.bracket.curly.java"1737}1738},1739"name": "meta.catch.java",1740"patterns": [1741{1742"include": "#comments"1743},1744{1745"begin": "\\(",1746"beginCaptures": {1747"0": {1748"name": "punctuation.definition.parameters.begin.bracket.round.java"1749}1750},1751"end": "\\)",1752"endCaptures": {1753"0": {1754"name": "punctuation.definition.parameters.end.bracket.round.java"1755}1756},1757"contentName": "meta.catch.parameters.java",1758"patterns": [1759{1760"include": "#comments"1761},1762{1763"include": "#storage-modifiers"1764},1765{1766"begin": "[a-zA-Z$_][\\.a-zA-Z0-9$_]*",1767"beginCaptures": {1768"0": {1769"name": "storage.type.java"1770}1771},1772"end": "(\\|)|(?=\\))",1773"endCaptures": {1774"1": {1775"name": "punctuation.catch.separator.java"1776}1777},1778"patterns": [1779{1780"include": "#comments"1781},1782{1783"match": "\\w+",1784"captures": {1785"0": {1786"name": "variable.parameter.java"1787}1788}1789}1790]1791}1792]1793},1794{1795"begin": "{",1796"beginCaptures": {1797"0": {1798"name": "punctuation.section.catch.begin.bracket.curly.java"1799}1800},1801"end": "(?=})",1802"contentName": "meta.catch.body.java",1803"patterns": [1804{1805"include": "#code"1806}1807]1808}1809]1810},1811{1812"begin": "\\bfinally\\b",1813"beginCaptures": {1814"0": {1815"name": "keyword.control.finally.java"1816}1817},1818"end": "}",1819"endCaptures": {1820"0": {1821"name": "punctuation.section.finally.end.bracket.curly.java"1822}1823},1824"name": "meta.finally.java",1825"patterns": [1826{1827"begin": "{",1828"beginCaptures": {1829"0": {1830"name": "punctuation.section.finally.begin.bracket.curly.java"1831}1832},1833"end": "(?=})",1834"contentName": "meta.finally.body.java",1835"patterns": [1836{1837"include": "#code"1838}1839]1840}1841]1842}1843]1844},1845"variables": {1846"begin": "(?x)\n(?=\n \\b\n (\n (void|boolean|byte|char|short|int|float|long|double)\n |\n (?>(\\w+\\.)*[A-Z_]+\\w*) # e.g. `javax.ws.rs.Response`, or `String`\n )\n \\b\n \\s*\n (\n <[\\w<>,\\.?\\s\\[\\]]*> # e.g. `HashMap<Integer, String>`, or `List<java.lang.String>`\n )?\n \\s*\n (\n (\\[\\])* # int[][]\n )?\n \\s+\n [A-Za-z_$][\\w$]* # At least one identifier after space\n ([\\w\\[\\],$][\\w\\[\\],\\s]*)? # possibly primitive array or additional identifiers\n \\s*(=|:|;)\n)",1847"end": "(?=\\=|:|;)",1848"name": "meta.definition.variable.java",1849"patterns": [1850{1851"match": "([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(;|:|=|,))",1852"captures": {1853"1": {1854"name": "variable.other.definition.java"1855}1856}1857},1858{1859"include": "#all-types"1860},1861{1862"include": "#code"1863}1864]1865},1866"variables-local": {1867"begin": "(?=\\b(var)\\b\\s+[A-Za-z_$][\\w$]*\\s*(=|:|;))",1868"end": "(?=\\=|:|;)",1869"name": "meta.definition.variable.local.java",1870"patterns": [1871{1872"match": "\\bvar\\b",1873"name": "storage.type.local.java"1874},1875{1876"match": "([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(=|:|;))",1877"captures": {1878"1": {1879"name": "variable.other.definition.java"1880}1881}1882},1883{1884"include": "#code"1885}1886]1887}1888}1889}18901891