summaryrefslogtreecommitdiffstats
path: root/syntax/rst.vim
diff options
context:
space:
mode:
Diffstat (limited to 'syntax/rst.vim')
-rw-r--r--syntax/rst.vim9
1 files changed, 7 insertions, 2 deletions
diff --git a/syntax/rst.vim b/syntax/rst.vim
index 89f46e64..a875a44b 100644
--- a/syntax/rst.vim
+++ b/syntax/rst.vim
@@ -94,16 +94,21 @@ execute 'syn match rstSubstitutionDefinition contained' .
\ ' /|.*|\_s\+/ nextgroup=@rstDirectives'
function! s:DefineOneInlineMarkup(name, start, middle, end, char_left, char_right)
+ execute 'syn match rstEscape'.a:name.' +\\\\\|\\'.a:start.'+'.' contained'
+
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=+\S' . a:end . '\ze\%($\|\s\|[''"’)\]}>/:.,;!?\\-]\)+'
+ \ ' end=+' . a:end . '\ze\%($\|\s\|[''"’)\]}>/:.,;!?\\-]\)+' .
+ \ ' contains=rstEscape' . a:name
+
+ execute 'hi def link rstEscape'.a:name.' Special'
endfunction
function! s:DefineInlineMarkup(name, start, middle, end)
let middle = a:middle != "" ?
- \ (' skip=+\\\\\|\\' . a:middle . '+') :
+ \ (' skip=+\\\\\|\\' . a:middle . '\|\s' . a:middle . '+') :
\ ""
call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, "'", "'")