diff options
Diffstat (limited to 'runtime/syntax/wml.vim')
-rw-r--r-- | runtime/syntax/wml.vim | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/runtime/syntax/wml.vim b/runtime/syntax/wml.vim new file mode 100644 index 000000000..5957930c8 --- /dev/null +++ b/runtime/syntax/wml.vim @@ -0,0 +1,172 @@ +" Vim syntax file +" Language: WML - Website MetaLanguage +" Maintainer: Gerfried Fuchs <alfie@ist.org> +" Filenames: *.wml +" Last Change: 07 Feb 2002 +" URL: http://alfie.ist.org/software/vim/syntax/wml.vim +" +" Original Version: Craig Small <csmall@eye-net.com.au> + +" Comments are very welcome - but please make sure that you are commenting on +" the latest version of this file. +" SPAM is _NOT_ welcome - be ready to be reported! + +" If you are looking for the "Wireless Markup Language" syntax file, +" please take a look at the wap.vim file done by Ralf Schandl, soon in a +" vim-package around your corner :) + + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syn clear +elseif exists("b:current_syntax") + finish +endif + + +" A lot of the web stuff looks like HTML so we load that first +if version < 600 + so <sfile>:p:h/html.vim +else + runtime! syntax/html.vim +endif +unlet b:current_syntax + +if !exists("main_syntax") + let main_syntax = 'wml' +endif + +" special character +syn match wmlNextLine "\\$" + +" Redfine htmlTag +syn clear htmlTag +syn region htmlTag start=+<[^/<]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition + +" +" Add in extra Arguments used by wml +syn keyword htmlTagName contained gfont imgbg imgdot lowsrc +syn keyword htmlTagName contained navbar:define navbar:header +syn keyword htmlTagName contained navbar:footer navbar:prolog +syn keyword htmlTagName contained navbar:epilog navbar:button +syn keyword htmlTagName contained navbar:filter navbar:debug +syn keyword htmlTagName contained navbar:render +syn keyword htmlTagName contained preload rollover +syn keyword htmlTagName contained space hspace vspace over +syn keyword htmlTagName contained ps ds pi ein big sc spaced headline +syn keyword htmlTagName contained ue subheadline zwue verbcode +syn keyword htmlTagName contained isolatin pod sdf text url verbatim +syn keyword htmlTagName contained xtable +syn keyword htmlTagName contained csmap fsview import box +syn keyword htmlTagName contained case:upper case:lower +syn keyword htmlTagName contained grid cell info lang: logo page +syn keyword htmlTagName contained set-var restore +syn keyword htmlTagName contained array:push array:show set-var ifdef +syn keyword htmlTagName contained say m4 symbol dump enter divert +syn keyword htmlTagName contained toc +syn keyword htmlTagName contained wml card do refresh oneevent catch spawn + +" +" The wml arguments +syn keyword htmlArg contained adjust background base bdcolor bdspace +syn keyword htmlArg contained bdwidth complete copyright created crop +syn keyword htmlArg contained direction description domainname eperlfilter +syn keyword htmlArg contained file hint imgbase imgstar interchar interline +syn keyword htmlArg contained keephr keepindex keywords layout spacing +syn keyword htmlArg contained padding nonetscape noscale notag notypo +syn keyword htmlArg contained onload oversrc pos select slices style +syn keyword htmlArg contained subselected txtcol_select txtcol_normal +syn keyword htmlArg contained txtonly via +syn keyword htmlArg contained mode columns localsrc ordered + + +" Lines starting with an # are usually comments +syn match wmlComment "^\s*#.*" +" The different exceptions to comments +syn match wmlSharpBang "^#!.*" +syn match wmlUsed contained "\s\s*[A-Za-z:_-]*" +syn match wmlUse "^\s*#\s*use\s\+" contains=wmlUsed +syn match wmlInclude "^\s*#\s*include.+" + +syn region wmlBody contained start=+<<+ end=+>>+ + +syn match wmlLocationId contained "[A-Za-z]\+" +syn region wmlLocation start=+<<+ end=+>>+ contains=wmlLocationId +"syn region wmlLocation start=+{#+ end=+#}+ contains=wmlLocationId +"syn region wmlLocationed contained start=+<<+ end=+>>+ contains=wmlLocationId + +syn match wmlDivert "\.\.[a-zA-Z_]\+>>" +syn match wmlDivertEnd "<<\.\." +" new version +"syn match wmlDivert "{#[a-zA-Z_]\+#:" +"syn match wmlDivertEnd ":##}" + +syn match wmlDefineName contained "\s\+[A-Za-z-]\+" +syn region htmlTagName start="\<\(define-tag\|define-region\)" end="\>" contains=wmlDefineName + +" The perl include stuff +if main_syntax != 'perl' + " Perl script + if version < 600 + syn include @wmlPerlScript <sfile>:p:h/perl.vim + else + syn include @wmlPerlScript syntax/perl.vim + endif + unlet b:current_syntax + + syn region perlScript start=+<perl>+ keepend end=+</perl>+ contains=@wmlPerlScript,wmlPerlTag +" eperl between '<:' and ':>' -- Alfie [1999-12-26] + syn region perlScript start=+<:+ keepend end=+:>+ contains=@wmlPerlScript,wmlPerlTag + syn match wmlPerlTag contained "</*perl>" contains=wmlPerlTagN + syn keyword wmlPerlTagN contained perl + + hi link wmlPerlTag htmlTag + hi link wmlPerlTagN htmlStatement +endif + +" verbatim tags -- don't highlight anything in between -- Alfie [2002-02-07] +syn region wmlVerbatimText start=+<verbatim>+ keepend end=+</verbatim>+ contains=wmlVerbatimTag +syn match wmlVerbatimTag contained "</*verbatim>" contains=wmlVerbatimTagN +syn keyword wmlVerbatimTagN contained verbatim +hi link wmlVerbatimTag htmlTag +hi link wmlVerbatimTagN htmlStatement + +if main_syntax == "html" + syn sync match wmlHighlight groupthere NONE "</a-zA-Z]" + syn sync match wmlHighlight groupthere perlScript "<perl>" + syn sync match wmlHighlightSkip "^.*['\"].*$" + syn sync minlines=10 +endif + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_wml_syn_inits") + let did_wml_syn_inits = 1 + if version < 508 + let did_wml_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + HiLink wmlNextLine Special + HiLink wmlUse Include + HiLink wmlUsed String + HiLink wmlBody Special + HiLink wmlDiverted Label + HiLink wmlDivert Delimiter + HiLink wmlDivertEnd Delimiter + HiLink wmlLocationId Label + HiLink wmlLocation Delimiter +" HiLink wmlLocationed Delimiter + HiLink wmlDefineName String + HiLink wmlComment Comment + HiLink wmlInclude Include + HiLink wmlSharpBang PreProc + + delcommand HiLink +endif + +let b:current_syntax = "wml" |