" Vim syntax file " Language: reStructuredText Documentation Format " Maintainer: Nikolai Weibull " URL: http://www.pcppopper.org/vim/syntax/pcp/rst/ " Latest Revision: 2004-05-13 " arch-tag: 6fae09da-d5d4-49d8-aec1-e49008ea21e6 if version < 600 syntax clear elseif exists("b:current_syntax") finish endif " todo syn keyword rstTodo contained FIXME TODO XXX NOTE syn case ignore " comments syn region rstComment matchgroup=rstComment start="^\.\.\%( \%([a-z0-9_.-]\+::\)\@!\|$\)" end="^\s\@!" contains=rstTodo syn cluster rstCruft contains=rstFootnoteLabel,rstCitationLabel,rstSubstitutionLabel,rstInline,rstHyperlinks,rstInternalTarget " blocks " syn region rstBlock matchgroup=rstDelimiter start=":\@>>\s" end="^$" " tables " TODO: these may actually be a bit too complicated to match correctly and " should perhaps be removed. Whon really needs it anyway? syn region rstTable transparent start="^\n\s*+[-=+]\+" end="^$" contains=rstTableLines,@rstCruft syn match rstTableLines contained "^\s*[|+=-]\+$" syn region rstSimpleTable transparent start="^\n\s*\%(=\+\s\+\)\%(=\+\s*\)\+$" end="^$" contains=rstSimpleTableLines,@rstCruft syn match rstSimpleTableLines contained "^\s*\%(=\+\s\+\)\%(=\+\s*\)\+$" " footnotes syn region rstFootnote matchgroup=rstDirective start="^\.\. \[\%([#*]\|[0-9]\+\|#[a-z0-9_.-]\+\)\]\s" end="^\s\@!" contains=@rstCruft syn match rstFootnoteLabel "\[\%([#*]\|[0-9]\+\|#[a-z0-9_.-]\+\)\]_" " citations syn region rstCitation matchgroup=rstDirective start="^\.\. \[[a-z0-9_.-]\+\]\s" end="^\s\@!" contains=@rstCruft syn match rstCitationLabel "\[[a-z0-9_.-]\+\]_" " directives syn region rstDirectiveBody matchgroup=rstDirective start="^\.\. [a-z0-9_.-]\+::" end="^\s\@!" " substitutions syn region rstSubstitution matchgroup=rstDirective start="^\.\. |[a-z0-9_.-]|\s[a-z0-9_.-]\+::\s" end="^\s\@!" contains=@rstCruft syn match rstSubstitutionLabel "|[a-z0-9_.-]|" " inline markup syn match rstInline "\*\{1,2}\S\%([^*]*\S\)\=\*\{1,2}" syn match rstInline "`\{1,2}\S\%([^`]*\S\)\=`\{1,2}" " hyperlinks syn region rstHyperlinks matchgroup=RstDirective start="^\.\. _[a-z0-9_. -]\+:\s" end="^\s\@!" contains=@rstCruft syn match rstHyperlinksLabel "`\S\%([^`]*\S\)\=`__\=\>" syn match rstHyperlinksLabel "\w\+__\=\>" " internal targets syn match rstInternalTarget "_`\S\%([^`]*\S\)\=`" " lists syn match rstListItem "^:\%(\w\+\s*\)\+:" syn match rstListItem "^\s*[-*+]\s\+" syn sync minlines=50 " 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_rst_syn_inits") if version < 508 let did_rst_syn_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif HiLink rstTodo Todo HiLink rstComment Comment HiLink rstDelimiter Delimiter HiLink rstBlock String HiLink rstDoctestBlock PreProc HiLink rstTableLines Delimiter HiLink rstSimpleTableLines rstTableLines HiLink rstFootnote String HiLink rstFootnoteLabel Identifier HiLink rstCitation String HiLink rstCitationLabel Identifier HiLink rstDirective Keyword HiLink rstDirectiveBody Type HiLink rstSubstitution String HiLink rstSubstitutionLabel Identifier HiLink rstHyperlinks String HiLink rstHyperlinksLabel Identifier HiLink rstListItem Identifier hi def rstInline term=italic cterm=italic gui=italic hi def rstInternalTarget term=italic cterm=italic gui=italic delcommand HiLink endif let b:current_syntax = "rst" " vim: set sts=2 sw=2: