diff options
-rw-r--r-- | pygments/lexers/web.py | 17 | ||||
-rw-r--r-- | tests/examplefiles/test.xqy | 4 |
2 files changed, 13 insertions, 8 deletions
diff --git a/pygments/lexers/web.py b/pygments/lexers/web.py index 895bdefd..93a6f115 100644 --- a/pygments/lexers/web.py +++ b/pygments/lexers/web.py @@ -2651,12 +2651,14 @@ class XQueryLexer(ExtendedRegexLexer): (r'(\.\d+)[eE][\+\-]?\d+', Number.Double, 'operator'), (r'(\.\d+|\d+\.\d*)', Number, 'operator'), (r'(\d+)', Number.Integer, 'operator'), - (r'(\.\.|\.|\)|\*)', Punctuation, 'operator'), + (r'(\.\.|\.|\))', Punctuation, 'operator'), (r'(declare)(\s+)(construction)', bygroups(Keyword, Text, Keyword), 'operator'), (r'(declare)(\s+)(default)(\s+)(order)', bygroups(Keyword, Text, Keyword, Text, Keyword), 'operator'), (ncname + ':\*', Name, 'operator'), + ('\*:'+ncname, Name.Tag, 'operator'), + ('\*', Name.Tag, 'operator'), (stringdouble, String.Double, 'operator'), (stringsingle, String.Single, 'operator'), @@ -2767,16 +2769,17 @@ class XQueryLexer(ExtendedRegexLexer): (r'(catch)(\s*)(\()(\$)', bygroups(Keyword, Text, Punctuation, Name.Variable), 'varname'), - (r'(@' + qname + ')', pushstate_operator_attribute_callback), - (r'(@\*)', pushstate_operator_attribute_callback), - (r'(@' + ncname + ')', pushstate_operator_attribute_callback), + (r'(@'+qname+')', Name.Attribute), + (r'(@'+ncname+')', Name.Attribute), + (r'@\*:'+ncname, Name.Attribute), + (r'(@)', Name.Attribute), (r'//|/|\+|-|;|,|\(|\)', Punctuation), # STANDALONE QNAMES - (qname + r'(?=\s*{)', Name.Variable, 'qname_braren'), - (qname + r'(?=\s*\()', Name.Function, 'qname_braren'), - (qname, Name.Variable, 'operator'), + (qname + r'(?=\s*{)', Name.Tag, 'qname_braren'), + (qname + r'(?=\s*\([^:])', Name.Function, 'qname_braren'), + (qname, Name.Tag, 'operator'), ] } diff --git a/tests/examplefiles/test.xqy b/tests/examplefiles/test.xqy index 92f9d5a6..c626ea96 100644 --- a/tests/examplefiles/test.xqy +++ b/tests/examplefiles/test.xqy @@ -25,13 +25,15 @@ define function whatsit($param as xs:string) as xs:string { element test { 'a' }, attribute foo { "bar" }, fn:doc()[ foo/@bar eq $let ], - //x/with/another/xpath/@attr } + //x/with/another/*/*:version/xpath/@attr } }; let $bride := "Bride" let $test := validate lax { <some>html</some> } let $test := validate strict { <some>html</some> } let $test := validate { <some>html</some> } +let $test := $var1/*:Article (: comment here :) [fn:not()] +let $test := $var1/@*:name/fn:string() let $noop := ordered { $test } let $noop := unordered { $test } |