diff --git a/extensions/xml/OSSREADME.json b/extensions/xml/OSSREADME.json index ed966ff198d..accbe074950 100644 --- a/extensions/xml/OSSREADME.json +++ b/extensions/xml/OSSREADME.json @@ -1,23 +1,10 @@ // ATTENTION - THIS DIRECTORY CONTAINS THIRD PARTY OPEN SOURCE MATERIALS: [{ - "name": "textmate/xml.tmbundle", + "name": "atom/language-xml", "version": "0.0.0", - "license": "TextMate Bundle License", - "repositoryURL": "https://github.com/textmate/xml.tmbundle", - "licenseDetail": [ - "Copyright (c) textmate-xml.tmbundle project authors", - "", - "If not otherwise specified (see below), files in this repository fall under the following license:", - "", - "Permission to copy, use, modify, sell and distribute this", - "software is granted. This software is provided \"as is\" without", - "express or implied warranty, and with no claim as to its", - "suitability for any purpose.", - "", - "An exception is made for files in readable text which contain their own license information,", - "or files where an accompanying file exists (in the same directory) with a \"-license\" suffix added", - "to the base-name name of the original file, and an extension of txt, html, or similar. For example", - "\"tidy\" is accompanied by \"tidy-license.txt\"." - ] + "license": "MIT", + "repositoryURL": "https://github.com/atom/language-xml", + "description": "The files syntaxes/xml.json and syntaxes/xsl.json were derived from the Atom package https://github.com/atom/language-xml which were originally converted from the TextMate bundle https://github.com/textmate/xml.tmbundle." + }] diff --git a/extensions/xml/package.json b/extensions/xml/package.json index 2b0fc573b6b..33df7437ee2 100644 --- a/extensions/xml/package.json +++ b/extensions/xml/package.json @@ -77,11 +77,14 @@ "grammars": [{ "language": "xml", "scopeName": "text.xml", - "path": "./syntaxes/XML.plist" + "path": "./syntaxes/xml.json" }, { "language": "xsl", "scopeName": "text.xml.xsl", - "path": "./syntaxes/XSL.plist" + "path": "./syntaxes/xsl.json" }] + }, + "scripts": { + "update-grammar": "node ../../build/npm/update-grammar.js atom/language-xml grammars/xml.cson ./syntaxes/xml.json grammars/xsl.cson ./syntaxes/xsl.json" } } diff --git a/extensions/xml/syntaxes/XML.plist b/extensions/xml/syntaxes/XML.plist deleted file mode 100644 index d2957d723e0..00000000000 --- a/extensions/xml/syntaxes/XML.plist +++ /dev/null @@ -1,573 +0,0 @@ - - - - - fileTypes - - xml - xsd - tld - jsp - pt - cpt - dtml - rss - opml - - keyEquivalent - ^~X - name - XML - patterns - - - begin - (<\?)\s*([-_\p{L}\d]+) - captures - - 1 - - name - punctuation.definition.tag.xml - - 2 - - name - entity.name.tag.xml - - - end - (\?>) - name - meta.tag.preprocessor.xml - patterns - - - match - ([\p{L}-]+) - name - entity.other.attribute-name.xml - - - include - #doublequotedString - - - include - #singlequotedString - - - - - begin - (<!)(DOCTYPE)\s+([:\p{L}_][:\p{L}\d_.-]*) - captures - - 1 - - name - punctuation.definition.tag.xml - - 2 - - name - keyword.other.doctype.xml - - 3 - - name - variable.language.documentroot.xml - - - end - \s*(>) - name - meta.tag.sgml.doctype.xml - patterns - - - include - #internalSubset - - - - - begin - <[!%]-- - captures - - 0 - - name - punctuation.definition.comment.xml - - - end - --%?> - name - comment.block.xml - - - begin - (<)((?:([-_\p{L}\d]+)((:)))?([-_\p{L}\d:]+))(?=(\s[^>]*)?></\2>) - beginCaptures - - 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 - - 6 - - name - entity.name.tag.localname.xml - - - end - (>(<))/(?:([-_\p{L}\d]+)((:)))?([-_\p{L}\d:]+)(>) - endCaptures - - 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 - - 6 - - name - entity.name.tag.localname.xml - - 7 - - name - punctuation.definition.tag.xml - - - name - meta.tag.no-content.xml - patterns - - - include - #tagStuff - - - - - begin - (</?)(?:([-_\p{L}\d]+)((:)))?([-_\p{L}\d:]+) - 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 - - - end - (/?>) - name - meta.tag.xml - patterns - - - include - #tagStuff - - - - - include - #entity - - - include - #bare-ampersand - - - begin - <%@ - beginCaptures - - 0 - - name - punctuation.section.embedded.begin.xml - - - end - %> - endCaptures - - 0 - - name - punctuation.section.embedded.end.xml - - - name - source.java-props.embedded.xml - patterns - - - match - page|include|taglib - name - keyword.other.page-props.xml - - - - - begin - <%[!=]?(?!--) - beginCaptures - - 0 - - name - punctuation.section.embedded.begin.xml - - - end - (?!--)%> - endCaptures - - 0 - - name - punctuation.section.embedded.end.xml - - - name - source.java.embedded.xml - patterns - - - include - source.java - - - - - begin - <!\[CDATA\[ - beginCaptures - - 0 - - name - punctuation.definition.string.begin.xml - - - end - ]]> - endCaptures - - 0 - - name - punctuation.definition.string.end.xml - - - name - string.unquoted.cdata.xml - - - repository - - EntityDecl - - begin - (<!)(ENTITY)\s+(%\s+)?([:\p{L}_][:\p{L}\d_.-]*)(\s+(?:SYSTEM|PUBLIC)\s+)? - captures - - 1 - - name - punctuation.definition.tag.xml - - 2 - - name - keyword.other.entity.xml - - 3 - - name - punctuation.definition.entity.xml - - 4 - - name - variable.language.entity.xml - - 5 - - name - keyword.other.entitytype.xml - - - end - (>) - patterns - - - include - #doublequotedString - - - include - #singlequotedString - - - - bare-ampersand - - match - & - name - invalid.illegal.bad-ampersand.xml - - doublequotedString - - begin - " - beginCaptures - - 0 - - name - punctuation.definition.string.begin.xml - - - end - " - endCaptures - - 0 - - name - punctuation.definition.string.end.xml - - - name - string.quoted.double.xml - patterns - - - include - #entity - - - include - #bare-ampersand - - - - entity - - captures - - 1 - - name - punctuation.definition.constant.xml - - 3 - - name - punctuation.definition.constant.xml - - - match - (&)([:\p{L}_][:\p{L}\d_.-]*|#[\d]+|#x[\da-fA-F]+)(;) - name - constant.character.entity.xml - - internalSubset - - begin - (\[) - captures - - 1 - - name - punctuation.definition.constant.xml - - - end - (\]) - name - meta.internalsubset.xml - patterns - - - include - #EntityDecl - - - include - #parameterEntity - - - - parameterEntity - - captures - - 1 - - name - punctuation.definition.constant.xml - - 3 - - name - punctuation.definition.constant.xml - - - match - (%)([:\p{L}_][:\p{L}\d_.-]*)(;) - name - constant.character.parameter-entity.xml - - singlequotedString - - begin - ' - beginCaptures - - 0 - - name - punctuation.definition.string.begin.xml - - - end - ' - endCaptures - - 0 - - name - punctuation.definition.string.end.xml - - - name - string.quoted.single.xml - patterns - - - include - #entity - - - include - #bare-ampersand - - - - 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 - (?:([-_\p{L}\d]+)((:)))?([-_\p{L}\d]+)= - - - include - #doublequotedString - - - include - #singlequotedString - - - - - scopeName - text.xml - uuid - D3C4E6DA-6B1C-11D9-8CC2-000D93589AF6 - - \ No newline at end of file diff --git a/extensions/xml/syntaxes/XSL.plist b/extensions/xml/syntaxes/XSL.plist deleted file mode 100644 index a76f52629b4..00000000000 --- a/extensions/xml/syntaxes/XSL.plist +++ /dev/null @@ -1,153 +0,0 @@ - - - - - fileTypes - - xsl - xslt - - keyEquivalent - ^~X - name - XSL - patterns - - - begin - (<)(xsl)((:))(template) - 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 - - - end - (>) - name - meta.tag.xml.template - 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 - (?:([-_\p{L}\d]+)((:)))?([\p{L}-]+) - - - include - #doublequotedString - - - include - #singlequotedString - - - - - include - text.xml - - - repository - - doublequotedString - - begin - " - beginCaptures - - 0 - - name - punctuation.definition.string.begin.xml - - - end - " - endCaptures - - 0 - - name - punctuation.definition.string.end.xml - - - name - string.quoted.double.xml - - singlequotedString - - begin - ' - beginCaptures - - 0 - - name - punctuation.definition.string.begin.xml - - - end - ' - endCaptures - - 0 - - name - punctuation.definition.string.end.xml - - - name - string.quoted.single.xml - - - scopeName - text.xml.xsl - uuid - DB8033A1-6D8E-4D80-B8A2-8768AAC6125D - - \ No newline at end of file diff --git a/extensions/xml/syntaxes/xml.json b/extensions/xml/syntaxes/xml.json new file mode 100644 index 00000000000..8237ae9f315 --- /dev/null +++ b/extensions/xml/syntaxes/xml.json @@ -0,0 +1,426 @@ +{ + "scopeName": "text.xml", + "name": "XML", + "fileTypes": [ + "atom", + "axml", + "bpmn", + "config", + "cpt", + "csl", + "csproj", + "csproj.user", + "dae", + "dia", + "dita", + "ditamap", + "dtml", + "fodg", + "fodp", + "fods", + "fodt", + "fsproj", + "fxml", + "glade", + "gpx", + "graphml", + "icls", + "iml", + "isml", + "jmx", + "jsp", + "launch", + "menu", + "mxml", + "nuspec", + "opml", + "owl", + "pom", + "ppj", + "proj", + "pt", + "pubxml", + "pubxml.user", + "rdf", + "rng", + "rss", + "shproj", + "storyboard", + "svg", + "targets", + "tld", + "vbox", + "vbox-prev", + "vbproj", + "vbproj.user", + "vcproj", + "vcproj.filters", + "vcxproj", + "vcxproj.filters", + "wsdl", + "xaml", + "xbl", + "xib", + "xlf", + "xliff", + "xml", + "xpdl", + "xsd", + "xul", + "ui" + ], + "patterns": [ + { + "begin": "(<\\?)\\s*([-_a-zA-Z0-9]+)", + "captures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "entity.name.tag.xml" + } + }, + "end": "(\\?>)", + "name": "meta.tag.preprocessor.xml", + "patterns": [ + { + "match": " ([a-zA-Z-]+)", + "name": "entity.other.attribute-name.xml" + }, + { + "include": "#doublequotedString" + }, + { + "include": "#singlequotedString" + } + ] + }, + { + "begin": "()", + "name": "meta.tag.sgml.doctype.xml", + "patterns": [ + { + "include": "#internalSubset" + } + ] + }, + { + "include": "#comments" + }, + { + "begin": "(<)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(?=(\\s[^>]*)?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "entity.name.tag.xml" + }, + "3": { + "name": "entity.name.tag.namespace.xml" + }, + "4": { + "name": "punctuation.separator.namespace.xml" + }, + "5": { + "name": "entity.name.tag.localname.xml" + } + }, + "end": "(>)()", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "punctuation.definition.tag.xml" + }, + "3": { + "name": "entity.name.tag.xml" + }, + "4": { + "name": "entity.name.tag.namespace.xml" + }, + "5": { + "name": "punctuation.separator.namespace.xml" + }, + "6": { + "name": "entity.name.tag.localname.xml" + }, + "7": { + "name": "punctuation.definition.tag.xml" + } + }, + "name": "meta.tag.no-content.xml", + "patterns": [ + { + "include": "#tagStuff" + } + ] + }, + { + "begin": "()", + "name": "meta.tag.xml", + "patterns": [ + { + "include": "#tagStuff" + } + ] + }, + { + "include": "#entity" + }, + { + "include": "#bare-ampersand" + }, + { + "begin": "<%@", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.xml" + } + }, + "end": "%>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.xml" + } + }, + "name": "source.java-props.embedded.xml", + "patterns": [ + { + "match": "page|include|taglib", + "name": "keyword.other.page-props.xml" + } + ] + }, + { + "begin": "<%[!=]?(?!--)", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.xml" + } + }, + "end": "(?!--)%>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.xml" + } + }, + "name": "source.java.embedded.xml", + "patterns": [ + { + "include": "source.java" + } + ] + }, + { + "begin": "", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.unquoted.cdata.xml" + } + ], + "repository": { + "EntityDecl": { + "begin": "()", + "patterns": [ + { + "include": "#doublequotedString" + }, + { + "include": "#singlequotedString" + } + ] + }, + "bare-ampersand": { + "match": "&", + "name": "invalid.illegal.bad-ampersand.xml" + }, + "doublequotedString": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.double.xml", + "patterns": [ + { + "include": "#entity" + }, + { + "include": "#bare-ampersand" + } + ] + }, + "entity": { + "captures": { + "1": { + "name": "punctuation.definition.constant.xml" + }, + "3": { + "name": "punctuation.definition.constant.xml" + } + }, + "match": "(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)", + "name": "constant.character.entity.xml" + }, + "internalSubset": { + "begin": "(\\[)", + "captures": { + "1": { + "name": "punctuation.definition.constant.xml" + } + }, + "end": "(\\])", + "name": "meta.internalsubset.xml", + "patterns": [ + { + "include": "#EntityDecl" + }, + { + "include": "#parameterEntity" + }, + { + "include": "#comments" + } + ] + }, + "parameterEntity": { + "captures": { + "1": { + "name": "punctuation.definition.constant.xml" + }, + "3": { + "name": "punctuation.definition.constant.xml" + } + }, + "match": "(%)([:a-zA-Z_][:a-zA-Z0-9_.-]*)(;)", + "name": "constant.character.parameter-entity.xml" + }, + "singlequotedString": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.single.xml", + "patterns": [ + { + "include": "#entity" + }, + { + "include": "#bare-ampersand" + } + ] + }, + "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": "(?:^|\\s+)(?:([-\\w.]+)((:)))?([-\\w.:]+)=" + }, + { + "include": "#doublequotedString" + }, + { + "include": "#singlequotedString" + } + ] + }, + "comments": { + "begin": "<[!%]--", + "captures": { + "0": { + "name": "punctuation.definition.comment.xml" + } + }, + "end": "--%?>", + "name": "comment.block.xml" + } + }, + "version": "https://github.com/atom/language-xml/commit/f461d428fb87040cb8a52d87d0b95151b9d3c0cc" +} \ No newline at end of file diff --git a/extensions/xml/syntaxes/xsl.json b/extensions/xml/syntaxes/xsl.json new file mode 100644 index 00000000000..8b715b599f9 --- /dev/null +++ b/extensions/xml/syntaxes/xsl.json @@ -0,0 +1,93 @@ +{ + "scopeName": "text.xml.xsl", + "name": "XSL", + "fileTypes": [ + "xsl", + "xslt" + ], + "patterns": [ + { + "begin": "(<)(xsl)((:))(template)", + "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" + } + }, + "end": "(>)", + "name": "meta.tag.xml.template", + "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" + } + ] + }, + { + "include": "text.xml" + } + ], + "repository": { + "doublequotedString": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.double.xml" + }, + "singlequotedString": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.single.xml" + } + }, + "version": "https://github.com/atom/language-xml/commit/507de2ee7daca60cf02e9e21fbeb92bbae73e280" +} \ No newline at end of file diff --git a/extensions/xml/test/colorize-results/test_xml.json b/extensions/xml/test/colorize-results/test_xml.json index f574d2caf51..0938fe5c0a9 100644 --- a/extensions/xml/test/colorize-results/test_xml.json +++ b/extensions/xml/test/colorize-results/test_xml.json @@ -1353,7 +1353,7 @@ } }, { - "c": "VisualState", + "c": "VisualState.Setters", "t": "entity.localname.meta.name.tag.xml", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.tag rgb(86, 156, 214)", @@ -1363,17 +1363,6 @@ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.entity.name.tag rgb(86, 156, 214)" } }, - { - "c": ".Setters", - "t": "meta.tag.xml", - "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" - } - }, { "c": ">", "t": "definition.meta.punctuation.tag.xml", @@ -1760,7 +1749,7 @@ } }, { - "c": "VisualState", + "c": "VisualState.Setters", "t": "entity.localname.meta.name.tag.xml", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.tag rgb(86, 156, 214)", @@ -1770,17 +1759,6 @@ "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.entity.name.tag rgb(86, 156, 214)" } }, - { - "c": ".Setters", - "t": "meta.tag.xml", - "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" - } - }, { "c": ">", "t": "definition.meta.punctuation.tag.xml",