vim-polyglot/syntax/wml.vim
2017-09-27 20:43:42 +02:00

155 lines
5.7 KiB
VimL

if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1
" 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"
endif