" Attempt to add haddock highlighting for haskell comments " It should be placed in ~/.vim/after/syntax/haskell.vim " Brad Bowman syn match hsHdocChunk "$\i\+" contained syn match hsHdocMod /"\(\i\|[.]\)\+"/ contained syn match hsHdocLink "'\(\i\|[.#]\)\+'" contained syn region hsHdocAnchor start="\\\@" contained oneline syn region hsHdocCode start="\\\@" contained " match only the > using a look-behind syn match hsHdocLTracks "\(^\s*--\s*\)\@<=>" contained " todo: numbered lists, mark haddock start separately "syn match hsHdocStart "\([$^|]\|\*\+\)" contained syn cluster hsHdocSpecial \ contains=hsHdocMod,hsHdocLink,hsHdocEm,hsHdocCode,hsHdocURL, \ hsHdocAnchor,hsHdocChunk syn region hsHdocDef start="^\s*\(--\)\?\s*\[" end="\]" contained contains=hsHdocSpecial syn region hsHdocLines start="--\s*\([$\^|]\|\*\+\)" \ skip="^\s*\(--.*\)$" \ end="^\s*\(\$\|--\)\@!" \ contains=@hsHdocSpecial,hsHdocLTracks,hsHdocLHeading,hsHdocLCodeBlock,hsHdocDef syn region hsHdocBlock start="{-\s*\([$\^|]\|\*\+\)" end="-}" \ contains=@hsHdocSpecial,hsHdocBTracks,hsHdocBHeading,hsHdocBCodeBlock,hsHdocDef syn sync minlines=20 if version >= 508 || !exists("did_haddock_syntax_inits") if version < 508 let did_haddock_syntax_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif HiLink hsHdocLines hsHdoc HiLink hsHdocBlock hsHdoc HiLink hsHdoc PreProc HiLink hsHdocAnchor Special HiLink hsHdocChunk Special HiLink hsHdocMod Special HiLink hsHdocLink Special HiLink hsHdocEm Special HiLink hsHdocURL Special HiLink hsHdocCode Special HiLink hsHdocLHeading Special HiLink hsHdocBHeading Special HiLink hsHdocLTracks Special HiLink hsHdocBTracks Special HiLink hsHdocBCodeBlock Special HiLink hsHdocLCodeBlock Special HiLink hsHdocSpecial Special delcommand HiLink endif " Options for vi: sw=2 sts=2 nowrap ft=vim