comparison runtime/syntax/xquery.vim @ 2681:85c5a72551e2

Updated runtime files.
author Bram Moolenaar <bram@vim.org>
date Sat, 08 Jan 2011 16:06:37 +0100
parents 7bc41231fbc7
children fd09a9c8468e
comparison
equal deleted inserted replaced
2680:27621abffed2 2681:85c5a72551e2
1 " Vim syntax file 1 " Vim syntax file
2 " Language: XQuery 2 " Language: XQuery
3 " Author: Jean-Marc Vanel <http://jmvanel.free.fr/> 3 " Author: René Neumann <necoro@necoro.eu>
4 " Last Change: mar jui 12 18:04:05 CEST 2005 4 " Author: Steve Spigarelli <http://spig.net/>
5 " Original Author: Jean-Marc Vanel <http://jmvanel.free.fr/>
6 " Last Change: December 11, 2010
5 " Filenames: *.xq 7 " Filenames: *.xq
6 " URL: http://jmvanel.free.fr/vim/xquery.vim 8 " URL: http://jmvanel.free.fr/vim/xquery.vim
7 " $Id: xquery.vim,v 1.1 2005/07/18 21:44:56 vimboss Exp $
8 9
9 " REFERENCES: 10 " REFERENCES:
10 " [1] http://www.w3.org/TR/xquery/ 11 " [1] http://www.w3.org/TR/xquery/
11 12
12 " Quit when a syntax file was already loaded 13 " Quit when a syntax file was already loaded
13 if exists("b:current_syntax") 14 if exists("b:current_syntax")
14 finish 15 finish
15 endif 16 endif
16 17
18 " - is allowed in keywords
19 setlocal iskeyword+=-
20
17 runtime syntax/xml.vim 21 runtime syntax/xml.vim
18 22
19 syn case match 23 syn case match
20 24
21 " From XQuery grammar: 25 " From XQuery grammar:
22 syn keyword xqueryStatement ancestor ancestor-or-self and as ascending at attribute base-uri by case cast castable child collation construction declare default descendant descendant-or-self descending div document element else empty encoding eq every except external following following-sibling for function ge greatest gt idiv if import in inherit-namespaces instance intersect is le least let lt mod module namespace ne no of or order ordered ordering parent preceding preceding-sibling preserve return satisfies schema self some stable strip then to treat typeswitch union unordered validate variable version where xmlspace xquery yes 26 syn keyword xqStatement ancestor ancestor-or-self and as ascending at attribute base-uri boundary-space by case cast castable child collation construction declare default descendant descendant-or-self descending div document element else empty encoding eq every except external following following-sibling for function ge greatest gt idiv if import in inherit-namespaces instance intersect is le least let lt mod module namespace ne no of or order ordered ordering parent preceding preceding-sibling preserve return satisfies schema self some stable strip then to treat typeswitch union unordered validate variable version where xmlspace xquery yes
23 27
24 " TODO contains clashes with vim keyword 28 " TODO contains clashes with vim keyword
25 syn keyword xqueryFunction abs adjust-date-to-timezone adjust-date-to-timezone adjust-dateTime-to-timezone adjust-dateTime-to-timezone adjust-time-to-timezone adjust-time-to-timezone avg base-uri base-uri boolean ceiling codepoint-equal codepoints-to-string collection collection compare concat count current-date current-dateTime current-time data dateTime day-from-date day-from-dateTime days-from-duration deep-equal deep-equal default-collation distinct-values distinct-values doc doc-available document-uri empty ends-with ends-with error error error error escape-uri exactly-one exists false floor hours-from-dateTime hours-from-duration hours-from-time id id idref idref implicit-timezone in-scope-prefixes index-of index-of insert-before lang lang last local-name local-name local-name-from-QName lower-case matches matches max max min min minutes-from-dateTime minutes-from-duration minutes-from-time month-from-date month-from-dateTime months-from-duration name name namespace-uri namespace-uri namespace-uri-for-prefix namespace-uri-from-QName nilled node-name normalize-space normalize-space normalize-unicode normalize-unicode not number number one-or-more position prefix-from-QName QName remove replace replace resolve-QName resolve-uri resolve-uri reverse root root round round-half-to-even round-half-to-even seconds-from-dateTime seconds-from-duration seconds-from-time starts-with starts-with static-base-uri string string string-join string-length string-length string-to-codepoints subsequence subsequence substring substring substring-after substring-after substring-before substring-before sum sum timezone-from-date timezone-from-dateTime timezone-from-time tokenize tokenize trace translate true unordered upper-case year-from-date year-from-dateTime years-from-duration zero-or-one 29 syn keyword xqFunction abs adjust-date-to-timezone adjust-date-to-timezone adjust-dateTime-to-timezone adjust-dateTime-to-timezone adjust-time-to-timezone adjust-time-to-timezone avg base-uri base-uri boolean ceiling codepoint-equal codepoints-to-string collection collection compare concat count current-date current-dateTime current-time data dateTime day-from-date day-from-dateTime days-from-duration deep-equal deep-equal default-collation distinct-values distinct-values doc doc-available document-uri empty ends-with ends-with error error error error escape-uri exactly-one exists false floor hours-from-dateTime hours-from-duration hours-from-time id id idref idref implicit-timezone in-scope-prefixes index-of index-of insert-before lang lang last local-name local-name local-name-from-QName lower-case matches matches max max min min minutes-from-dateTime minutes-from-duration minutes-from-time month-from-date month-from-dateTime months-from-duration name name namespace-uri namespace-uri namespace-uri-for-prefix namespace-uri-from-QName nilled node-name normalize-space normalize-space normalize-unicode normalize-unicode not number number one-or-more position prefix-from-QName QName remove replace replace resolve-QName resolve-uri resolve-uri reverse root root round round-half-to-even round-half-to-even seconds-from-dateTime seconds-from-duration seconds-from-time starts-with starts-with static-base-uri string string string-join string-length string-length string-to-codepoints subsequence subsequence substring substring substring-after substring-after substring-before substring-before sum sum timezone-from-date timezone-from-dateTime timezone-from-time tokenize tokenize trace translate true unordered upper-case year-from-date year-from-dateTime years-from-duration zero-or-one
26 30
27 syn keyword xqueryOperator add-dayTimeDuration-to-date add-dayTimeDuration-to-dateTime add-dayTimeDuration-to-time add-dayTimeDurations add-yearMonthDuration-to-date add-yearMonthDuration-to-dateTime add-yearMonthDurations base64Binary-equal boolean-equal boolean-greater-than boolean-less-than concatenate date-equal date-greater-than date-less-than dateTime-equal dateTime-greater-than dateTime-less-than dayTimeDuration-equal dayTimeDuration-greater-than dayTimeDuration-less-than divide-dayTimeDuration divide-dayTimeDuration-by-dayTimeDuration divide-yearMonthDuration divide-yearMonthDuration-by-yearMonthDuration except gDay-equal gMonth-equal gMonthDay-equal gYear-equal gYearMonth-equal hexBinary-equal intersect is-same-node multiply-dayTimeDuration multiply-yearMonthDuration node-after node-before NOTATION-equal numeric-add numeric-divide numeric-equal numeric-greater-than numeric-integer-divide numeric-less-than numeric-mod numeric-multiply numeric-subtract numeric-unary-minus numeric-unary-plus QName-equal subtract-dates-yielding-dayTimeDuration subtract-dateTimes-yielding-dayTimeDuration subtract-dayTimeDuration-from-date subtract-dayTimeDuration-from-dateTime subtract-dayTimeDuration-from-time subtract-dayTimeDurations subtract-times subtract-yearMonthDuration-from-date subtract-yearMonthDuration-from-dateTime subtract-yearMonthDurations time-equal time-greater-than time-less-than to union yearMonthDuration-equal yearMonthDuration-greater-than yearMonthDuration-less-than 31 syn keyword xqOperator add-dayTimeDuration-to-date add-dayTimeDuration-to-dateTime add-dayTimeDuration-to-time add-dayTimeDurations add-yearMonthDuration-to-date add-yearMonthDuration-to-dateTime add-yearMonthDurations base64Binary-equal boolean-equal boolean-greater-than boolean-less-than concatenate date-equal date-greater-than date-less-than dateTime-equal dateTime-greater-than dateTime-less-than dayTimeDuration-equal dayTimeDuration-greater-than dayTimeDuration-less-than divide-dayTimeDuration divide-dayTimeDuration-by-dayTimeDuration divide-yearMonthDuration divide-yearMonthDuration-by-yearMonthDuration except gDay-equal gMonth-equal gMonthDay-equal gYear-equal gYearMonth-equal hexBinary-equal intersect is-same-node multiply-dayTimeDuration multiply-yearMonthDuration node-after node-before NOTATION-equal numeric-add numeric-divide numeric-equal numeric-greater-than numeric-integer-divide numeric-less-than numeric-mod numeric-multiply numeric-subtract numeric-unary-minus numeric-unary-plus QName-equal subtract-dates-yielding-dayTimeDuration subtract-dateTimes-yielding-dayTimeDuration subtract-dayTimeDuration-from-date subtract-dayTimeDuration-from-dateTime subtract-dayTimeDuration-from-time subtract-dayTimeDurations subtract-times subtract-yearMonthDuration-from-date subtract-yearMonthDuration-from-dateTime subtract-yearMonthDurations time-equal time-greater-than time-less-than to union yearMonthDuration-equal yearMonthDuration-greater-than yearMonthDuration-less-than
28 32
29 syn match xqueryType "xs:\(\|Datatype\|primitive\|string\|boolean\|float\|double\|decimal\|duration\|dateTime\|time\|date\|gYearMonth\|gYear\|gMonthDay\|gDay\|gMonth\|hexBinary\|base64Binary\|anyURI\|QName\|NOTATION\|\|normalizedString\|token\|language\|IDREFS\|ENTITIES\|NMTOKEN\|NMTOKENS\|Name\|NCName\|ID\|IDREF\|ENTITY\|integer\|nonPositiveInteger\|negativeInteger\|long\|int\|short\|byte\|nonNegativeInteger\|unsignedLong\|unsignedInt\|unsignedShort\|unsignedByte\|positiveInteger\)" 33 syn match xqType "xs:\(\|Datatype\|primitive\|string\|boolean\|float\|double\|decimal\|duration\|dateTime\|time\|date\|gYearMonth\|gYear\|gMonthDay\|gDay\|gMonth\|hexBinary\|base64Binary\|anyURI\|QName\|NOTATION\|\|normalizedString\|token\|language\|IDREFS\|ENTITIES\|NMTOKEN\|NMTOKENS\|Name\|NCName\|ID\|IDREF\|ENTITY\|integer\|nonPositiveInteger\|negativeInteger\|long\|int\|short\|byte\|nonNegativeInteger\|unsignedLong\|unsignedInt\|unsignedShort\|unsignedByte\|positiveInteger\)"
34
30 35
31 " From XPath grammar: 36 " From XPath grammar:
32 syn keyword xqueryXPath some every in in satisfies if then else to div idiv mod union intersect except instance of treat castable cast eq ne lt le gt ge is child descendant attribute self descendant-or-self following-sibling following namespace parent ancestor preceding-sibling preceding ancestor-or-self void item node document-node text comment processing-instruction attribute schema-attribute schema-element 37 syn keyword xqXPath some every in in satisfies if then else to div idiv mod union intersect except instance of treat castable cast eq ne lt le gt ge is child descendant attribute self descendant-or-self following-sibling following namespace parent ancestor preceding-sibling preceding ancestor-or-self void item node document-node text comment processing-instruction attribute schema-attribute schema-element
33 38
34 " eXist extensions 39 " eXist extensions
35 syn match xqExist "&=" 40 syn match xqExist "&="
36 41
37 " XQdoc 42 " XQdoc
38 syn match XQdoc contained "@\(param\|return\|author\)\>" 43 syn match XQdoc contained "@\(param\|return\|author\)\>"
39 44
40 highlight def link xqueryStatement Statement 45 " floating point number, with dot, optional exponent
41 highlight def link xqueryFunction Function 46 syn match xqFloat "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
42 highlight def link xqueryOperator Operator 47 " floating point number, starting with a dot, optional exponent
43 highlight def link xqueryType Type 48 syn match xqFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
44 highlight def link xqueryXPath Operator 49 " floating point number, without dot, with exponent
45 highlight def link XQdoc Special 50 syn match xqFloat "\d\+e[-+]\=\d\+[fl]\=\>"
46 highlight def link xqExist Operator 51 syn match xqNumber "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
52 syn match xqNumber "\<\d\+\>"
47 53
54 syn region xqString start=+"+ end=+"+
55 syn region xqComment start='(:' excludenl end=':)' contains=XQdoc
48 56
49 "floating point number, with dot, optional exponent 57 syn match xqVariable "$\<[a-zA-Z:_][-.0-9a-zA-Z0-9:_]*\>"
50 syn match cFloat "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" 58 syn match xqSeparator ",\|;"
51 "floating point number, starting with a dot, optional exponent 59 syn region xqCode transparent contained start='{' excludenl end='}' contains=xqFunction,xqCode,xmlRegionBis,xqComment,xqStatement,xmlString,xqSeparator,xqNumber,xqVariable,xqString keepend extend
52 syn match cFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
53 "floating point number, without dot, with exponent
54 syn match cFloat "\d\+e[-+]\=\d\+[fl]\=\>"
55 syn match cNumber "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
56 syn match cNumber "\<\d\+\>"
57 highlight def link cNumber Number
58 highlight def link cFloat Number
59
60 syn region xqComment start='(:' excludenl end=':)' contains=XQdoc
61 highlight def link xqComment Comment
62 " syntax match xqVariable "$\w\+"
63 syntax match xqVariable +$\<[a-zA-Z:_][-.0-9a-zA-Z0-9:_]*\>+
64 highlight def link xqVariable Identifier
65
66 " Redefine the default XML highlighting:
67 highlight def link xmlTag Structure
68 highlight def link xmlTagName Structure
69 highlight def link xmlEndTag Structure
70
71 syntax match xqSeparator ",\|;"
72 highlight link xqSeparator Operator
73
74 syn region xqCode transparent contained start='{' excludenl end='}' contains=xmlRegionBis,xqComment,xqueryStatement,xmlString,xqSeparator,cNumber,xqVariable keepend extend
75 60
76 syn region xmlRegionBis start=+<\z([^ /!?<>"']\+\)+ skip=+<!--\_.\{-}-->+ end=+</\z1\_\s\{-}>+ end=+/>+ fold contains=xmlTag,xmlEndTag,xmlCdata,xmlRegionBis,xmlComment,xmlEntity,xmlProcessing,xqCode keepend extend 61 syn region xmlRegionBis start=+<\z([^ /!?<>"']\+\)+ skip=+<!--\_.\{-}-->+ end=+</\z1\_\s\{-}>+ end=+/>+ fold contains=xmlTag,xmlEndTag,xmlCdata,xmlRegionBis,xmlComment,xmlEntity,xmlProcessing,xqCode keepend extend
77 62
78 syn region List transparent start='(' excludenl end=')' contains=xqCode,xmlRegion,xqComment,xqSeparator,xqueryStatement,xqVariable,xqueryType keepend extend 63 hi def link xqNumber Number
64 hi def link xqFloat Number
65 hi def link xqString String
66 hi def link xqVariable Identifier
67 hi def link xqComment Comment
68 hi def link xqSeparator Operator
69 hi def link xqStatement Statement
70 hi def link xqFunction Function
71 hi def link xqOperator Operator
72 hi def link xqType Type
73 hi def link xqXPath Operator
74 hi def link XQdoc Special
75 hi def link xqExist Operator
79 76
77 " override the xml highlighting
78 "hi link xmlTag Structure
79 "hi link xmlTagName Structure
80 "hi link xmlEndTag Structure
80 81
82 let b:current_syntax = "xquery"