--- name: XML fileTypes: - xml - tld - jsp - pt - cpt - dtml - rss - opml scopeName: text.xml repository: tagStuff: patterns: - captures: '1': name: entity.other.attribute-name.namespace.xml '2': name: entity.other.attribute-name.xml '3': name: punctuation.separator.namespace.xml '4': name: entity.other.attribute-name.localname.xml match: " (?:([-_a-zA-Z0-9]+)((:)))?([_a-zA-Z-]+)=" - include: "#doublequotedString" - include: "#singlequotedString" singlequotedString: name: string.quoted.single.xml endCaptures: '0': name: punctuation.definition.string.end.xml begin: "'" beginCaptures: '0': name: punctuation.definition.string.begin.xml end: "'" doublequotedString: name: string.quoted.double.xml endCaptures: '0': name: punctuation.definition.string.end.xml begin: "\"" beginCaptures: '0': name: punctuation.definition.string.begin.xml end: "\"" uuid: D3C4E6DA-6B1C-11D9-8CC2-000D93589AF6 foldingStartMarker: "^\\s*(<[^!?%/](?!.+?(/>|))|<[!%]--(?!.+?--%?>)|<%[!]?(?!.+?%>))" patterns: - name: meta.tag.preprocessor.xml captures: '1': name: punctuation.definition.tag.xml '2': name: entity.name.tag.xml begin: "(<\\?)\\s*([-_a-zA-Z0-9]+)" end: "(\\?>)" patterns: - name: entity.other.attribute-name.xml match: " ([a-zA-Z-]+)" - include: "#doublequotedString" - include: "#singlequotedString" - name: meta.tag.sgml.doctype.xml captures: '1': name: punctuation.definition.tag.xml '2': name: entity.name.tag.doctype.xml begin: "()" patterns: - captures: '1': name: punctuation.definition.tag.xml '2': name: entity.name.tag.entity.xml '3': name: meta.entity.xml begin: "()" patterns: - include: "#doublequotedString" - include: "#singlequotedString" - name: comment.block.xml captures: '0': name: punctuation.definition.comment.xml begin: "<[!%]--" end: "--%?>" - name: meta.tag.no-content.xml endCaptures: '6': name: entity.name.tag.localname.xml '7': name: punctuation.definition.tag.xml '1': name: punctuation.definition.tag.xml '2': name: meta.scope.between-tag-pair.xml '3': name: entity.name.tag.namespace.xml '4': name: entity.name.tag.xml '5': name: punctuation.separator.namespace.xml begin: "(<)((?:([-_a-zA-Z0-9]+)((:)))?([-_a-zA-Z0-9:]+))(?=(\\s[^>]*)?>)" beginCaptures: '6': name: entity.name.tag.localname.xml '1': name: punctuation.definition.tag.xml '3': name: entity.name.tag.namespace.xml '4': name: entity.name.tag.xml '5': name: punctuation.separator.namespace.xml end: "(>(<))/(?:([-_a-zA-Z0-9]+)((:)))?([-_a-zA-Z0-9:]+)(>)" patterns: - include: "#tagStuff" - name: meta.tag.xml captures: '1': name: punctuation.definition.tag.xml '2': name: entity.name.tag.namespace.xml '3': name: entity.name.tag.xml '4': name: punctuation.separator.namespace.xml '5': name: entity.name.tag.localname.xml begin: "()" patterns: - include: "#tagStuff" - name: constant.character.entity.xml captures: '1': name: punctuation.definition.constant.xml '3': name: punctuation.definition.constant.xml match: "(&)([a-zA-Z0-9_-]+|#[0-9]+|#x[0-9a-fA-F]+)(;)" - name: invalid.illegal.bad-ampersand.xml match: "&" - name: source.java-props.embedded.xml endCaptures: '0': name: punctuation.section.embedded.end.xml begin: "<%@" beginCaptures: '0': name: punctuation.section.embedded.begin.xml end: "%>" patterns: - name: keyword.other.page-props.xml match: page|include|taglib - name: source.java.embedded.xml endCaptures: '0': name: punctuation.section.embedded.end.xml begin: "<%[!=]?(?!--)" beginCaptures: '0': name: punctuation.section.embedded.begin.xml end: "(?!--)%>" patterns: - include: source.java - name: string.unquoted.cdata.xml endCaptures: '0': name: punctuation.definition.string.end.xml begin: "" foldingStopMarker: "^\\s*(]+>|[/%]>|-->)\\s*$" keyEquivalent: "^~X"