diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2020-05-20 16:59:09 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2020-05-20 16:59:09 +0200 |
commit | a688c66a049b12e7b19f6ab4cb27c5a24dc3d52c (patch) | |
tree | 4f21330aa69ea67c4b32ad89918034e375bd1e1c /syntax/rst.vim | |
parent | 0a7c62b3b22a75f91245a718c1409e4216ae61c8 (diff) | |
download | vim-polyglot-a688c66a049b12e7b19f6ab4cb27c5a24dc3d52c.tar.gz vim-polyglot-a688c66a049b12e7b19f6ab4cb27c5a24dc3d52c.zip |
Update
Diffstat (limited to 'syntax/rst.vim')
-rw-r--r-- | syntax/rst.vim | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/syntax/rst.vim b/syntax/rst.vim index 3b14d63f..4995af9f 100644 --- a/syntax/rst.vim +++ b/syntax/rst.vim @@ -1,11 +1,11 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rst') == -1 -" Vim syntax file +" Vim reST syntax file " Language: reStructuredText documentation format " Maintainer: Marshall Ward <marshall.ward@gmail.com> " Previous Maintainer: Nikolai Weibull <now@bitwi.se> " Website: https://github.com/marshallward/vim-restructuredtext -" Latest Revision: 2018-12-29 +" Latest Revision: 2020-03-31 if exists("b:current_syntax") finish @@ -99,22 +99,32 @@ function! s:DefineOneInlineMarkup(name, start, middle, end, char_left, char_righ let first = a:start[0] endif - execute 'syn match rstEscape'.a:name.' +\\\\\|\\'.first.'+'.' contained' + if a:start != '``' + let rst_contains=' contains=rstEscape' . a:name + execute 'syn match rstEscape'.a:name.' +\\\\\|\\'.first.'+'.' contained' + else + let rst_contains='' + endif execute 'syn region rst' . a:name . \ ' start=+' . a:char_left . '\zs' . a:start . \ '\ze[^[:space:]' . a:char_right . a:start[strlen(a:start) - 1] . ']+' . \ a:middle . \ ' end=+' . a:end . '\ze\%($\|\s\|[''"’)\]}>/:.,;!?\\-]\)+' . - \ ' contains=rstEscape' . a:name + \ rst_contains - execute 'hi def link rstEscape'.a:name.' Special' + if a:start != '``' + execute 'hi def link rstEscape'.a:name.' Special' + endif endfunction +" TODO: The "middle" argument may no longer be useful here. function! s:DefineInlineMarkup(name, start, middle, end) - let middle = a:middle != "" ? - \ (' skip=+\\\\\|\\' . a:middle . '\|\s' . a:middle . '+') : - \ "" + if a:middle == '`' + let middle = ' skip=+\s'.a:middle.'+' + else + let middle = ' skip=+\\\\\|\\' . a:middle . '\|\s' . a:middle . '+' + endif call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, "'", "'") call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '"', '"') @@ -123,8 +133,8 @@ function! s:DefineInlineMarkup(name, start, middle, end) call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '{', '}') call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '<', '>') call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '’', '’') - " TODO: Additional Unicode Pd, Po, Pi, Pf, Ps characters + " TODO: Additional whitespace Unicode characters: Pd, Po, Pi, Pf, Ps call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '\%(^\|\s\|\%ua0\|[/:]\)', '') execute 'syn match rst' . a:name . @@ -138,7 +148,7 @@ endfunction call s:DefineInlineMarkup('Emphasis', '\*', '\*', '\*') call s:DefineInlineMarkup('StrongEmphasis', '\*\*', '\*', '\*\*') call s:DefineInlineMarkup('InterpretedTextOrHyperlinkReference', '`', '`', '`_\{0,2}') -call s:DefineInlineMarkup('InlineLiteral', '``', "", '``') +call s:DefineInlineMarkup('InlineLiteral', '``', '`', '``') call s:DefineInlineMarkup('SubstitutionReference', '|', '|', '|_\{0,2}') call s:DefineInlineMarkup('InlineInternalTargets', '_`', '`', '`') |