" 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 :)


" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif


" A lot of the web stuff looks like HTML so we load that first
runtime! syntax/html.vim
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
  syn include @wmlPerlScript syntax/perl.vim
  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.
" Only when an item doesn't have highlighting yet

hi def link wmlNextLine	Special
hi def link wmlUse		Include
hi def link wmlUsed	String
hi def link wmlBody	Special
hi def link wmlDiverted	Label
hi def link wmlDivert	Delimiter
hi def link wmlDivertEnd	Delimiter
hi def link wmlLocationId	Label
hi def link wmlLocation	Delimiter
" hi def link wmlLocationed	Delimiter
hi def link wmlDefineName	String
hi def link wmlComment	Comment
hi def link wmlInclude	Include
hi def link wmlSharpBang	PreProc


let b:current_syntax = "wml"
