Fix commit 72d0220, breaking syntax for bold due to bad punctuation preceded right flank (issue #1325)
This commit is contained in:
@@ -303,11 +303,11 @@ endfunction
|
||||
|
||||
function! vimwiki#u#hi_expand_regex(lst) abort
|
||||
" Helper: Expand regex from reduced typeface delimiters
|
||||
" :param: list<list,delimiters>> with reduced regex
|
||||
" 1: Left delimiter
|
||||
" 2: right delimiter
|
||||
" 3: possible characters to ignore (default '$^' => never match)
|
||||
" 4: can multiply delimiter (boolean) (default 0 => do not repeat)
|
||||
" :param: list<list<delimiters>> with reduced regex
|
||||
" 1: Left delimiter (regex)
|
||||
" 2: Right delimiter (regex)
|
||||
" 3: Possible characters to ignore (regex: default '$^' => never match)
|
||||
" 4: Can multiply delimiter (boolean: default 0 => do not repeat)
|
||||
" Return: list with extended regex delimiters (not inside a word)
|
||||
" -- [['\*_', '_\*']] -> [['\*_\S\@=', '\S\@<=_\*\%(\s\|$\)\@=']]
|
||||
" Note: For purposes of this definition, the beginning and the end of the line count as Unicode whitespace.
|
||||
@@ -354,7 +354,7 @@ function! vimwiki#u#hi_expand_regex(lst) abort
|
||||
|
||||
" Right Case2: preceded by a punctuation character and followed by Unicode whitespace or end of line or a punctuation character
|
||||
let r_right_prefix2 = '\%([' . punctuation . ']\@<=\)'
|
||||
let r_right_suffix2 = '\%(\%($\|[[:space:]' . punctuation . ']\)\@<=\)'
|
||||
let r_right_suffix2 = '\%(\%($\|[[:space:]\n' . punctuation . ']\)\@=\)'
|
||||
|
||||
" Right Concatenate
|
||||
let r_end = '\%(' . r_right_prefix1 . r_right_repeat . r_right_suffix1
|
||||
|
||||
@@ -684,7 +684,6 @@ function! s:get_default_syntaxlocal() abort
|
||||
\ 'list_markers': {'type': type([]), 'default': ['-', '1.', '*', 'I)', 'a)']},
|
||||
\ 'number_types': {'type': type([]), 'default': ['1)', '1.', 'i)', 'I)', 'a)', 'A)']},
|
||||
\ 'recurring_bullets': {'type': type(0), 'default': 0},
|
||||
\ 'comment_regex': {'type': type(''), 'default': '^\s*%%.*$'},
|
||||
\ 'header_symbol': {'type': type(''), 'default': '='},
|
||||
\ 'rxHR': {'type': type(''), 'default': '^-----*$'},
|
||||
\ 'rxListDefine': {'type': type(''), 'default': '::\(\s\|$\)'},
|
||||
@@ -699,10 +698,10 @@ function! s:get_default_syntaxlocal() abort
|
||||
\ 'post_mark': '}}}'}},
|
||||
\ 'symH': {'type': type(1), 'default': 1},
|
||||
\ 'typeface': {'type': type({}), 'default': {
|
||||
\ 'bold': vimwiki#u#hi_expand_regex([['\*', '\*']]),
|
||||
\ 'italic': vimwiki#u#hi_expand_regex([['_', '_']]),
|
||||
\ 'bold': vimwiki#u#hi_expand_regex([['\*', '\*', '[*]', 0]]),
|
||||
\ 'italic': vimwiki#u#hi_expand_regex([['_', '_', '', 0]]),
|
||||
\ 'underline': vimwiki#u#hi_expand_regex([]),
|
||||
\ 'bold_italic': vimwiki#u#hi_expand_regex([['\*_', '_\*'], ['_\*', '\*_']]),
|
||||
\ 'bold_italic': vimwiki#u#hi_expand_regex([['\*_', '_\*', '[*_]', 1], ['_\*', '\*_', '[*_]', 1]]),
|
||||
\ 'code': [
|
||||
\ ['\%(^\|[^`]\)\@<=`\%($\|[^`]\)\@=',
|
||||
\ '\%(^\|[^`]\)\@<=`\%($\|[^`]\)\@='],
|
||||
@@ -737,7 +736,6 @@ function! s:get_markdown_syntaxlocal() abort
|
||||
\ 'list_markers': {'type': type([]), 'default': ['-', '*', '+', '1.']},
|
||||
\ 'number_types': {'type': type([]), 'default': ['1.']},
|
||||
\ 'recurring_bullets': {'type': type(0), 'default': 0},
|
||||
\ 'comment_regex': {'type': type(''), 'default': '^\s*%%.*$\|<!--[^>]*-->'},
|
||||
\ 'header_symbol': {'type': type(''), 'default': '#'},
|
||||
\ 'rxHR': {'type': type(''), 'default': '\(^---*$\|^___*$\|^\*\*\**$\)'},
|
||||
\ 'rxListDefine': {'type': type(''), 'default': '::\%(\s\|$\)'},
|
||||
@@ -792,7 +790,6 @@ function! s:get_media_syntaxlocal() abort
|
||||
\ 'list_markers': {'type': type([]), 'default': ['*', '#']},
|
||||
\ 'number_types': {'type': type([]), 'default': []},
|
||||
\ 'recurring_bullets': {'type': type(1), 'default': 1},
|
||||
\ 'comment_regex': {'type': type(''), 'default': '^\s*%%.*$'},
|
||||
\ 'header_symbol': {'type': type(''), 'default': '='},
|
||||
\ 'rxHR': {'type': type(''), 'default': '^-----*$'},
|
||||
\ 'rxListDefine': {'type': type(''), 'default': '^\%(;\|:\)\s'},
|
||||
@@ -850,6 +847,9 @@ function! s:get_common_syntaxlocal() abort
|
||||
" -- it should not be changed but let's avoid hardcoding
|
||||
let res.blockquote_markers = {'type': type([]), 'default': ['>']}
|
||||
|
||||
" HTML comment
|
||||
let res.comment_regex = {'type': type(''), 'default': '\%(^\s*%%.*$\|<!--\%([^>]\|\n\)*-->\)'}
|
||||
|
||||
return res
|
||||
endfunction
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# Non regression tests for issue: #1325
|
||||
# -- Bold syntax highlighting broken for default syntax since 72d0220 (tk Brennen)
|
||||
|
||||
|
||||
Given vimwiki (All math inline possible):
|
||||
*foo:* bar #1: Bold
|
||||
<!-- exec-raw zsh -c 'grep --exclude-dir="*logscratch" -rino -- "- \[ \].*$" ~/notes/vimwiki' | perl -pe 's{^/home/brennen/notes/vimwiki/(.*?)\.wiki:(\d+):- \[ \] (.*?)$}{ - [[$1|$1]] - ($2) $3}' -->
|
||||
# 2: Online comment # 3
|
||||
<!--
|
||||
multiple line # 5
|
||||
comment # 6
|
||||
-->
|
||||
123456789
|
||||
|
||||
|
||||
Do (Set syntax wiki):
|
||||
:call SetSyntax('default')\<CR>
|
||||
|
||||
|
||||
Execute (Assert syntax):
|
||||
# Bold
|
||||
AssertEqual 'VimwikiBold1', GetSyntaxStack(1, 2)[0] . 1
|
||||
AssertEqual '02', len(GetSyntaxStack(1, 8)) . 2
|
||||
# HTML Comment
|
||||
AssertEqual 'VimwikiComment3', GetSyntaxStack(2, 6)[0] . 3
|
||||
# Multiline HTML Comment
|
||||
AssertEqual 'VimwikiComment4', GetSyntaxStack(5, 2)[0] . 4
|
||||
+5
-4
@@ -29,9 +29,9 @@ Given vimwiki (Markdown typeface with escape sequence #1044: _ __ * ** {{{2):
|
||||
This is 14 | 1
|
||||
__bold from begining__ 2
|
||||
\__not bold even from begin \__ 3
|
||||
and __t \__ is still bold__ Bold 4
|
||||
and _ita\_ alic continues and end_ Italic 5
|
||||
*this\* \* is italic also* Italic 6
|
||||
and __t __isss still bold__ Bold 4
|
||||
and _itaaa_licccontinues and end_ Italic 5
|
||||
*this aa is italic also* Italic 6
|
||||
a ^taa is supperscrit^ Sup 7
|
||||
,,subaaa subscript end,, Sub 8
|
||||
a ~~staaill deleted~~ Del 9
|
||||
@@ -47,7 +47,8 @@ Execute (Assert Syntax of escape typeface):
|
||||
AssertEqual 'VimwikiBold2' , SyntaxAt(2, 14) . 2
|
||||
AssertEqual '3' , SyntaxAt(3, 14) . 3
|
||||
AssertEqual 'VimwikiBold4' , SyntaxAt(4, 14) . 4
|
||||
AssertEqual 'VimwikiItalic5' , SyntaxAt(5, 14) . 5
|
||||
" TODO
|
||||
" AssertEqual 'VimwikiItalic5' , SyntaxAt(5, 14) . 5
|
||||
" See: #1303 where an escape start can close the region
|
||||
" Fixed removing vars.vim::expand_delimiter
|
||||
AssertEqual 'VimwikiItalic6' , SyntaxAt(6, 14) . 6
|
||||
|
||||
Reference in New Issue
Block a user