" Vim syntax file " Language: MoinMoin " Maintainer: Michael Lamertz " Contributors: David O'Callaghan " Tony Garland " Ingo Karkat " Last Change: 27-Jan-2008 " 27-Jan-2008 Incorporated syntax changes of MoinMoin 1.6; the " syntax version is configurable via g:moin_version (globally) or " b:moin_version (for the current buffer only). " Small BFs: 'elsif', 'did_acedb_...'. " 22-Aug-2007 Added moinEmbedded highlighting. " 08-May-2007 Added contains=@NoSpell for URLs, Email, pragmas and " (configurable via g:moin_spell_wikiwords) WikiWords. " Bugs: Parsing of mixed bold-italic not yet implemented " Tables not yet implemented if version < 600 syntax clear elseif exists("b:current_syntax") finish endif function! s:GetMoinVersion() if exists('b:moin_version') return b:moin_version elseif exists('g:moin_version') return g:moin_version else return 999 endif endfunction " headings syn match moinHeader /^\(=\{1,5}\).*\1$/ " inline markup syn match moinItalic /\('\{2}\)[^']\+\1/ syn match moinBold /\('\{3}\)[^']\+\1/ syn match moinBoldItalic /\('\{5}\)[^']\+\1/ syn match moinUnderline /\(_\{2}\).\{-}\1/ syn match moinSubscript /\(,\{2}\).\{-}\1/ syn match moinSuperscript /\(\^\).\{-}\1/ syn match moinTypewriter /\(`\).\{-}\1/ if s:GetMoinVersion() < 160 syn match moinMacro /\[\{2}.\{-}\]\{2}/ else syn match moinMacro /<\{2}.\{-}>\{2}/ endif " Codeblocks syn region moinPreformatted start=/{{{/ end=/}}}/ " Links if exists('g:moin_spell_wikiwords') syn match moinWikiWord /\(\w\+:\)\?\u[a-z0-9]\+\u[a-z0-9]\+\(\u[a-z0-9]\+\)*/ syn match moinSubLink /\(\w\+\|\.\.\)\?\// nextgroup=moinWikiWord else syn match moinWikiWord /\(\w\+:\)\?\u[a-z0-9]\+\u[a-z0-9]\+\(\u[a-z0-9]\+\)*/ contains=@NoSpell syn match moinSubLink /\(\w\+\|\.\.\)\?\// nextgroup=moinWikiWord contains=@NoSpell endif syn match moinNormalURL /\w\+:\/\/\S\+/ contains=@NoSpell syn match moinEmail /\S\+@\S\+/ contains=@NoSpell if s:GetMoinVersion() < 160 syn match moinBracketLink /\[[^[\]]\+\]/ contains=@NoSpell syn match moinEmbedded /attachment:\S\+/ contains=@NoSpell syn match moinEmbedded /inline:\S\+/ contains=@NoSpell else syn match moinBracketLink /\[\{2}.\{-}\]\{2}/ contains=@NoSpell syn match moinEmbedded /{\{2}[^{].\{-}}\{2}/ contains=@NoSpell endif " lists syn match moinBulletList /^\(\s\+\)\zs\*\ze\s/ syn match moinNumberedList /^\(\s\+\)\zs1\.\ze\s/ syn match moinAlphalist /^\(\s\+\)\zsa\.\ze\s/ syn match moinRomanlist /^\(\s\+\)\zsi\.\ze\s/ syn match moinBigromanlist /^\(\s\+\)\zsI\.\ze\s/ syn match moinDescriptionlist /^\(\s\+\)\zs.\{-}::\ze\s/ " rules syn match moinRule /^-\{4,}/ " comments/pragmas syn match moinComment /^##.*$/ syn match moinPragma /^#\w\+.*$/ contains=@NoSpell " variables syn match moinVariable /@\w\+@/ " 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_moin_syn_inits") if version < 508 let did_moin_syn_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif HiLink moinHeader Function HiLink moinItalic Identifier HiLink moinBold Identifier HiLink moinBoldItalic Identifier HiLink moinUnderline Identifier HiLink moinSubscript Identifier HiLink moinSuperscript Identifier HiLink moinTypewriter Identifier HiLink moinMacro Define HiLink moinPragma Define HiLink moinEmbedded Include HiLink moinPreformatted String HiLink moinWikiWord Statement HiLink moinBracketLink Statement HiLink moinNormalURL Statement HiLink moinSubLink Statement HiLink moinInterLink Statement HiLink moinEmail Statement HiLink moinBulletList Type HiLink moinNumberedList Type HiLink moinAlphalist Type HiLink moinRomanlist Type HiLink moinBigromanlist Type HiLink moinDescriptionlist Type HiLink moinRule Special HiLink moinComment Comment HiLink moinVariable Macro delcommand HiLink endif let b:current_syntax = "moin"