{ "name": "JSONiq", "scopeName": "source.jq", "patterns": [ { "begin": "^(?=xquery\\s+version\\s+)", "end": "\\z", "patterns": [ { "include": "source.xq" } ] }, { "name": "constant.jsoniq", "begin": "\\(#", "end": "#\\)" }, { "name": "comment.doc.jsoniq", "begin": "\\(:~", "end": ":\\)", "patterns": [ { "name": "constant.language.jsoniq", "match": "@[a-zA-Z0-9_\\.\\-]+" } ] }, { "include": "#XMLComment" }, { "include": "#CDATA" }, { "include": "#PredefinedEntityRef" }, { "include": "#CharRef" }, { "name": "comment.jsoniq", "begin": "\u003c\\?", "end": "\\?\u003e" }, { "name": "comment.jsoniq", "begin": "\\(:", "end": ":\\)" }, { "name": "string.jsoniq", "begin": "\"", "end": "\"", "patterns": [ { "name": "constant.character.escape.jsoniq", "match": "(?x: # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4} # and four hex digits\n )\n )" }, { "name": "invalid.illegal.unrecognized-string-escape.jsoniq", "match": "\\\\." } ] }, { "name": "meta.declaration.annotation.jsoniq", "match": "%([\\-_a-zA-Z0-9][\\-\\._a-zA-Z0-9]*:)?([\\-_a-zA-Z0-9][\\-\\._a-zA-Z0-9]*)" }, { "name": "support.type.jsoniq", "match": "@(\\* | ([\\-_a-zA-Z0-9][\\-\\._a-zA-Z0-9]*:)?([\\-_a-zA-Z0-9][\\-\\._a-zA-Z0-9]*))" }, { "name": "meta.definition.variable.name.jsoniq", "match": "\\$([\\-_a-zA-Z0-9][\\-\\._a-zA-Z0-9]*:)?([\\-_a-zA-Z0-9][\\-_a-zA-Z0-9]*)" }, { "name": "constant.numeric.jsoniq", "match": "\\b(\\.[0-9]+|[0-9]+(\\.[0-9]*)?)[Ee][+#x002D]?[0-9]+\\b" }, { "name": "constant.numeric.jsoniq", "match": "\\b(\\.[0-9]+|[0-9]+\\.[0-9]*)\\b" }, { "name": "constant.numeric.jsoniq", "match": "\\b[0-9]+\\b" }, { "name": "keyword.jsoniq", "match": "\\b(NaN|after|allowing|ancestor|ancestor-or-self|and|append|array|as|ascending|at|attribute|base-uri|before|boundary-space|break|by|case|cast|castable|catch|child|collation|comment|constraint|construction|contains|context|continue|copy|copy-namespaces|count|decimal-format|decimal-separator|declare|default|delete|descendant|descendant-or-self|descending|digit|div|document|document-node|element|else|empty|empty-sequence|encoding|end|eq|every|except|exit|external|false|first|following|following-sibling|for|from|ft-option|function|ge|greatest|group|grouping-separator|gt|idiv|if|import|in|index|infinity|insert|instance|integrity|intersect|into|is|item|json|json-item|jsoniq|last|lax|le|least|let|loop|lt|minus-sign|mod|modify|module|namespace|namespace-node|ne|next|node|nodes|not|null|object|of|only|option|or|order|ordered|ordering|paragraphs|parent|pattern-separator|per-mille|percent|preceding|preceding-sibling|previous|processing-instruction|rename|replace|return|returning|revalidation|satisfies|schema|schema-attribute|schema-element|score|select|self|sentences|sliding|some|stable|start|strict|switch|text|then|times|to|treat|true|try|tumbling|type|typeswitch|union|unordered|updating|validate|value|variable|version|when|where|while|window|with|words|xquery|zero-digit)(?!(:|\\-))\\b" }, { "name": "support.function.jsoniq", "match": "([\\-_a-zA-Z0-9][\\-\\._a-zA-Z0-9]*:)?([\\-_a-zA-Z0-9][\\-_a-zA-Z0-9]*)(?=\\s*\\()" }, { "name": "lparen.jsoniq", "match": "\\(" }, { "name": "rparent.jsoniq", "match": "\\)" }, { "include": "#OpenTag" }, { "include": "#CloseTag" } ], "repository": { "CDATA": { "name": "constant.language.jsoniq", "begin": "\u003c!\\[CDATA\\[", "end": "\\]\\]\u003e" }, "CharRef": { "name": "constant.language.escape.jsoniq", "match": "\u0026#([0-9]+|x[0-9A-Fa-f]+);" }, "CloseTag": { "name": "punctuation.definition.tag.jsoniq", "match": "\u003c\\/([\\-_a-zA-Z0-9][\\-\\._a-zA-Z0-9]*:)?([\\-_a-zA-Z0-9][\\-_a-zA-Z0-9]*)\\s*\u003e" }, "EnclosedExpr": { "name": "source.jq", "begin": "{", "end": "}", "patterns": [ { "include": "$self" } ] }, "OpenTag": { "name": "punctuation.definition.tag.jsoniq", "begin": "\u003c([\\-_a-zA-Z0-9][\\-\\._a-zA-Z0-9]*:)?([\\-_a-zA-Z0-9][\\-_a-zA-Z0-9]*)", "end": "(\\/\u003e|\u003e)", "patterns": [ { "name": "entity.other.attribute-name.jsoniq", "match": "([\\-_a-zA-Z0-9][\\-\\._a-zA-Z0-9]*:)?([\\-_a-zA-Z0-9][\\-_a-zA-Z0-9]*)" }, { "name": "source.jq", "match": "=" }, { "name": "string.jsoniq", "begin": "'", "end": "'(?!')", "patterns": [ { "name": "constant.jsoniq", "match": "''" }, { "include": "#PredefinedEntityRef" }, { "include": "#CharRef" }, { "name": "constant.jsoniq", "match": "({{|}})" }, { "include": "#EnclosedExpr" } ] }, { "name": "string.jsoniq", "begin": "\"", "end": "\"(?!\")", "patterns": [ { "name": "constant.jsoniq", "match": "\"\"" }, { "include": "#PredefinedEntityRef" }, { "include": "#CharRef" }, { "name": "string.jsoniq", "match": "({{|}})" }, { "include": "#EnclosedExpr" } ] } ] }, "PredefinedEntityRef": { "name": "constant.language.escape.jsoniq", "match": "\u0026(lt|gt|amp|quot|apos);" }, "XMLComment": { "name": "comment.jsoniq", "begin": "\u003c!--", "end": "--\u003e" } } }