forked from aniani/vim
		
	
		
			
				
	
	
		
			102 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:         reStructuredText documentation format
 | |
| " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
 | |
| " Latest Revision:  2005-07-04
 | |
| 
 | |
| if exists("b:current_syntax")
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| let s:cpo_save = &cpo
 | |
| set cpo&vim
 | |
| 
 | |
| syn keyword     rstTodo             contained FIXME TODO XXX NOTE
 | |
| 
 | |
| syn case ignore
 | |
| 
 | |
| syn region      rstComment          start='^\.\.\%( \%([a-z0-9_.-]\+::\)\@!\|$\)'
 | |
|                                     \ end='^\s\@!' contains=rstTodo
 | |
| 
 | |
| syn cluster     rstCruft            contains=rstFootnoteLabel,rstCitationLabel,
 | |
|                                     \ rstSubstitutionLabel,rstInline,
 | |
|                                     \ rstHyperlinks,rstInternalTarget
 | |
| 
 | |
| syn region      rstBlock            matchgroup=rstDelimiter
 | |
|                                     \ start='::$' skip='^$' end='^\s\@!'
 | |
| syn region      rstDoctestBlock     matchgroup=rstDelimiter
 | |
|                                     \ start='^>>>\s' end='^$'
 | |
| 
 | |
| " TODO: these may actually be a bit too complicated to match correctly and
 | |
| " should perhaps be removed.  We won't 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 display
 | |
|                                     \ '^\s*\%(=\+\s\+\)\%(=\+\s*\)\+$'
 | |
| 
 | |
| syn region      rstFootnote         matchgroup=rstDirective
 | |
|                                     \ start='^\.\. \[\%([#*]\|[0-9]\+\|#[a-z0-9_.-]\+\)\]\s'
 | |
|                                     \ end='^\s\@!' contains=@rstCruft
 | |
| syn match       rstFootnoteLabel    '\[\%([#*]\|[0-9]\+\|#[a-z0-9_.-]\+\)\]_'
 | |
| 
 | |
| syn region      rstCitation         matchgroup=rstDirective
 | |
|                                     \ start='^\.\. \[[a-z0-9_.-]\+\]\s'
 | |
|                                     \ end='^\s\@!' contains=@rstCruft
 | |
| syn match       rstCitationLabel    '\[[a-z0-9_.-]\+\]_'
 | |
| 
 | |
| syn region      rstDirectiveBody    matchgroup=rstDirective
 | |
|                                     \ start='^\.\. [a-z0-9_.-]\+::'
 | |
|                                     \ end='^\s\@!'
 | |
| 
 | |
| syn region      rstSubstitution     matchgroup=rstDirective
 | |
|                                     \ start='^\.\. |[a-z0-9_.-]|\s[a-z0-9_.-]\+::\s'
 | |
|                                     \ end='^\s\@!' contains=@rstCruft
 | |
| syn match       rstSubstitutionLbl  '|[a-z0-9_.-]|'
 | |
| 
 | |
| syn match       rstInline           '\*\{1,2}\S\%([^*]*\S\)\=\*\{1,2}'
 | |
| syn match       rstInline           '`\{1,2}\S\%([^`]*\S\)\=`\{1,2}'
 | |
| 
 | |
| syn region      rstHyperlinks       matchgroup=RstDirective
 | |
|                                     \ start='^\.\. _[a-z0-9_. -]\+:\s'
 | |
|                                     \ end='^\s\@!' contains=@rstCruft
 | |
| 
 | |
| syn match       rstHyperlinksLabel  '`\S\%([^`]*\S\)\=`__\=\>'
 | |
| syn match       rstHyperlinksLabel  '\w\+__\=\>'
 | |
| 
 | |
| syn match       rstInternalTarget   '_`\S\%([^`]*\S\)\=`'
 | |
| 
 | |
| syn match       rstListItem         '^:\%(\w\+\s*\)\+:'
 | |
| syn match       rstListItem         '^\s*[-*+]\s\+'
 | |
| 
 | |
| syn sync minlines=50
 | |
| 
 | |
| hi def link rstTodo                 Todo
 | |
| hi def link rstComment              Comment
 | |
| hi def link rstDelimiter            Delimiter
 | |
| hi def link rstBlock                String
 | |
| hi def link rstDoctestBlock         PreProc
 | |
| hi def link rstTableLines           Delimiter
 | |
| hi def link rstSimpleTableLines     rstTableLines
 | |
| hi def link rstFootnote             String
 | |
| hi def link rstFootnoteLabel        Identifier
 | |
| hi def link rstCitation             String
 | |
| hi def link rstCitationLabel        Identifier
 | |
| hi def link rstDirective            Keyword
 | |
| hi def link rstDirectiveBody        Type
 | |
| hi def link rstSubstitution         String
 | |
| hi def link rstSubstitutionLbl      Identifier
 | |
| hi def link rstHyperlinks           String
 | |
| hi def link rstHyperlinksLabel      Identifier
 | |
| hi def link rstListItem             Identifier
 | |
| hi def      rstInline               term=italic cterm=italic gui=italic
 | |
| hi def      rstInternalTarget       term=italic cterm=italic gui=italic
 | |
| 
 | |
| let b:current_syntax = "rst"
 | |
| 
 | |
| let &cpo = s:cpo_save
 | |
| unlet s:cpo_save
 |