github.com/grafana/tanka@v0.26.1-0.20240506093700-c22cfc35c21a/docs/.vscext/heptio.jsonnet/extension/syntaxes/jsonnet.tmLanguage.json (about) 1 { 2 "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", 3 "name": "Jsonnet", 4 "patterns": [ 5 { 6 "include": "#expression" 7 }, 8 { 9 "include": "#keywords" 10 } 11 ], 12 "repository": { 13 "builtin-functions": { 14 "patterns": [ 15 { 16 "match": "\\bstd[.](acos|asin|atan|ceil|char|codepoint|cos|exp|exponent)\\b", 17 "name": "support.function.jsonnet" 18 }, 19 { 20 "match": "\\bstd[.](filter|floor|force|length|log|makeArray|mantissa)\\b", 21 "name": "support.function.jsonnet" 22 }, 23 { 24 "match": "\\bstd[.](objectFields|objectHas|pow|sin|sqrt|tan|type|thisFile)\\b", 25 "name": "support.function.jsonnet" 26 }, 27 { 28 "match": "\\bstd[.](acos|asin|atan|ceil|char|codepoint|cos|exp|exponent)\\b", 29 "name": "support.function.jsonnet" 30 }, 31 { 32 "match": "\\bstd[.](abs|assertEqual|escapeString(Bash|Dollars|Json|Python))\\b", 33 "name": "support.function.jsonnet" 34 }, 35 { 36 "match": "\\bstd[.](filterMap|flattenArrays|foldl|foldr|format|join)\\b", 37 "name": "support.function.jsonnet" 38 }, 39 { 40 "match": "\\bstd[.](lines|manifest(Ini|Python(Vars)?)|map|max|min|mod)\\b", 41 "name": "support.function.jsonnet" 42 }, 43 { 44 "match": "\\bstd[.](set|set(Diff|Inter|Member|Union)|sort)\\b", 45 "name": "support.function.jsonnet" 46 }, 47 { 48 "match": "\\bstd[.](range|split|stringChars|substr|toString|uniq)\\b", 49 "name": "support.function.jsonnet" 50 } 51 ] 52 }, 53 "comment": { 54 "patterns": [ 55 { 56 "begin": "/\\*", 57 "end": "\\*/", 58 "name": "comment.block.jsonnet" 59 }, 60 { 61 "match": "//.*$", 62 "name": "comment.line.jsonnet" 63 }, 64 { 65 "match": "#.*$", 66 "name": "comment.block.jsonnet" 67 } 68 ] 69 }, 70 "double-quoted-strings": { 71 "begin": "\"", 72 "end": "\"", 73 "name": "string.quoted.double.jsonnet", 74 "patterns": [ 75 { 76 "match": "\\\\([\"\\\\/bfnrt]|(u[0-9a-fA-F]{4}))", 77 "name": "constant.character.escape.jsonnet" 78 }, 79 { 80 "match": "\\\\[^\"\\\\/bfnrtu]", 81 "name": "invalid.illegal.jsonnet" 82 } 83 ] 84 }, 85 "expression": { 86 "patterns": [ 87 { 88 "include": "#literals" 89 }, 90 { 91 "include": "#comment" 92 }, 93 { 94 "include": "#single-quoted-strings" 95 }, 96 { 97 "include": "#double-quoted-strings" 98 }, 99 { 100 "include": "#triple-quoted-strings" 101 }, 102 { 103 "include": "#builtin-functions" 104 }, 105 { 106 "include": "#functions" 107 } 108 ] 109 }, 110 "functions": { 111 "patterns": [ 112 { 113 "begin": "\\b([a-zA-Z_][a-z0-9A-Z_]*)\\s*\\(", 114 "beginCaptures": { 115 "1": { 116 "name": "entity.name.function.jsonnet" 117 } 118 }, 119 "end": "\\)", 120 "name": "meta.function", 121 "patterns": [ 122 { 123 "include": "#expression" 124 } 125 ] 126 } 127 ] 128 }, 129 "keywords": { 130 "patterns": [ 131 { 132 "match": "[!:~\\+\\-&\\|\\^=<>\\*\\/%]", 133 "name": "keyword.operator.jsonnet" 134 }, 135 { 136 "match": "\\$", 137 "name": "keyword.other.jsonnet" 138 }, 139 { 140 "match": "\\b(self|super|import|importstr|local|tailstrict)\\b", 141 "name": "keyword.other.jsonnet" 142 }, 143 { 144 "match": "\\b(if|then|else|for|in|error|assert)\\b", 145 "name": "keyword.control.jsonnet" 146 }, 147 { 148 "match": "\\b(function)\\b", 149 "name": "storage.type.jsonnet" 150 }, 151 { 152 "match": "[a-zA-Z_][a-z0-9A-Z_]*\\s*(:::|\\+:::)", 153 "name": "variable.parameter.jsonnet" 154 }, 155 { 156 "match": "[a-zA-Z_][a-z0-9A-Z_]*\\s*(::|\\+::)", 157 "name": "entity.name.type" 158 }, 159 { 160 "match": "[a-zA-Z_][a-z0-9A-Z_]*\\s*(:|\\+:)", 161 "name": "variable.parameter.jsonnet" 162 } 163 ] 164 }, 165 "literals": { 166 "patterns": [ 167 { 168 "match": "\\b(true|false|null)\\b", 169 "name": "constant.language.jsonnet" 170 }, 171 { 172 "match": "\\b(\\d+([Ee][+-]?\\d+)?)\\b", 173 "name": "constant.numeric.jsonnet" 174 }, 175 { 176 "match": "\\b\\d+[.]\\d*([Ee][+-]?\\d+)?\\b", 177 "name": "constant.numeric.jsonnet" 178 }, 179 { 180 "match": "\\b[.]\\d+([Ee][+-]?\\d+)?\\b", 181 "name": "constant.numeric.jsonnet" 182 } 183 ] 184 }, 185 "single-quoted-strings": { 186 "begin": "'", 187 "end": "'", 188 "name": "string.quoted.double.jsonnet", 189 "patterns": [ 190 { 191 "match": "\\\\(['\\\\/bfnrt]|(u[0-9a-fA-F]{4}))", 192 "name": "constant.character.escape.jsonnet" 193 }, 194 { 195 "match": "\\\\[^'\\\\/bfnrtu]", 196 "name": "invalid.illegal.jsonnet" 197 } 198 ] 199 }, 200 "triple-quoted-strings": { 201 "patterns": [ 202 { 203 "begin": "\\|\\|\\|", 204 "end": "\\|\\|\\|", 205 "name": "string.quoted.triple.jsonnet" 206 } 207 ] 208 } 209 }, 210 "scopeName": "source.jsonnet" 211 }