0
0
mirror of https://github.com/vim/vim.git synced 2025-07-04 23:07:33 -04:00
vim/runtime/syntax/rst.vim

102 lines
4.3 KiB
VimL
Raw Normal View History

2004-06-13 20:20:40 +00:00
" Vim syntax file
2005-06-29 22:40:58 +00:00
" Language: reStructuredText documentation format
" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
2005-07-04 22:49:24 +00:00
" Latest Revision: 2005-07-04
2005-06-29 22:40:58 +00:00
if exists("b:current_syntax")
2004-06-13 20:20:40 +00:00
finish
endif
2005-06-29 22:40:58 +00:00
let s:cpo_save = &cpo
set cpo&vim
syn keyword rstTodo contained FIXME TODO XXX NOTE
2004-06-13 20:20:40 +00:00
syn case ignore
2005-07-04 22:49:24 +00:00
syn region rstComment start='^\.\.\%( \%([a-z0-9_.-]\+::\)\@!\|$\)'
2005-06-29 22:40:58 +00:00
\ end='^\s\@!' contains=rstTodo
2004-06-13 20:20:40 +00:00
2005-06-29 22:40:58 +00:00
syn cluster rstCruft contains=rstFootnoteLabel,rstCitationLabel,
\ rstSubstitutionLabel,rstInline,
\ rstHyperlinks,rstInternalTarget
2004-06-13 20:20:40 +00:00
2005-06-29 22:40:58 +00:00
syn region rstBlock matchgroup=rstDelimiter
\ start='::$' skip='^$' end='^\s\@!'
syn region rstDoctestBlock matchgroup=rstDelimiter
\ start='^>>>\s' end='^$'
2004-06-13 20:20:40 +00:00
" TODO: these may actually be a bit too complicated to match correctly and
2005-06-29 22:40:58 +00:00
" 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\+'
2004-06-13 20:20:40 +00:00
syn sync minlines=50
2005-06-29 22:40:58 +00:00
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
2004-06-13 20:20:40 +00:00
let b:current_syntax = "rst"
2005-06-29 22:40:58 +00:00
let &cpo = s:cpo_save
unlet s:cpo_save