diff --git a/build.sh b/build.sh index 31804c1..8166e3a 100755 --- a/build.sh +++ b/build.sh @@ -47,6 +47,7 @@ syntax 'tpope/vim-cucumber' & syntax 'jrk/vim-ocaml' & syntax 'wlangstroth/vim-haskell' & syntax 'slim-template/vim-slim' & +syntax 'vim-scripts/XSLT-syntax' & wait diff --git a/syntax/xsl.vim b/syntax/xsl.vim new file mode 100644 index 0000000..73359e5 --- /dev/null +++ b/syntax/xsl.vim @@ -0,0 +1,537 @@ +" Vim syntax file +" Language: XSLT 1.0 +" with HTML, CSS, JavaScript, PerlScript, VBScript and MSXSL extention +" +" Last Change: 24 May 2002 +" Filenames: *.xslt, *.xsl +" Maintainar: Atsushi Moriki +" +" Version: 0.3.11 +" +" Summary: Syntax Highlight for XSLT (with HTML and Others) +" Description: Syntax Highlight for XSLT with HTML keywords. +" +" containing keywords +" HTML +" CSS (use css.vim) +" JavaScript (use js.vim) +" VBScript (use vb.vim) +" PerlScript (use perl.vim) +" +" Instration: +" other keyword highlighting +" :let b:xsl_include_html = 1 > HTML +" :let b:xsl_include_css = 1 > CSS +" :let b:xsl_include_javascript = 1 > JavaScript +" :let b:xsl_include_perl = 1 > PerlScript +" :let b:xsl_include_vbs = 1 > VBScript +" +" +"include keyword setting : +" let b:xsl_include_html = 1 " HTML +" let b:xsl_include_css = 1 " CSS +" let b:xsl_include_javascript = 1 " JavaScript +" let b:xsl_include_perl = 1 " PerlScript +" let b:xsl_include_vbs = 1 " VBScript + + +if exists("b:current_syntax") + finish +endif + +if exists('b:Xsl_SyntaxFold_by') == '' + let b:Xsl_SyntaxFold_by='' +endif + +"let s:xml_cpo_save = &cpo +"let main_syntax = 'xsl' +"set cpo&vim + +syn case match + +" ERROR +syn match xmlErr +[^ ]+ contained + +" XML +syn cluster xmlSyntax contains=xmlTagStart +syn match xmlTagStart +<\([!?]\)\@!/\=\(xsl\>\)\@!+ + \ nextgroup=xml_schemaElementNameSpace,xmlElementName + \ containedin=@xmlCss +syn match xmlTagStart +\)\@=+ + \ nextgroup=xml_xslElementNameSpace + \ containedin=@xmlCss +" Element Name +syn match xmlElementName +[^!?/[:blank:]>=0-9,][^!?/[:blank:]>=,]*\>+ + \ contained + \ nextgroup=xmlTagEnd,xmlAttNameStyle,xmlAttName + \ skipwhite skipempty + \ contains=xml_htmlTagName + + +" Attribute Name +syn match xmlAttName +[^!?><=[:blank:]0-9][^!?><=[:blank:]]*+ contained nextgroup=xmlAttEqual skipwhite skipempty contains=xml_htmlAttName,xmlAttNameNs + +syn match xmlAttName +[^!?><=[:blank:]0-9][^!?><=[:blank:]]*+ contained nextgroup=xmlAttEqual skipwhite skipempty contains=xml_htmlAttName,xmlAttNameNs + +syn match xmlAttNameNs +[^!?><=[:blank:]0-9][^!?><=:[:blank:]]*:+ contained nextgroup=xmlAttName + +syn match xmlAttNameNs +\<\(xml\):+ contained nextgroup=xml_reserveAttName_inXmlElement contains=xmlAttNameNsHl_xmlReserve +syn match xml_reserveAttName_inXmlElement +[^><=[:blank:]]\++ contained nextgroup=xmlAttEqual contains=xmlAttNameHl skipwhite skipempty + +syn match xmlAttNameNsHl_xmlReserve +\+ contained + +hi link xmlAttNameNsHl_xmlReserve Type + +syn match xmlAttNameNs +\<\(xsl\|msxsl\|saxon\|xt\):+ contained nextgroup=xml_xslAttName_inXmlElement contains=xmlAttNameNsHl_xsl +syn match xmlAttNameNsHl_xsl +\<\(xsl\|msxsl\|saxon\|xt\)\>+ contained +hi link xmlAttNameNsHl_xsl Exception + +syn match xml_xslAttName_inXmlElement +[^><=[:blank:]]\++ contained nextgroup=xmlAttEqual contains=xml_xslAttNameHl skipwhite skipempty + +syn match xmlAttName +xmlns:[^!?><=[:blank:]0-9][^!?><=:[:blank:]]*+ contained nextgroup=xmlAttEqual skipwhite skipempty contains=xmlns_xsl +syn match xmlns_xsl +xmlns:xsl+ contained + +syn keyword xmlAttNameHl attribute lang link space + + +syn match xmlAttNameStyle +style+ contained nextgroup=xmlAttEqualStyle skipwhite skipempty contains=xml_htmlAttName + +" '=' +syn match xmlAttEqual +=+ contained nextgroup=xmlAttValue skipwhite skipempty +" Attribute Value +syn region xmlAttValue + \ matchgroup=xmlAttValueQuotS start=+\z(["']\)+rs=e + \ matchgroup=xmlAttValueQuotE end=+\z1+re=s + \ nextgroup=xmlTagEnd,xmlAttNameStyle,xmlAttName + \ contained skipwhite skipempty keepend + \ contains=xmlAttValueErr,stringContXpath,xmlAttValueKeyword,xmlAttValueKeyword_id,xmlAttValueKeyword_class + + + +" XSL +syn match xml_xslElementNameSpace +\(xsl\|msxsl\|saxon\|xt\):+he=e-1 + \ contained nextgroup=xml_xslElementName +syn match xml_xslElementName +[a-z0-9-]\++ + \ contained + \ nextgroup=xmlTagEnd,xml_xslAttName,xml_xslAttNameXPath + \ contains=xml_xslElementLocalName + \ skipwhite skipempty + +syn match xml_xslAttName +[^><=[:blank:]]\++ contained nextgroup=xml_xslAttEqual contains=xml_xslAttNameHl skipwhite skipempty +syn match xml_xslAttEqual +=+ contained nextgroup=xml_xslAttValue skipwhite skipempty + +syn match xml_xslAttNameXPath +\(count\|select\|test\|match\)+ contained nextgroup=xml_xslAttEqualXPath contains=xml_xslAttNameHl skipwhite skipempty +syn match xml_xslAttEqualXPath +=+ contained nextgroup=xml_xslAttValueXPath skipwhite skipempty + +syn region xml_xslAttValue + \ matchgroup=xmlAttValueQuotS start=+\z(["']\)+rs=e + \ matchgroup=xmlAttValueQuotE end=+\z1+re=s + \ contained + \ nextgroup=xmlTagEnd,xml_xslAttName,xml_xslAttNameXPath skipwhite skipempty keepend + \ contains=xmlAttValueErr,stringContXpath,xml_xslAttValueKeyword + +syn region xml_xslAttValueXPath + \ matchgroup=xmlAttValueQuotS start=+\z(["']\)+rs=e + \ matchgroup=xmlAttValueQuotE end=+\z1+re=s + \ contained + \ nextgroup=xmlTagEnd,xml_xslAttName,xml_xslAttNameXPath + \ skipwhite skipempty keepend + \ contains=@xpaths + + +" TAG END +syn match xmlTagEnd +/\=>+ contained + + +"XSL TAG "{{{ +syn match xml_xslElementLocalName contained +\(:\)\@<=\(apply-imports\|apply-templates\|attribute-set\|attribute\)+ +syn match xml_xslElementLocalName contained +\(:\)\@<=\(call-template\|choose\|comment\|copy-of\|copy\|decimal-format\|element\)\>+ +syn match xml_xslElementLocalName contained +\(:\)\@<=\(fall-back\|for-each\|if\|-\@+ +syn match xml_xslElementLocalName contained +\(:\)\@<=\(message\|namespace\(-alias\)\=\|number\|otherwise\|output\)\>+ +syn match xml_xslElementLocalName contained +\(:\)\@<=\(-\@+ +syn match xml_xslElementLocalName contained "\(:\)\@<=\(stylesheet\|-\@" +syn match xml_xslElementLocalName contained "\(:\)\@<=\(when\|with-param\)\>" + +" MSXSL Extention +syn match xml_xslElementLocalName contained "\(:\)\@<=\(script\)\>" + +"}}} + +" XSL Attribute "{{{ +syn match xml_xslAttNameHl contained +\<\(case-\(order\>\)\=\|count\>\|data-\(type\>\)\=\|disable-\(output-\(escaping\>\)\=\)\=\|decimal-\(separator\>\)\=\|digit\>\)+ +syn match xml_xslAttNameHl contained +\<\(elements\|encoding\|from\|format\|grouping-\(separator\|size\)\|href\)\>+ +syn match xml_xslAttNameHl contained +\<\(id\|indent\|infinity\|lang\|letter-value\|level\|match\|method\|mode\|minus-sign\)\>+ +syn match xml_xslAttNameHl contained +\<\(namespace\|name\|NaN\|order\)\>+ +syn match xml_xslAttNameHl contained +\<\(omit\(-xml\(-declaration\)\=\)\=\|pattern-separator\|percent\|per-mille\|priority\)\>+ +syn match xml_xslAttNameHl contained +\<\(select\|stylesheet-prefix\|test\|terminate\|use-attribute-set\|use\|version\|zero-digit\)\>+ +syn match xml_xslAttNameHl contained +\<\(extension-element-prefixes\|exclude-result-prefixes\)\>+ +syn match xml_xslAttNameHl contained +\\)\=\)\=+ +syn match xml_xslAttNameHl contained +\(standalone\>\|doctype-\(public\>\|system\>\)\=\|media-\(type\>\)\=\)+ + +" MSXSL Extension +syn match xml_xslAttNameHl contained +\+ +syn match xml_xslAttNameHl contained +implements-prefix+ +" XML Name Space +syn match xml_xslAttNameHl contained +\<\(xmlns:\)+ +syn match xml_xslAttNameHl contained +\<\(xmlns:\(xsl\|msxsl\|saxon\|xt\)\)\>+ + + "}}} + +" XPath "{{{ +syn cluster xpaths contains=xmlAttValueErr,xpathFilter,xpathBracket,xpathString,xpathFunction,xpathOperand,xpathAxis,xpathVariable,xpathNumber +" +syn region stringContXpath matchgroup=stringContXpathBracket start=+{+ end=+}+ contained contains=@xpaths + +syn region xpathFilter transparent matchgroup=xpathFilterBracket start=+\[+ end=+\]+ contained contains=@xpaths + +syn region xpathBracket transparent matchgroup=xpathBracketBracket start=+(+ end=+)+ contained contains=@xpaths + +syn region xpathString start=+\z(["']\)+ end=+\z1+ keepend contained contains=xmlAttValueErr,@xmlRef + +syn match xpathVariable +\$[^!"#$%&'()=~^|\\{}\[\]`@\:;+*?/<>,.[:blank:]]\++ contained +syn match xpathNumber +\([^!"#$%&'()=~^|\\{}\[\]`@\:;+*?/<>,.[:blank:]]-\)\@+ contained +hi def link xpathNumber Number + "}}} +" XPath Function "{{{ +syn region xpathFunction matchgroup=xpathFunctionName transparent contains=@xpaths contained end=+)+ + \ start=+\(contains\|format-number\|substring-before\|substring-after\|substring\|local-name\|namespace-uri\|normalize-space\|starts-with\|string-length\|string\)(+ +syn region xpathFunction matchgroup=xpathFunctionName transparent contains=@xpaths contained end=+)+ + \ start=+\(element-available\|function-available\|generate-id\|system-property\|unparsed-entity-uri\|processing-instruction\|comment\|node\|text\)(+ +syn region xpathFunction matchgroup=xpathFunctionName transparent contains=@xpaths contained end=+)+ + \ start=+\(count\|document\|key\|id\|last\|name\|position\|concat\|translate\|boolean\|false\|lang\|not\|true\|ceiling\|floor\|number\|round\|sum\|current\)(+ + +" "}}} +" XPath Axis "{{{ +syn match xpathAxis transparent +[a-z-]\+::+ contains=xpathAxisName contained +syn match xpathAxisName +\<\(ancestor\(-or-self\)\=\|attribute\|child\|descendant\(-or-self\)\=\)+ contained +syn match xpathAxisName +\<\(following\(-sibling\)\=\|namespace\|parent\|preceding\(-sibling\)\=\|self\)+ contained + + "}}} +" XPath Operand "{{{ +syn match xpathOperand contained +\([/]\)\@\([/]\)\@!+ +syn match xpathOperand contained +\([^ !='"<>\[($&]\@\[($&]\@!\|[+=>]\|<\|>=\|<=\|!=\||\)+ +syn match xpathOperand contained +\(\s*[^/|\]\["@]\)\@<=\(\([^"':/\[\]]\)\@=\s*\*\)\([/\[]\)\@!+ +"}}} + +" Attribute Value Highlight "{{{ +syn match xmlAttValueKeyword +\(\+ contained +syn match xml_xslAttValueKeyword +\(\+ contained +syn match xml_xslAttValueKeyword +["']\@<=\(yes\|no\|true\|false\)\>+ contained +syn match xml_xslAttValueKeyword +\(\+ contained +syn match xml_xslAttValueKeyword +\(\+ contained +syn match xml_xslAttValueKeyword +\(\+ contained +syn match xml_xslAttValueKeyword +\(\+ contained + +hi xmlAttValueKeyword gui=bold +hi xml_xslAttValueKeyword gui=bold + +syn match xmlAttValueKeyword_class +\(\+ contained contains=stringContXpath +syn match xmlAttValueKeyword_id +\(\+ contained contains=stringContXpath + +hi def link xmlAttValueKeyword_class Define +hi def link xmlAttValueKeyword_id Define + "}}} + +" XML ProcessingInstructon "{{{ +syn region xmlProcessing + \ matchgroup=xmlProcessingMark start=+\|<\@=\)+ + \ contains=xmlProcessingElement keepend +syn match xmlProcessingElementOver +[^ ]\++ nextgroup=xmlProcessingAttName contained +syn match xmlProcessingElement +\(xml-stylesheet\|xml\)+ nextgroup=xmlProcessingAtt contained +syn match xmlProcessingAtt +\(\s\|\n\)\+[a-zA-Z]\w*\s*=+ contained contains=xmlProcessingAttName nextgroup=xmlProcessingAttValue +syn match xmlProcessingAttName +\(encoding\|href\|version\|type\)\s*=+he=e-1 contained nextgroup=xmlProcessingAttValue +syn match xmlProcessingAttriValue +\("[^"]*"\|'[^']*'\)+ contained nextgroup=xmlProcessingAtt + "}}} + +" XML "{{{ +syn region xmlRef start=+&+ end=+;+ keepend containedin=ALL oneline contains=xmlRefDef,xmlRefString,xmlRefNumber +syn match xmlRefNumber +\(#x[0-9a-fA-F]\{,4}\|#\d\+\)+ contained +syn match xmlRefString +[a-zA-Z]\++ contained +syn match xmlRefDef +\<\(amp\|quot\|apos\|lt\|gt\)\>+ contained + "}}} + + + +" xml comment "{{{ +syn region xmlComment matchgroup=xmlComment start=++ + \ contains=xmlTodo,xmlCommentNotice,xmlCommentErr + \ fold extend keepend +syn match xmlCommentErr +\(--\(>\)\@!\)+ contained +syn match xmlTodo +\+ contained +syn match xmlCommentNotice +\(\s\)\@<=:[^:-]*:+ contained +syn region xmlCdata matchgroup=xmlCdataMark start=++ keepend fold containedin=@xmlCss +syn region xmlStyle_cdata matchgroup=xmlCdataMark start=++ keepend fold contained contains=@xmlCss +syn region xmlStyle_cdata matchgroup=xmlCdataMark start=++ keepend fold contained contains=@xmlCss + "}}} + + +if exists('b:xsl_include_html') + " HTML Tag Name {{{ + " -- tag name + syn match xml_htmlTagName contained +\<\(xmp\)\>+ + syn match xml_htmlTagName contained +\<\(var\)\>+ + syn match xml_htmlTagName contained +\<\(ul\|u\)\>+ + syn match xml_htmlTagName contained +\<\(tt\|tr\|title\|thead\|th\|tfoot\|textarea\|td\|tbody\|table\)\>+ + syn match xml_htmlTagName contained +\<\(sup\|sub\|style\|strong\|strike\|span\|spacer\|small\|select\|script\|samp\|s\)\>+ + syn match xml_htmlTagName contained +\<\(q\)\>+ + syn match xml_htmlTagName contained +\<\(pre\|param\|p\)\>+ + syn match xml_htmlTagName contained +\<\(option\|optgroup\|ol\|object\)\>+ + syn match xml_htmlTagName contained +\<\(noscript\|nolayer\|noframes\|nobr\)\>+ + syn match xml_htmlTagName contained +\<\(meta\|menu\|marquee\|map\)\>+ + syn match xml_htmlTagName contained +\<\(link\|li\|legend\|layer\|label\)\>+ + syn match xml_htmlTagName contained +\<\(kbd\)\>+ + syn match xml_htmlTagName contained +\<\(isindex\|ins\|input\|img\|ilayer\|iframe\|i\)\>+ + syn match xml_htmlTagName contained +\<\(html\|hr\|head\|h[1-6]\)\>+ + syn match xml_htmlTagName contained +\<\(frameset\|frame\|form\|font\|fieldset\)\>+ + syn match xml_htmlTagName contained +\<\(em\)\>+ + syn match xml_htmlTagName contained +\<\(dt\|dl\|div\|dir\|dfn\|del\|dd\)\>+ + syn match xml_htmlTagName contained +\<\(colgroup\|col\|code\|cite\|center\|caption\)\>+ + syn match xml_htmlTagName contained +\<\(button\|br\|body\|blockquote\|blink\|big\|bdo\|basefont\|base\|b\)\>+ + syn match xml_htmlTagName contained +\<\(area\|applet\|address\|acronym\|abbr\|a\)\>+ + + " -- att name + syn match xml_htmlAttName contained +\<\(wrap\|width\)\>+ + syn match xml_htmlAttName contained +\<\(vspace\|vlink\|visibility\|version\|valuetype\|value\|valign\)\>+ + syn match xml_htmlAttName contained +\<\(usemap\|url\)\>+ + syn match xml_htmlAttName contained +\<\(type\|topmargin\|top\|text\|target\|tabindex\|title\)\>+ + syn match xml_htmlAttName contained +\<\(summary\|style\|start\|standby\|src\|span\|size\|shape\|selected\|scrolling\|scope\|scheme\)\>+ + syn match xml_htmlAttName contained +\<\(rules\|rowspan\|rows\|rightmargin\|rev\|rel\|readonly\)\>+ + syn match xml_htmlAttName contained +\<\(prompt\|profile\|pagey\|pagex\)\>+ + syn match xml_htmlAttName contained +\<\(object\)\>+ + syn match xml_htmlAttName contained +\<\(nowrap\|noshade\|noresize\|nohref\|name\)\>+ + syn match xml_htmlAttName contained +\<\(multiple\|method\|maxlength\|marginwidth\|marginheight\)\>+ + syn match xml_htmlAttName contained +\<\(lowsrc\|longdesc\|link\|leftmargin\|left\|language\|lang\|label\)\>+ + syn match xml_htmlAttName contained +\<\(ismap\|id\|id\)\>+ + syn match xml_htmlAttName contained +\<\(hspace\|hreflang\|height\|headers\)\>+ + syn match xml_htmlAttName contained +\<\(gutter\)\>+ + syn match xml_htmlAttName contained +\<\(frameborder\|frame\|for\|face\)\>+ + syn match xml_htmlAttName contained +\<\(enctype\)\>+ + syn match xml_htmlAttName contained +\<\(disabled\|dir\|defer\|declare\|datetime\|data\)\>+ + syn match xml_htmlAttName contained +\<\(coords\|content\|compact\|colspan\|cols\|color\|codetype\|codebase\|code\)\>+ + syn match xml_htmlAttName contained +\<\(clip\|clear\|classid\|class\|cite\|checked\|charset\|charoff\|char\)\>+ + syn match xml_htmlAttName contained +\<\(cellspacing\|cellpadding\)\>+ + syn match xml_htmlAttName contained +\<\(bottommargin\|bordercolor\|border\|bgcolor\|below\|background\)\>+ + syn match xml_htmlAttName contained +\<\(axis\|archive\|alt\|alink\|align\|action\|accesskey\|accept\|above\|abbr\)\>+ + + syn match xml_htmlAttName contained "\" + syn match xml_htmlAttName contained "\" + syn match xml_htmlAttName contained "\" + " }}} +endif + +" CSS "{{{ +" include css.vim +if exists('b:xsl_include_css') + syn include @xmlCss syntax/css.vim + unlet b:current_syntax + "syn cluster innerCss contains=cssDefinition + syn cluster innerCss contains=cssComment,cssLength,cssColor,cssURL,cssImportant,cssError,cssString + "syn cluster innerCss contains=css.*Attr,css.*Properties,cssComment,cssLength,cssColor,cssURL,cssImportant,cssError,cssString + + " inner html + syn region cssStyle start=++ contains=@xmlSyntax,xmlComment,xmlStyle_cdata,@xmlCss + + " CSS in "style" Attribute Value + " '=' + syn match xmlAttEqualStyle +=\_\s*+ contained nextgroup=xmlAttValueStyle skipwhite + + " style value REGION + syn region xmlAttValueStyle start=+\z("\)+ keepend end=+\z1\_\s*+ + \ contains=xmlAttInnerCss + \ nextgroup=xmlTagEnd,xmlAttNameStyle,xmlAttName + \ skipwhite contained + + " value + syn match xmlAttInnerCss +[^"]*+ms=s,me=e-1 contained contains=xmlAttValueErr,stringContXpath,@innerCss +endif +"}}} + +" Script {{{ +" JavaScript +if exists('b:xsl_include_javascript') + syn include @xmlJavaScript syntax/javascript.vim + unlet b:current_syntax + syn region javaScript start=+<\z(\(msxsl:\)\=script\)+ + \ keepend + \ end=++ + \ contains=@xmlSyntax,xmlComment,javaScript_cdata,@xmlJavaScript +endif + +" PerlScript +if exists('b:xsl_include_perl') + syn include @xmlPerlScript syntax/perl.vim + if exists('b:current_syntax') + unlet b:current_syntax + endif + syn region javaScript + \ start=+<\z(\(msxsl:\)\=script\)\_[^>]*language="PerlScript"+ + \ keepend + \ end=++ + \ contains=@xmlSyntax,xmlComment,perlScript_cdata,@xmlPerlScript +endif + + +" VBScript +if exists('b:xsl_include_vbs') + syn include @xmlVBScript $VIMRUNTIME/syntax/vb.vim + unlet b:current_syntax + syn region javaScript start=+<\z(\(msxsl:\)\=script\)\_[^>]*language="VBScript"+ + \ keepend + \ end=++ + \ contains=@xmlSyntax,xmlComment,VBScript_cdata,@xmlVBScript +endif + +" }}} + +syn match xmlAttValueErr +\(<\|&\([^&'"><]\+;\)\@!\)+ contained + +" FOLD "{{{ +" +if &foldmethod == "syntax" && &foldenable == 1 + + " let b:Xsl_SyntaxFold_by = { "xsl" | "full" | "off" } + + " only + if exists('b:Xsl_SyntaxFold_by') && b:Xsl_SyntaxFold_by == 'xsl' + + syn region xmlFold + \ start=+<\z(\(msxsl\|xsl\):\(stylesheet\>\)\@![^ /!?><"']\+\)\(\_[^><=]\+=\(\_["]\_[^"]*"\|\_[']\_[^']*'\)\)*\_\s*>+ + \ skip=++ + \ end=++ + \ fold keepend transparent extend + \ contains=xmlFold,xmlTagStart,cssStyle,javaScript,xmlComment,xmlCdata + + " all Tag + elseif exists('b:Xsl_SyntaxFold_by') && b:Xsl_SyntaxFold_by == 'full' + + syn region xmlFold + \ start=+\(^\)\@!<\z([^ /!?<>"']\+\)+ + \ end=++ + \ skip=++ + \ matchgroup=xmlEndTag end=+/>+ + \ contains=xmlComment,xmlFold,xmlTagStart,cssStyle,javaScript,xmlCdata + \ fold keepend transparent extend + + " + elseif exists('b:Xsl_SyntaxFold_by') && b:Xsl_SyntaxFold_by == 'off' + + syn clear xmlFold + + else + + syn region xmlFold + \ start=+\(^\)\@!<\z([^ /!?<>"']\+\)+ + \ end=++ + \ skip=++ + \ end=+/>+ + \ contains=xmlComment,xmlFold,xmlTagStart,cssStyle,javaScript,xmlCdata + \ fold keepend transparent extend + + endif + +endif +"}}} + +" DTD "{{{ +" include dtd.vim +syn region xmlDocType matchgroup=xmlDocTypeDecl + \ start="" + \ fold + \ contains=xmlDocTypeKeyword,xmlInlineDTD,xmlString +syn keyword xmlDocTypeKeyword contained DOCTYPE PUBLIC SYSTEM +syn region xmlInlineDTD contained matchgroup=xmlDocTypeDecl start="\[" end="]" contains=@xmlDTD +syn include @xmlDTD syntax/dtd.vim +unlet b:current_syntax + "}}} + +" SYNC +syn sync match xmlSyncDT grouphere xmlDocType +\_.\("']\+\)\@=+ + syn sync match xmlSync groupthere xmlFold +"']\+>+ +endif + +syn sync minlines=100 + + +hi def link xmlTagStart Special +hi def link xmlElementName type + +hi def link xml_xslElementNameSpace Special + +hi def link xmlTagEnd Special + +hi def link xmlElementName Structure +hi def link xml_xslElementLocalName Statement + +hi def link xmlAttName Special +hi def link xmlAttNameHl Type + +hi def link xml_xslAttNameXPath Type + +hi def link xmlRef Type +hi def link xmlRefString PreProc +hi def link xmlRefNumber PreProc +hi def link xmlRefDef Statement + +hi def link xmlProcessing MoreMsg +hi def link xmlProcessingMark Identifier +hi def link xmlProcessingElement Type +hi def link xmlProcessingElementOver MoreMsg +hi def link xmlProcessingAttName Identifier +hi def link xmlProcessingAttValue type + +hi def link xmlTodo Todo +hi def link xmlCommentNotice PreProc + +hi def link xmlString Normal +hi def link xmlComment Comment +hi def link xmlCommentErr Error +hi def link xmlErr Error +hi def link xmlAttValueErr Error + +hi def link xmlCdataMark String +hi def link xmlCdata Normal + +hi def link xmlDocTypeDecl Function +hi def link xmlDocTypeKeyword Statement +hi def link xmlInlineDTD Function + +"HTML +hi def link xml_htmlTagName Function +hi def link xml_htmlAttName Identifier +hi def link xmlAttNameStyle Define + +"XSL +hi def link xml_xslAttNameHl Exception +hi def link xmlns_xsl xml_xslAttNameHl +hi def link xpathVariable Identifier +hi def link xpathFunctionName Function +hi def link xpathFilterBracket Identifier +hi def link xpathBracketBracket Statement +hi def link xpathString Normal +hi def link xpathOperand preproc +hi def link xpathAxisName Special + +hi def link xml_xslAttValue Normal +hi def link xml_xslAttValuexpath String + +hi def link stringContXpathBracket Statement +hi def link stringContXpath string + +"= +hi def link xmlAttEqual Type +hi def link xml_xslAttEqual Type +hi def link xml_xslAttEqualXPath Type +hi def link xml_schemaAttEqual Type +hi def link xmlAttEqualStyle Type + + +let b:current_syntax = "xsl" + +"let &cpo = s:xml_cpo_save +"unlet s:xml_cpo_save + +" vim: ts=4:sw=4