View raw

1 { 2 "information_for_contributors": [ 3 "This file has been converted from https://github.com/atom/language-xml/blob/master/grammars/xml.cson", 4 "If you want to provide a fix or improvement, please create a pull request against the original repository.", 5 "Once accepted there, we are happy to receive an update request." 6 ], 7 "version": "https://github.com/atom/language-xml/commit/7bc75dfe779ad5b35d9bf4013d9181864358cb49", 8 "name": "XML", 9 "scopeName": "text.xml", 10 "patterns": [ 11 { 12 "begin": "(<\\?)\\s*([-_a-zA-Z0-9]+)", 13 "captures": { 14 "1": { 15 "name": "punctuation.definition.tag.xml" 16 }, 17 "2": { 18 "name": "entity.name.tag.xml" 19 } 20 }, 21 "end": "(\\?>)", 22 "name": "meta.tag.preprocessor.xml", 23 "patterns": [ 24 { 25 "match": " ([a-zA-Z-]+)", 26 "name": "entity.other.attribute-name.xml" 27 }, 28 { 29 "include": "#doublequotedString" 30 }, 31 { 32 "include": "#singlequotedString" 33 } 34 ] 35 }, 36 { 37 "begin": "(<!)(DOCTYPE)\\s+([:a-zA-Z_][:a-zA-Z0-9_.-]*)", 38 "captures": { 39 "1": { 40 "name": "punctuation.definition.tag.xml" 41 }, 42 "2": { 43 "name": "keyword.other.doctype.xml" 44 }, 45 "3": { 46 "name": "variable.language.documentroot.xml" 47 } 48 }, 49 "end": "\\s*(>)", 50 "name": "meta.tag.sgml.doctype.xml", 51 "patterns": [ 52 { 53 "include": "#internalSubset" 54 } 55 ] 56 }, 57 { 58 "include": "#comments" 59 }, 60 { 61 "begin": "(<)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(?=(\\s[^>]*)?></\\2>)", 62 "beginCaptures": { 63 "1": { 64 "name": "punctuation.definition.tag.xml" 65 }, 66 "2": { 67 "name": "entity.name.tag.xml" 68 }, 69 "3": { 70 "name": "entity.name.tag.namespace.xml" 71 }, 72 "4": { 73 "name": "punctuation.separator.namespace.xml" 74 }, 75 "5": { 76 "name": "entity.name.tag.localname.xml" 77 } 78 }, 79 "end": "(>)(</)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(>)", 80 "endCaptures": { 81 "1": { 82 "name": "punctuation.definition.tag.xml" 83 }, 84 "2": { 85 "name": "punctuation.definition.tag.xml" 86 }, 87 "3": { 88 "name": "entity.name.tag.xml" 89 }, 90 "4": { 91 "name": "entity.name.tag.namespace.xml" 92 }, 93 "5": { 94 "name": "punctuation.separator.namespace.xml" 95 }, 96 "6": { 97 "name": "entity.name.tag.localname.xml" 98 }, 99 "7": { 100 "name": "punctuation.definition.tag.xml" 101 } 102 }, 103 "name": "meta.tag.no-content.xml", 104 "patterns": [ 105 { 106 "include": "#tagStuff" 107 } 108 ] 109 }, 110 { 111 "begin": "(</?)(?:([-\\w\\.]+)((:)))?([-\\w\\.:]+)", 112 "captures": { 113 "1": { 114 "name": "punctuation.definition.tag.xml" 115 }, 116 "2": { 117 "name": "entity.name.tag.namespace.xml" 118 }, 119 "3": { 120 "name": "entity.name.tag.xml" 121 }, 122 "4": { 123 "name": "punctuation.separator.namespace.xml" 124 }, 125 "5": { 126 "name": "entity.name.tag.localname.xml" 127 } 128 }, 129 "end": "(/?>)", 130 "name": "meta.tag.xml", 131 "patterns": [ 132 { 133 "include": "#tagStuff" 134 } 135 ] 136 }, 137 { 138 "include": "#entity" 139 }, 140 { 141 "include": "#bare-ampersand" 142 }, 143 { 144 "begin": "<%@", 145 "beginCaptures": { 146 "0": { 147 "name": "punctuation.section.embedded.begin.xml" 148 } 149 }, 150 "end": "%>", 151 "endCaptures": { 152 "0": { 153 "name": "punctuation.section.embedded.end.xml" 154 } 155 }, 156 "name": "source.java-props.embedded.xml", 157 "patterns": [ 158 { 159 "match": "page|include|taglib", 160 "name": "keyword.other.page-props.xml" 161 } 162 ] 163 }, 164 { 165 "begin": "<%[!=]?(?!--)", 166 "beginCaptures": { 167 "0": { 168 "name": "punctuation.section.embedded.begin.xml" 169 } 170 }, 171 "end": "(?!--)%>", 172 "endCaptures": { 173 "0": { 174 "name": "punctuation.section.embedded.end.xml" 175 } 176 }, 177 "name": "source.java.embedded.xml", 178 "patterns": [ 179 { 180 "include": "source.java" 181 } 182 ] 183 }, 184 { 185 "begin": "<!\\[CDATA\\[", 186 "beginCaptures": { 187 "0": { 188 "name": "punctuation.definition.string.begin.xml" 189 } 190 }, 191 "end": "]]>", 192 "endCaptures": { 193 "0": { 194 "name": "punctuation.definition.string.end.xml" 195 } 196 }, 197 "name": "string.unquoted.cdata.xml" 198 } 199 ], 200 "repository": { 201 "EntityDecl": { 202 "begin": "(<!)(ENTITY)\\s+(%\\s+)?([:a-zA-Z_][:a-zA-Z0-9_.-]*)(\\s+(?:SYSTEM|PUBLIC)\\s+)?", 203 "captures": { 204 "1": { 205 "name": "punctuation.definition.tag.xml" 206 }, 207 "2": { 208 "name": "keyword.other.entity.xml" 209 }, 210 "3": { 211 "name": "punctuation.definition.entity.xml" 212 }, 213 "4": { 214 "name": "variable.language.entity.xml" 215 }, 216 "5": { 217 "name": "keyword.other.entitytype.xml" 218 } 219 }, 220 "end": "(>)", 221 "patterns": [ 222 { 223 "include": "#doublequotedString" 224 }, 225 { 226 "include": "#singlequotedString" 227 } 228 ] 229 }, 230 "bare-ampersand": { 231 "match": "&", 232 "name": "invalid.illegal.bad-ampersand.xml" 233 }, 234 "doublequotedString": { 235 "begin": "\"", 236 "beginCaptures": { 237 "0": { 238 "name": "punctuation.definition.string.begin.xml" 239 } 240 }, 241 "end": "\"", 242 "endCaptures": { 243 "0": { 244 "name": "punctuation.definition.string.end.xml" 245 } 246 }, 247 "name": "string.quoted.double.xml", 248 "patterns": [ 249 { 250 "include": "#entity" 251 }, 252 { 253 "include": "#bare-ampersand" 254 } 255 ] 256 }, 257 "entity": { 258 "captures": { 259 "1": { 260 "name": "punctuation.definition.constant.xml" 261 }, 262 "3": { 263 "name": "punctuation.definition.constant.xml" 264 } 265 }, 266 "match": "(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)", 267 "name": "constant.character.entity.xml" 268 }, 269 "internalSubset": { 270 "begin": "(\\[)", 271 "captures": { 272 "1": { 273 "name": "punctuation.definition.constant.xml" 274 } 275 }, 276 "end": "(\\])", 277 "name": "meta.internalsubset.xml", 278 "patterns": [ 279 { 280 "include": "#EntityDecl" 281 }, 282 { 283 "include": "#parameterEntity" 284 }, 285 { 286 "include": "#comments" 287 } 288 ] 289 }, 290 "parameterEntity": { 291 "captures": { 292 "1": { 293 "name": "punctuation.definition.constant.xml" 294 }, 295 "3": { 296 "name": "punctuation.definition.constant.xml" 297 } 298 }, 299 "match": "(%)([:a-zA-Z_][:a-zA-Z0-9_.-]*)(;)", 300 "name": "constant.character.parameter-entity.xml" 301 }, 302 "singlequotedString": { 303 "begin": "'", 304 "beginCaptures": { 305 "0": { 306 "name": "punctuation.definition.string.begin.xml" 307 } 308 }, 309 "end": "'", 310 "endCaptures": { 311 "0": { 312 "name": "punctuation.definition.string.end.xml" 313 } 314 }, 315 "name": "string.quoted.single.xml", 316 "patterns": [ 317 { 318 "include": "#entity" 319 }, 320 { 321 "include": "#bare-ampersand" 322 } 323 ] 324 }, 325 "tagStuff": { 326 "patterns": [ 327 { 328 "captures": { 329 "1": { 330 "name": "entity.other.attribute-name.namespace.xml" 331 }, 332 "2": { 333 "name": "entity.other.attribute-name.xml" 334 }, 335 "3": { 336 "name": "punctuation.separator.namespace.xml" 337 }, 338 "4": { 339 "name": "entity.other.attribute-name.localname.xml" 340 } 341 }, 342 "match": "(?:^|\\s+)(?:([-\\w.]+)((:)))?([-\\w.:]+)\\s*=" 343 }, 344 { 345 "include": "#doublequotedString" 346 }, 347 { 348 "include": "#singlequotedString" 349 } 350 ] 351 }, 352 "comments": { 353 "patterns": [ 354 { 355 "begin": "<%--", 356 "captures": { 357 "0": { 358 "name": "punctuation.definition.comment.xml" 359 }, 360 "end": "--%>", 361 "name": "comment.block.xml" 362 } 363 }, 364 { 365 "begin": "<!--", 366 "captures": { 367 "0": { 368 "name": "punctuation.definition.comment.xml" 369 } 370 }, 371 "end": "-->", 372 "name": "comment.block.xml", 373 "patterns": [ 374 { 375 "begin": "--(?!>)", 376 "captures": { 377 "0": { 378 "name": "invalid.illegal.bad-comments-or-CDATA.xml" 379 } 380 } 381 } 382 ] 383 } 384 ] 385 } 386 } 387 }