- Less code, Easyer to maintain, to add a markup language - Faster to load, and to highlight - Support multiline tags: #847 - Support nested tags - Support intraword tags: this<b>bold</b>type #640
This commit is contained in:
parent
5408d74b35
commit
1b16720b7b
@ -9,6 +9,36 @@ if exists('g:loaded_vimwiki_html_auto') || &compatible
|
|||||||
endif
|
endif
|
||||||
let g:loaded_vimwiki_html_auto = 1
|
let g:loaded_vimwiki_html_auto = 1
|
||||||
|
|
||||||
|
" FIXME: Magics: Why not use the current syntax highlight
|
||||||
|
" This is due to historical copy paste and lazyness of markdown user
|
||||||
|
" text: **strong** or __strong__
|
||||||
|
let s:rxBold = '\%(^\|\s\|[[:punct:]]\)\@<='.
|
||||||
|
\'\(\*\|_\)\{2\}'.
|
||||||
|
\'\%([^*_`[:space:]][^*_`]*[^*_`[:space:]]\|[^*_`[:space:]]\)'.
|
||||||
|
\'\1\{2\}'.
|
||||||
|
\'\%([[:punct:]]\|\s\|$\)\@='
|
||||||
|
|
||||||
|
" text: _emphasis_ or *emphasis*
|
||||||
|
let s:rxItalic = '\%(^\|\s\|[[:punct:]]\)\@<='.
|
||||||
|
\'\(\*\|_\)'.
|
||||||
|
\'\%([^*_`[:space:]][^*_`]*[^*_`[:space:]]\|[^*_`[:space:]]\)'.
|
||||||
|
\'\1'.
|
||||||
|
\'\%([[:punct:]]\|\s\|$\)\@='
|
||||||
|
|
||||||
|
" Fixme: and those ? are they converted ?
|
||||||
|
" text: *_bold italic_* or _*italic bold*_
|
||||||
|
let rxBoldItalic = '\%(^\|\s\|[[:punct:]]\)\@<='.
|
||||||
|
\'\(\*\)\{3\}'.
|
||||||
|
\'\%([^*`[:space:]][^*`]*[^*`[:space:]]\|[^*`[:space:]]\)'.
|
||||||
|
\'\1\{3\}'.
|
||||||
|
\'\%([[:punct:]]\|\s\|$\)\@='
|
||||||
|
|
||||||
|
let rxItalicBold = '\%(^\|\s\|[[:punct:]]\)\@<='.
|
||||||
|
\'\(_\)\{3\}'.
|
||||||
|
\'\%([^_`[:space:]][^_`]*[^_`[:space:]]\|[^_`[:space:]]\)'.
|
||||||
|
\'\1\{3\}'.
|
||||||
|
\'\%([[:punct:]]\|\s\|$\)\@='
|
||||||
|
|
||||||
|
|
||||||
function! s:root_path(subdir) abort
|
function! s:root_path(subdir) abort
|
||||||
return repeat('../', len(split(a:subdir, '[/\\]')))
|
return repeat('../', len(split(a:subdir, '[/\\]')))
|
||||||
@ -609,8 +639,9 @@ endfunction
|
|||||||
|
|
||||||
function! s:process_tags_typefaces(line, header_ids) abort
|
function! s:process_tags_typefaces(line, header_ids) abort
|
||||||
let line = a:line
|
let line = a:line
|
||||||
let line = s:make_tag(line, vimwiki#vars#get_syntaxlocal('rxItalic'), 's:tag_em')
|
" Convert line tag by tag
|
||||||
let line = s:make_tag(line, vimwiki#vars#get_syntaxlocal('rxBold'), 's:tag_strong', a:header_ids)
|
let line = s:make_tag(line, s:rxItalic, 's:tag_em')
|
||||||
|
let line = s:make_tag(line, s:rxBold, 's:tag_strong', a:header_ids)
|
||||||
let line = s:make_tag(line, vimwiki#vars#get_global('rxTodo'), 's:tag_todo')
|
let line = s:make_tag(line, vimwiki#vars#get_global('rxTodo'), 's:tag_todo')
|
||||||
let line = s:make_tag(line, vimwiki#vars#get_syntaxlocal('rxDelText'), 's:tag_strike')
|
let line = s:make_tag(line, vimwiki#vars#get_syntaxlocal('rxDelText'), 's:tag_strike')
|
||||||
let line = s:make_tag(line, vimwiki#vars#get_syntaxlocal('rxSuperScript'), 's:tag_super')
|
let line = s:make_tag(line, vimwiki#vars#get_syntaxlocal('rxSuperScript'), 's:tag_super')
|
||||||
@ -978,7 +1009,7 @@ function! s:process_tag_list(line, lists) abort
|
|||||||
" text.
|
" text.
|
||||||
" XXX necessary? in *bold* text, no space must follow the first *
|
" XXX necessary? in *bold* text, no space must follow the first *
|
||||||
if !in_list
|
if !in_list
|
||||||
let pos = match(a:line, '^\s*'.vimwiki#vars#get_syntaxlocal('rxBold'))
|
let pos = match(a:line, '^\s*' . s:rxBold)
|
||||||
if pos != -1
|
if pos != -1
|
||||||
return [0, []]
|
return [0, []]
|
||||||
endif
|
endif
|
||||||
|
@ -215,3 +215,79 @@ function! vimwiki#u#ft_is_vw() abort
|
|||||||
return 0
|
return 0
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
" Helper: Create highlight region between two tags
|
||||||
|
" :param: tag <string> example '<b>'
|
||||||
|
" :param: syntax_group <string> example: VimwikiBold
|
||||||
|
" :param: contains <string> coma separated and prefixed, default VimwikiHTMLTag
|
||||||
|
" :param: (1) <boolean> is contained
|
||||||
|
function! vimwiki#u#hi_tag(tag_pre, tag_post, syntax_group, contains, ...) abort
|
||||||
|
let opt_is_contained = a:0 > 0 ? 'contained ' : ''
|
||||||
|
let opt_contains = ''
|
||||||
|
if a:contains !=# ''
|
||||||
|
let opt_contains = 'contains=' . a:contains . ' '
|
||||||
|
endif
|
||||||
|
let cmd = 'syn region ' . a:syntax_group . ' matchgroup=VimwikiHTMLDelimiter ' .
|
||||||
|
\ opt_is_contained .
|
||||||
|
\ 'start="' . a:tag_pre . '" ' .
|
||||||
|
\ 'end="' . a:tag_post . '" ' .
|
||||||
|
\ 'keepend ' .
|
||||||
|
\ opt_contains .
|
||||||
|
\ b:vimwiki_syntax_concealends
|
||||||
|
"echom cmd
|
||||||
|
exe cmd
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
" Highight typeface: see $VIMRUNTIME/syntax/html.vim
|
||||||
|
" -- Basically allow nesting with multiple definition contained
|
||||||
|
" :param: dic <dic:list:list> must contain: bold, italic and underline, even if underline is often void,
|
||||||
|
" -- see here for underline not defined: https://stackoverflow.com/questions/3003476
|
||||||
|
function! vimwiki#u#hi_typeface(dic) abort
|
||||||
|
" Italic must go before, otherwise single * takes precedence over ** and ** is considered as
|
||||||
|
" a void italic.
|
||||||
|
" Note that the last syntax defined take precedence so that user can change at runtime
|
||||||
|
" (:h :syn-define)
|
||||||
|
for i in a:dic['italic']
|
||||||
|
" -- Italic 1
|
||||||
|
call vimwiki#u#hi_tag(i[0], i[1], 'VimwikiItalic ', 'VimwikiItalicBold,VimwikiItalicUnderline')
|
||||||
|
" -- Bold 2
|
||||||
|
call vimwiki#u#hi_tag(i[0], i[1], 'VimwikiBoldItalic', 'VimwikiBoldItalicUnderline', 1)
|
||||||
|
" -- Bold 3
|
||||||
|
call vimwiki#u#hi_tag(i[0], i[1], 'VimwikiBoldUnderlineItalic', '', 2)
|
||||||
|
" -- Underline 2
|
||||||
|
call vimwiki#u#hi_tag(i[0], i[1], 'VimwikiUnderlineItalic', 'VimwikiUnderlineItalicBold', 1)
|
||||||
|
" -- Underline 3
|
||||||
|
call vimwiki#u#hi_tag(i[0], i[1], 'VimwikiUnderlineBoldItalic', '', 2)
|
||||||
|
endfor
|
||||||
|
for b in a:dic['bold']
|
||||||
|
" -- Bold 1
|
||||||
|
call vimwiki#u#hi_tag(b[0],b[1], 'VimwikiBold', 'VimwikiBoldUnderline,VimwikiBoldItalic')
|
||||||
|
" -- Italic 2
|
||||||
|
call vimwiki#u#hi_tag(b[0], b[1], 'VimwikiItalicBold', 'VimwikiItalicBoldUnderline', 1)
|
||||||
|
" -- Italic 3
|
||||||
|
call vimwiki#u#hi_tag(b[0], b[1], 'VimwikiItalicUnderlineBold', '', 2)
|
||||||
|
" -- Underline 2
|
||||||
|
call vimwiki#u#hi_tag(b[0], b[1], 'VimwikiUnderlineBold', 'VimwikiUnderlineBoldItalic', 1)
|
||||||
|
" -- Underline 3
|
||||||
|
call vimwiki#u#hi_tag(b[0], b[1], 'VimwikiUnderlineItalicBold', '', 2)
|
||||||
|
endfor
|
||||||
|
" markdown
|
||||||
|
if has_key(a:dic, 'bold_italic')
|
||||||
|
for bi in a:dic['bold_italic']
|
||||||
|
call vimwiki#u#hi_tag(bi[0], bi[1], 'VimwikiBoldItalic', 'VimwikiBoldItalicUnderline')
|
||||||
|
endfor
|
||||||
|
endif
|
||||||
|
for u in a:dic['underline']
|
||||||
|
" -- Underline 1
|
||||||
|
call vimwiki#u#hi_tag(u[0], u[1], 'VimwikiUnderline', 'VimwikiUnderlineBold,VimwikiUnderlineItalic')
|
||||||
|
" -- Bold 2
|
||||||
|
call vimwiki#u#hi_tag(u[0], u[1], 'VimwikiBoldUnderline', 'VimwikiBoldUnderlineItalic', 1)
|
||||||
|
" -- Bold 3
|
||||||
|
call vimwiki#u#hi_tag(u[0], u[1], 'VimwikiBoldItalicUnderline', '', 2)
|
||||||
|
" -- Italic 2
|
||||||
|
call vimwiki#u#hi_tag(u[0], u[1], 'VimwikiItalicUnderline', 'VimwikiItalicUnderlineBold', 1)
|
||||||
|
" -- Italic 3
|
||||||
|
call vimwiki#u#hi_tag(u[0], u[1], 'VimwikiItalicBoldUnderline', '', 2)
|
||||||
|
endfor
|
||||||
|
endfunction
|
||||||
|
@ -2061,6 +2061,8 @@ conditionally, make sure the settings are set before Vimwiki loads (that is,
|
|||||||
before plugin/vimwiki.vim is sourced). If this is not possible, try this
|
before plugin/vimwiki.vim is sourced). If this is not possible, try this
|
||||||
command after the Vimwiki settings are (re-) set: >
|
command after the Vimwiki settings are (re-) set: >
|
||||||
:call vimwiki#vars#init()
|
:call vimwiki#vars#init()
|
||||||
|
If you also want to reload syntax variables, prefix the last command by: >
|
||||||
|
:unlet g:vimwiki_syntax_variables
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
12.1 Registered Wiki *g:vimwiki_list* *vimwiki-register-wiki*
|
12.1 Registered Wiki *g:vimwiki_list* *vimwiki-register-wiki*
|
||||||
|
@ -162,14 +162,6 @@ endfor
|
|||||||
if vimwiki#vars#get_global('conceal_onechar_markers')
|
if vimwiki#vars#get_global('conceal_onechar_markers')
|
||||||
execute 'syn match VimwikiEqInChar contained /'.
|
execute 'syn match VimwikiEqInChar contained /'.
|
||||||
\ vimwiki#vars#get_syntaxlocal('char_eqin').'/'.b:vimwiki_syntax_conceal
|
\ vimwiki#vars#get_syntaxlocal('char_eqin').'/'.b:vimwiki_syntax_conceal
|
||||||
execute 'syn match VimwikiBoldChar contained /'.
|
|
||||||
\ vimwiki#vars#get_syntaxlocal('char_bold').'/'.b:vimwiki_syntax_conceal
|
|
||||||
execute 'syn match VimwikiItalicChar contained /'.
|
|
||||||
\ vimwiki#vars#get_syntaxlocal('char_italic').'/'.b:vimwiki_syntax_conceal
|
|
||||||
execute 'syn match VimwikiBoldItalicChar contained /'.
|
|
||||||
\ vimwiki#vars#get_syntaxlocal('char_bolditalic').'/'.b:vimwiki_syntax_conceal
|
|
||||||
execute 'syn match VimwikiItalicBoldChar contained /'.
|
|
||||||
\ vimwiki#vars#get_syntaxlocal('char_italicbold').'/'.b:vimwiki_syntax_conceal
|
|
||||||
execute 'syn match VimwikiCodeChar contained /'.
|
execute 'syn match VimwikiCodeChar contained /'.
|
||||||
\ vimwiki#vars#get_syntaxlocal('char_code').'/'.b:vimwiki_syntax_conceal
|
\ vimwiki#vars#get_syntaxlocal('char_code').'/'.b:vimwiki_syntax_conceal
|
||||||
execute 'syn match VimwikiDelTextChar contained /'.
|
execute 'syn match VimwikiDelTextChar contained /'.
|
||||||
@ -215,14 +207,6 @@ execute 'syn match VimwikiHeaderChar contained /\%(^\s*'.
|
|||||||
\ '\+\s*$\)/'
|
\ '\+\s*$\)/'
|
||||||
execute 'syn match VimwikiEqInCharT contained /'
|
execute 'syn match VimwikiEqInCharT contained /'
|
||||||
\ .vimwiki#vars#get_syntaxlocal('char_eqin').'/'
|
\ .vimwiki#vars#get_syntaxlocal('char_eqin').'/'
|
||||||
execute 'syn match VimwikiBoldCharT contained /'
|
|
||||||
\ .vimwiki#vars#get_syntaxlocal('char_bold').'/'
|
|
||||||
execute 'syn match VimwikiItalicCharT contained /'
|
|
||||||
\ .vimwiki#vars#get_syntaxlocal('char_italic').'/'
|
|
||||||
execute 'syn match VimwikiBoldItalicCharT contained /'
|
|
||||||
\ .vimwiki#vars#get_syntaxlocal('char_bolditalic').'/'
|
|
||||||
execute 'syn match VimwikiItalicBoldCharT contained /'
|
|
||||||
\ .vimwiki#vars#get_syntaxlocal('char_italicbold').'/'
|
|
||||||
execute 'syn match VimwikiCodeCharT contained /'
|
execute 'syn match VimwikiCodeCharT contained /'
|
||||||
\ .vimwiki#vars#get_syntaxlocal('char_code').'/'
|
\ .vimwiki#vars#get_syntaxlocal('char_code').'/'
|
||||||
execute 'syn match VimwikiDelTextCharT contained /'
|
execute 'syn match VimwikiDelTextCharT contained /'
|
||||||
@ -274,31 +258,11 @@ elseif vimwiki#vars#get_global('hl_cb_checked') == 2
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
execute 'syntax match VimwikiBold /'.vimwiki#vars#get_syntaxlocal('rxBold').
|
|
||||||
\ '/ contains=VimwikiBoldChar,@Spell'
|
|
||||||
execute 'syntax match VimwikiBoldT /'.vimwiki#vars#get_syntaxlocal('rxBold').
|
|
||||||
\ '/ contained contains=VimwikiBoldCharT,@Spell'
|
|
||||||
|
|
||||||
execute 'syntax match VimwikiEqIn /'.vimwiki#vars#get_syntaxlocal('rxEqIn').
|
execute 'syntax match VimwikiEqIn /'.vimwiki#vars#get_syntaxlocal('rxEqIn').
|
||||||
\ '/ contains=VimwikiEqInChar,@NoSpell'
|
\ '/ contains=VimwikiEqInChar,@NoSpell'
|
||||||
execute 'syntax match VimwikiEqInT /'.vimwiki#vars#get_syntaxlocal('rxEqIn').
|
execute 'syntax match VimwikiEqInT /'.vimwiki#vars#get_syntaxlocal('rxEqIn').
|
||||||
\ '/ contained contains=VimwikiEqInCharT,@NoSpell'
|
\ '/ contained contains=VimwikiEqInCharT,@NoSpell'
|
||||||
|
|
||||||
execute 'syntax match VimwikiItalic /'.vimwiki#vars#get_syntaxlocal('rxItalic').
|
|
||||||
\ '/ contains=VimwikiItalicChar,@Spell'
|
|
||||||
execute 'syntax match VimwikiItalicT /'.vimwiki#vars#get_syntaxlocal('rxItalic').
|
|
||||||
\ '/ contained contains=VimwikiItalicCharT,@Spell'
|
|
||||||
|
|
||||||
execute 'syntax match VimwikiBoldItalic /'.vimwiki#vars#get_syntaxlocal('rxBoldItalic').
|
|
||||||
\ '/ contains=VimwikiBoldItalicChar,VimwikiItalicBoldChar,@Spell'
|
|
||||||
execute 'syntax match VimwikiBoldItalicT /'.vimwiki#vars#get_syntaxlocal('rxBoldItalic').
|
|
||||||
\ '/ contained contains=VimwikiBoldItalicChatT,VimwikiItalicBoldCharT,@Spell'
|
|
||||||
|
|
||||||
execute 'syntax match VimwikiItalicBold /'.vimwiki#vars#get_syntaxlocal('rxItalicBold').
|
|
||||||
\ '/ contains=VimwikiBoldItalicChar,VimwikiItalicBoldChar,@Spell'
|
|
||||||
execute 'syntax match VimwikiItalicBoldT /'.vimwiki#vars#get_syntaxlocal('rxItalicBold').
|
|
||||||
\ '/ contained contains=VimwikiBoldItalicCharT,VimsikiItalicBoldCharT,@Spell'
|
|
||||||
|
|
||||||
execute 'syntax match VimwikiDelText /'.vimwiki#vars#get_syntaxlocal('rxDelText').
|
execute 'syntax match VimwikiDelText /'.vimwiki#vars#get_syntaxlocal('rxDelText').
|
||||||
\ '/ contains=VimwikiDelTextChar,@Spell'
|
\ '/ contains=VimwikiDelTextChar,@Spell'
|
||||||
execute 'syntax match VimwikiDelTextT /'.vimwiki#vars#get_syntaxlocal('rxDelText').
|
execute 'syntax match VimwikiDelTextT /'.vimwiki#vars#get_syntaxlocal('rxDelText').
|
||||||
@ -343,91 +307,16 @@ syntax match VimwikiPlaceholderParam /.*/ contained
|
|||||||
|
|
||||||
|
|
||||||
" html tags
|
" html tags
|
||||||
" Copied from $VIMRUNTIME
|
|
||||||
" Note: The me=s-1 was omited from the region definition
|
|
||||||
" See: `syn region VimwikiBoldUnderlineItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=VimwikiHTMLTag...`
|
|
||||||
" Note: Not configurable
|
|
||||||
if vimwiki#vars#get_global('valid_html_tags') !=? ''
|
if vimwiki#vars#get_global('valid_html_tags') !=? ''
|
||||||
let s:html_tags = join(split(vimwiki#vars#get_global('valid_html_tags'), '\s*,\s*'), '\|')
|
" Source html file here
|
||||||
exe 'syntax match VimwikiHTMLtag #\c</\?\%('.s:html_tags.'\)\%(\s\{-1}\S\{-}\)\{-}\s*/\?>#'
|
execute 'source ' . expand('<sfile>:h') . '/vimwiki_html.vim'
|
||||||
|
|
||||||
" Helper: Create highlight region between html tags
|
|
||||||
" :param: tag <string> example 'b'
|
|
||||||
" :param: syntax_group <string> example: VimwikiBold
|
|
||||||
" :param: contains <string> coma separated and prefixed, default VimwikiHTMLTag
|
|
||||||
" :param: (1) <boolean> is contained
|
|
||||||
function! s:highlight_html(tag, syntax_group, contains, ...)
|
|
||||||
let opt_is_contained = a:0 > 0 ? 'contained ' : ''
|
|
||||||
let opt_contains = ''
|
|
||||||
if a:contains !=# ''
|
|
||||||
let opt_contains = 'contains=' . a:contains . ' '
|
|
||||||
endif
|
|
||||||
exe 'syn region ' a:syntax_group . ' matchgroup=VimwikiHTMLDelimiter ' .
|
|
||||||
\ opt_is_contained .
|
|
||||||
\ 'start="<' . a:tag . '>" end="</' . a:tag . '\_s*>" '.
|
|
||||||
\ opt_contains .
|
|
||||||
\ b:vimwiki_syntax_concealends
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Bold
|
|
||||||
" -- Bold 1
|
|
||||||
call s:highlight_html('b', 'VimwikiBold', 'VimwikiBoldUnderline,VimwikiBoldItalic')
|
|
||||||
call s:highlight_html('strong', 'VimwikiBold', 'VimwikiBoldUnderline,VimwikiBoldItalic')
|
|
||||||
" -- Bold 2
|
|
||||||
call s:highlight_html('u', 'VimwikiBoldUnderline', 'VimwikiBoldUnderlineItalic', 1)
|
|
||||||
call s:highlight_html('i', 'VimwikiBoldItalic', 'VimwikiBoldItalicUnderline', 1)
|
|
||||||
call s:highlight_html('em', 'VimwikiBoldItalic', 'VimwikiBoldItalicUnderline', 1)
|
|
||||||
" -- Bold 3
|
|
||||||
call s:highlight_html('i', 'VimwikiBoldUnderlineItalic', '', 2)
|
|
||||||
call s:highlight_html('em', 'VimwikiBoldUnderlineItalic', '', 2)
|
|
||||||
call s:highlight_html('u', 'VimwikiBoldItalicUnderline', '', 2)
|
|
||||||
|
|
||||||
" Italic
|
|
||||||
" -- Italic 1
|
|
||||||
call s:highlight_html('i', 'VimwikiItalic ', 'VimwikiItalicBold,VimwikiItalicUnderline')
|
|
||||||
call s:highlight_html('em', 'VimwikiItalic ', 'VimwikiItalicBold,VimwikiItalicUnderline')
|
|
||||||
" -- Italic 2
|
|
||||||
call s:highlight_html('b', 'VimwikiItalicBold', 'VimwikiItalicBoldUnderline', 1)
|
|
||||||
call s:highlight_html('strong', 'VimwikiItalicBold', 'VimwikiItalicBoldUnderline', 1)
|
|
||||||
call s:highlight_html('u', 'VimwikiItalicUnderline', 'VimwikiItalicUnderlineBold', 1)
|
|
||||||
" -- Italic 3
|
|
||||||
call s:highlight_html('u', 'VimwikiItalicBoldUnderline', '', 2)
|
|
||||||
call s:highlight_html('b', 'VimwikiItalicUnderlineBold', '', 2)
|
|
||||||
call s:highlight_html('strong', 'VimwikiItalicUnderlineBold', '', 2)
|
|
||||||
|
|
||||||
" Underline
|
|
||||||
" -- Underline 1
|
|
||||||
call s:highlight_html('u', 'VimwikiUnderline', 'VimwikiUnderlineBold,VimwikiUnderlineItalic')
|
|
||||||
" -- Underline 2
|
|
||||||
call s:highlight_html('b', 'VimwikiUnderlineBold', 'VimwikiUnderlineBoldItalic', 1)
|
|
||||||
call s:highlight_html('b','VimwikiUnderlineBold', 'VimwikiUnderlineBoldItalic', 1)
|
|
||||||
call s:highlight_html('strong', 'VimwikiUnderlineBold', 'VimwikiUnderlineBoldItalic', 1)
|
|
||||||
call s:highlight_html('i', 'VimwikiUnderlineItalic', 'VimwikiUnderlineItalicBold', 1)
|
|
||||||
call s:highlight_html('em', 'VimwikiUnderlineItalic', 'VimwikiUnderlineItalicBold', 1)
|
|
||||||
" -- Underline 3
|
|
||||||
call s:highlight_html('b', 'VimwikiUnderlineItalicBold', '', 2)
|
|
||||||
call s:highlight_html('strong', 'VimwikiUnderlineItalicBold', '', 2)
|
|
||||||
call s:highlight_html('i', 'VimwikiUnderlineBoldItalic', '', 2)
|
|
||||||
call s:highlight_html('em', 'VimwikiUnderlineBoldItalic', '', 2)
|
|
||||||
|
|
||||||
" Comment: home made
|
|
||||||
execute 'syntax match VimwikiComment /'.vimwiki#vars#get_syntaxlocal('rxComment').
|
|
||||||
\ '/ contains=@Spell,VimwikiTodo'
|
|
||||||
|
|
||||||
" Only do syntax highlighting for multiline comments if they exist
|
|
||||||
let s:mc_start = vimwiki#vars#get_syntaxlocal('rxMultilineCommentStart')
|
|
||||||
let s:mc_end = vimwiki#vars#get_syntaxlocal('rxMultilineCommentEnd')
|
|
||||||
if !empty(s:mc_start) && !empty(s:mc_end)
|
|
||||||
execute 'syntax region VimwikiMultilineComment start=/'.s:mc_start.
|
|
||||||
\ '/ end=/'.s:mc_end.'/ contains=@NoSpell,VimwikiTodo'
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
" tags
|
" tags
|
||||||
execute 'syntax match VimwikiTag /'.vimwiki#vars#get_syntaxlocal('rxTags').'/'
|
execute 'syntax match VimwikiTag /'.vimwiki#vars#get_syntaxlocal('rxTags').'/'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
" header groups highlighting
|
" header groups highlighting
|
||||||
if vimwiki#vars#get_global('hl_headers') == 0
|
if vimwiki#vars#get_global('hl_headers') == 0
|
||||||
" Strangely in default colorscheme Title group is not set to bold for cterm...
|
" Strangely in default colorscheme Title group is not set to bold for cterm...
|
||||||
@ -445,7 +334,9 @@ else
|
|||||||
endfor
|
endfor
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" Highlight typefaces -> u.vim
|
||||||
|
let s:syntax_dic = vimwiki#vars#get_syntaxlocal('dTypeface')
|
||||||
|
call vimwiki#u#hi_typeface(s:syntax_dic)
|
||||||
|
|
||||||
hi def link VimwikiMarkers Normal
|
hi def link VimwikiMarkers Normal
|
||||||
|
|
||||||
@ -558,7 +449,7 @@ call vimwiki#u#reload_regexes_custom()
|
|||||||
let b:current_syntax='vimwiki'
|
let b:current_syntax='vimwiki'
|
||||||
|
|
||||||
|
|
||||||
" EMBEDDED syntax setup
|
" Code: EMBEDDED syntax setup
|
||||||
let s:nested = vimwiki#vars#get_wikilocal('nested_syntaxes')
|
let s:nested = vimwiki#vars#get_wikilocal('nested_syntaxes')
|
||||||
if vimwiki#vars#get_wikilocal('automatic_nested_syntaxes')
|
if vimwiki#vars#get_wikilocal('automatic_nested_syntaxes')
|
||||||
let s:nested = extend(s:nested, vimwiki#base#detect_nested_syntax(), 'keep')
|
let s:nested = extend(s:nested, vimwiki#base#detect_nested_syntax(), 'keep')
|
||||||
|
@ -10,44 +10,38 @@
|
|||||||
let s:default_syntax = g:vimwiki_syntax_variables['default']
|
let s:default_syntax = g:vimwiki_syntax_variables['default']
|
||||||
|
|
||||||
|
|
||||||
|
" TODO mutualise
|
||||||
|
" Get config: possibly concealed chars
|
||||||
|
let b:vimwiki_syntax_conceal = exists('+conceallevel') ? ' conceal' : ''
|
||||||
|
let b:vimwiki_syntax_concealends = has('conceal') ? ' concealends' : ''
|
||||||
|
|
||||||
|
" Typeface:
|
||||||
|
let s:default_syntax.dTypeface = {}
|
||||||
|
|
||||||
|
" text: *strong*
|
||||||
|
let s:default_syntax.dTypeface['bold'] = [
|
||||||
|
\ ['\S\@<=\*\|\*\S\@=', '\S\@<=\*\|\*\S\@='],
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
" text: _italic_
|
||||||
|
let s:default_syntax.dTypeface['italic'] = [
|
||||||
|
\ ['\S\@<=_\|_\S\@=', '\S\@<=_\|_\S\@='],
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
" text: no underline defined
|
||||||
|
let s:default_syntax.dTypeface['underline'] = []
|
||||||
|
|
||||||
|
" text: *_bold italic_* or _*italic bold*_
|
||||||
|
let s:default_syntax.dTypeface['bold_italic'] = [
|
||||||
|
\ ['\S\@<=\*_\|\*_\S\@=', '\S\@<=_\*\|_\*\S\@='],
|
||||||
|
\ ['\S\@<=_\*\|_\*\S\@=', '\S\@<=\*_\|\*_\S\@='],
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
|
||||||
" text: $ equation_inline $
|
" text: $ equation_inline $
|
||||||
let s:default_syntax.rxEqIn = '\$[^$`]\+\$'
|
let s:default_syntax.rxEqIn = '\$[^$`]\+\$'
|
||||||
let s:default_syntax.char_eqin = '\$'
|
let s:default_syntax.char_eqin = '\$'
|
||||||
|
|
||||||
" text: *strong*
|
|
||||||
" let s:default_syntax.rxBold = '\*[^*]\+\*'
|
|
||||||
let s:default_syntax.rxBold = '\%(^\|\s\|[[:punct:]]\)\@<='.
|
|
||||||
\'\*'.
|
|
||||||
\'\%([^*`[:space:]][^*`]*[^*`[:space:]]\|[^*`[:space:]]\)'.
|
|
||||||
\'\*'.
|
|
||||||
\'\%([[:punct:]]\|\s\|$\)\@='
|
|
||||||
let s:default_syntax.char_bold = '*'
|
|
||||||
|
|
||||||
" text: _emphasis_
|
|
||||||
" let s:default_syntax.rxItalic = '_[^_]\+_'
|
|
||||||
let s:default_syntax.rxItalic = '\%(^\|\s\|[[:punct:]]\)\@<='.
|
|
||||||
\'_'.
|
|
||||||
\'\%([^_`[:space:]][^_`]*[^_`[:space:]]\|[^_`[:space:]]\)'.
|
|
||||||
\'_'.
|
|
||||||
\'\%([[:punct:]]\|\s\|$\)\@='
|
|
||||||
let s:default_syntax.char_italic = '_'
|
|
||||||
|
|
||||||
" text: *_bold italic_* or _*italic bold*_
|
|
||||||
let s:default_syntax.rxBoldItalic = '\%(^\|\s\|[[:punct:]]\)\@<='.
|
|
||||||
\'\*_'.
|
|
||||||
\'\%([^*_`[:space:]][^*_`]*[^*_`[:space:]]\|[^*_`[:space:]]\)'.
|
|
||||||
\'_\*'.
|
|
||||||
\'\%([[:punct:]]\|\s\|$\)\@='
|
|
||||||
let s:default_syntax.char_bolditalic = '\*_'
|
|
||||||
|
|
||||||
let s:default_syntax.rxItalicBold = '\%(^\|\s\|[[:punct:]]\)\@<='.
|
|
||||||
\'_\*'.
|
|
||||||
\'\%([^*_`[:space:]][^*_`]*[^*_`[:space:]]\|[^*_`[:space:]]\)'.
|
|
||||||
\'\*_'.
|
|
||||||
\'\%([[:punct:]]\|\s\|$\)\@='
|
|
||||||
let s:default_syntax.char_italicbold = '_\*'
|
|
||||||
|
|
||||||
" text: `code`
|
" text: `code`
|
||||||
let s:default_syntax.rxCode = '`[^`]\+`'
|
let s:default_syntax.rxCode = '`[^`]\+`'
|
||||||
let s:default_syntax.char_code = '`'
|
let s:default_syntax.char_code = '`'
|
||||||
|
34
syntax/vimwiki_html.vim
Normal file
34
syntax/vimwiki_html.vim
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
|
||||||
|
" Vimwiki syntax file
|
||||||
|
" Home: https://github.com/vimwiki/vimwiki/
|
||||||
|
" Description: Defines html syntax
|
||||||
|
" Loaded: conditionaly by syntax/vimwiki.vim
|
||||||
|
" Copied from $VIMRUNTIME
|
||||||
|
" Note: The me=s-1 was omited from the region definition
|
||||||
|
" See: `syn region VimwikiBoldUnderlineItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=VimwikiHTMLTag...`
|
||||||
|
" Note: Not configurable
|
||||||
|
|
||||||
|
let s:html_tags = join(split(vimwiki#vars#get_global('valid_html_tags'), '\s*,\s*'), '\|')
|
||||||
|
exe 'syntax match VimwikiHTMLtag #\c</\?\%('.s:html_tags.'\)\%(\s\{-1}\S\{-}\)\{-}\s*/\?>#'
|
||||||
|
|
||||||
|
|
||||||
|
" Typeface:
|
||||||
|
let html_typeface = {
|
||||||
|
\ 'bold': [['<b>', '</b\_s*>'], ['<strong>', '</strong\_s*>']],
|
||||||
|
\ 'italic': [['<i>', '</i\_s*>'], ['<em>', '</em\_s*>']],
|
||||||
|
\ 'underline': [['<u>', '</u\_s*>']],
|
||||||
|
\ }
|
||||||
|
call vimwiki#u#hi_typeface(html_typeface)
|
||||||
|
|
||||||
|
|
||||||
|
" Comment: home made
|
||||||
|
execute 'syntax match VimwikiComment /'.vimwiki#vars#get_syntaxlocal('rxComment').
|
||||||
|
\ '/ contains=@Spell,VimwikiTodo'
|
||||||
|
|
||||||
|
" Only do syntax highlighting for multiline comments if they exist
|
||||||
|
let s:mc_start = vimwiki#vars#get_syntaxlocal('rxMultilineCommentStart')
|
||||||
|
let s:mc_end = vimwiki#vars#get_syntaxlocal('rxMultilineCommentEnd')
|
||||||
|
if !empty(s:mc_start) && !empty(s:mc_end)
|
||||||
|
execute 'syntax region VimwikiMultilineComment start=/'.s:mc_start.
|
||||||
|
\ '/ end=/'.s:mc_end.'/ contains=@NoSpell,VimwikiTodo'
|
||||||
|
endif
|
@ -9,41 +9,44 @@
|
|||||||
|
|
||||||
let s:markdown_syntax = g:vimwiki_syntax_variables['markdown']
|
let s:markdown_syntax = g:vimwiki_syntax_variables['markdown']
|
||||||
|
|
||||||
|
|
||||||
|
" TODO mutualise
|
||||||
|
" Get config: possibly concealed chars
|
||||||
|
let b:vimwiki_syntax_conceal = exists('+conceallevel') ? ' conceal' : ''
|
||||||
|
let b:vimwiki_syntax_concealends = has('conceal') ? ' concealends' : ''
|
||||||
|
|
||||||
|
|
||||||
|
" Typeface:
|
||||||
|
let s:markdown_syntax.dTypeface = {}
|
||||||
|
|
||||||
|
" text: **bold** or __bold__
|
||||||
|
let s:markdown_syntax.dTypeface['bold'] = [
|
||||||
|
\ ['\S\@<=__\|__\S\@=', '\S\@<=__\|__\S\@='],
|
||||||
|
\ ['\S\@<=\*\*\|\*\*\S\@=', '\S\@<=\*\*\|\*\*\S\@='],
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
" text: *italic* or _italic_
|
||||||
|
let s:markdown_syntax.dTypeface['italic'] = [
|
||||||
|
\ ['\S\@<=\*\|\*\S\@=', '\S\@<=\*\|\*\S\@='],
|
||||||
|
\ ['\S\@<=_\|_\S\@=', '\S\@<=_\|_\S\@='],
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
" text: no underline defined
|
||||||
|
let s:markdown_syntax.dTypeface['underline'] = []
|
||||||
|
|
||||||
|
" text: *_bold italic_* or _*italic bold*_ or ___bi___ or ***bi***
|
||||||
|
let s:markdown_syntax.dTypeface['bold_italic'] = [
|
||||||
|
\ ['\S\@<=\*_\|\*_\S\@=', '\S\@<=_\*\|_\*\S\@='],
|
||||||
|
\ ['\S\@<=_\*\|_\*\S\@=', '\S\@<=\*_\|\*_\S\@='],
|
||||||
|
\ ['\S\@<=\*\*\*\|\*\*\*\S\@=', '\S\@<=\*\*\*\|\*\*\*\S\@='],
|
||||||
|
\ ['\S\@<=___\|___\S\@=', '\S\@<=___\|___\S\@='],
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
|
||||||
" text: $ equation_inline $
|
" text: $ equation_inline $
|
||||||
let s:markdown_syntax.rxEqIn = '\$[^$`]\+\$'
|
let s:markdown_syntax.rxEqIn = '\$[^$`]\+\$'
|
||||||
let s:markdown_syntax.char_eqin = '\$'
|
let s:markdown_syntax.char_eqin = '\$'
|
||||||
|
|
||||||
" text: **strong** or __strong__
|
|
||||||
let s:markdown_syntax.rxBold = '\%(^\|\s\|[[:punct:]]\)\@<='.
|
|
||||||
\'\(\*\|_\)\{2\}'.
|
|
||||||
\'\%([^*_`[:space:]][^*_`]*[^*_`[:space:]]\|[^*_`[:space:]]\)'.
|
|
||||||
\'\1\{2\}'.
|
|
||||||
\'\%([[:punct:]]\|\s\|$\)\@='
|
|
||||||
let s:markdown_syntax.char_bold = '\*\*\|__'
|
|
||||||
|
|
||||||
" text: _emphasis_ or *emphasis*
|
|
||||||
let s:markdown_syntax.rxItalic = '\%(^\|\s\|[[:punct:]]\)\@<='.
|
|
||||||
\'\(\*\|_\)'.
|
|
||||||
\'\%([^*_`[:space:]][^*_`]*[^*_`[:space:]]\|[^*_`[:space:]]\)'.
|
|
||||||
\'\1'.
|
|
||||||
\'\%([[:punct:]]\|\s\|$\)\@='
|
|
||||||
let s:markdown_syntax.char_italic = '\*\|_'
|
|
||||||
|
|
||||||
" text: *_bold italic_* or _*italic bold*_
|
|
||||||
let s:markdown_syntax.rxBoldItalic = '\%(^\|\s\|[[:punct:]]\)\@<='.
|
|
||||||
\'\(\*\)\{3\}'.
|
|
||||||
\'\%([^*`[:space:]][^*`]*[^*`[:space:]]\|[^*`[:space:]]\)'.
|
|
||||||
\'\1\{3\}'.
|
|
||||||
\'\%([[:punct:]]\|\s\|$\)\@='
|
|
||||||
let s:markdown_syntax.char_bolditalic = '\*\*\*'
|
|
||||||
|
|
||||||
let s:markdown_syntax.rxItalicBold = '\%(^\|\s\|[[:punct:]]\)\@<='.
|
|
||||||
\'\(_\)\{3\}'.
|
|
||||||
\'\%([^_`[:space:]][^_`]*[^_`[:space:]]\|[^_`[:space:]]\)'.
|
|
||||||
\'\1\{3\}'.
|
|
||||||
\'\%([[:punct:]]\|\s\|$\)\@='
|
|
||||||
let s:markdown_syntax.char_italicbold = '___'
|
|
||||||
|
|
||||||
" text: `code`
|
" text: `code`
|
||||||
let s:markdown_syntax.rxCode = '`[^`]\+`'
|
let s:markdown_syntax.rxCode = '`[^`]\+`'
|
||||||
let s:markdown_syntax.char_code = '`'
|
let s:markdown_syntax.char_code = '`'
|
||||||
|
@ -9,24 +9,31 @@
|
|||||||
|
|
||||||
let s:media_syntax = g:vimwiki_syntax_variables['media']
|
let s:media_syntax = g:vimwiki_syntax_variables['media']
|
||||||
|
|
||||||
|
let s:media_syntax.dTypeface = {}
|
||||||
|
|
||||||
|
" text: '''strong'''
|
||||||
|
let s:media_syntax.dTypeface['bold'] = [
|
||||||
|
\ ['\S\@<=''''''\|''''''\S\@=', '\S\@<=''''''\|''''''\S\@='],
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
" text: ''italic''
|
||||||
|
let s:media_syntax.dTypeface['italic'] = [
|
||||||
|
\ ['\S\@<=''''\|''''\S\@=', '\S\@<=''''\|''''\S\@='],
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
" text: no underline defined
|
||||||
|
let s:media_syntax.dTypeface['underline'] = []
|
||||||
|
|
||||||
|
" text: '''''strong italic'''''
|
||||||
|
let s:media_syntax.dTypeface['bold_italic'] = [
|
||||||
|
\ ['\S\@<=''''''''''\|''''''''''\S\@=', '\S\@<=''''''''''\|''''''''''\S\@='],
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
|
||||||
" text: $ equation_inline $
|
" text: $ equation_inline $
|
||||||
let s:media_syntax.rxEqIn = '\$[^$`]\+\$'
|
let s:media_syntax.rxEqIn = '\$[^$`]\+\$'
|
||||||
let s:media_syntax.char_eqin = '\$'
|
let s:media_syntax.char_eqin = '\$'
|
||||||
|
|
||||||
" text: '''strong'''
|
|
||||||
let s:media_syntax.rxBold = "'''[^']\\+'''"
|
|
||||||
let s:media_syntax.char_bold = "'''"
|
|
||||||
|
|
||||||
" text: ''emphasis''
|
|
||||||
let s:media_syntax.rxItalic = "''[^']\\+''"
|
|
||||||
let s:media_syntax.char_italic = "''"
|
|
||||||
|
|
||||||
" text: '''''strong italic'''''
|
|
||||||
let s:media_syntax.rxBoldItalic = "'''''[^']\\+'''''"
|
|
||||||
let s:media_syntax.rxItalicBold = s:media_syntax.rxBoldItalic
|
|
||||||
let s:media_syntax.char_bolditalic = "'''''"
|
|
||||||
let s:media_syntax.char_italicbold = s:media_syntax.char_bolditalic
|
|
||||||
|
|
||||||
" text: `code`
|
" text: `code`
|
||||||
let s:media_syntax.rxCode = '`[^`]\+`'
|
let s:media_syntax.rxCode = '`[^`]\+`'
|
||||||
let s:media_syntax.char_code = '`'
|
let s:media_syntax.char_code = '`'
|
||||||
|
@ -17,7 +17,7 @@ Given vimwiki (Typeface for html 1 like italic):
|
|||||||
Execute (Set syntax markdown):
|
Execute (Set syntax markdown):
|
||||||
call SetSyntax('markdown')
|
call SetSyntax('markdown')
|
||||||
|
|
||||||
Execute (Assert Syntax for typeface):
|
Execute (Assert Syntax for typeface 1):
|
||||||
AssertEqual 'VimwikiBold' , SyntaxAt(1, 15)
|
AssertEqual 'VimwikiBold' , SyntaxAt(1, 15)
|
||||||
AssertEqual 'VimwikiBold' , SyntaxAt(2, 15)
|
AssertEqual 'VimwikiBold' , SyntaxAt(2, 15)
|
||||||
AssertEqual 'VimwikiItalic' , SyntaxAt(3, 15)
|
AssertEqual 'VimwikiItalic' , SyntaxAt(3, 15)
|
||||||
@ -32,7 +32,7 @@ Given vimwiki (Typeface for html 2 like italicUnderline):
|
|||||||
<u> Underline -cacaca<b>bold underline-------</b>asacc acaca- </u>
|
<u> Underline -cacaca<b>bold underline-------</b>asacc acaca- </u>
|
||||||
<u> Underline -cacaca<i>italic underline-----</i>asdacacc acaca- </u>
|
<u> Underline -cacaca<i>italic underline-----</i>asdacacc acaca- </u>
|
||||||
|
|
||||||
Execute (Assert Syntax for typeface):
|
Execute (Assert Syntax for typeface 2):
|
||||||
AssertEqual 'VimwikiBoldItalic' , GetSyntaxGroup(1, 30)
|
AssertEqual 'VimwikiBoldItalic' , GetSyntaxGroup(1, 30)
|
||||||
AssertEqual 'VimwikiBoldUnderline' , GetSyntaxGroup(2, 30)
|
AssertEqual 'VimwikiBoldUnderline' , GetSyntaxGroup(2, 30)
|
||||||
AssertEqual 'VimwikiBoldItalic' , GetSyntaxGroup(3, 30)
|
AssertEqual 'VimwikiBoldItalic' , GetSyntaxGroup(3, 30)
|
||||||
@ -48,7 +48,7 @@ Given vimwiki (Typeface for html 3 like boldItalicUnderline):
|
|||||||
<u><b> <i> bold italic underline </i> </b></u>
|
<u><b> <i> bold italic underline </i> </b></u>
|
||||||
<u><i><b> bold italic underline </b></i></u>
|
<u><i><b> bold italic underline </b></i></u>
|
||||||
|
|
||||||
Execute (Assert Syntax for typeface):
|
Execute (Assert Syntax for typeface 3):
|
||||||
AssertEqual 'VimwikiBoldItalicUnderline1', GetSyntaxGroup(1, 22).1
|
AssertEqual 'VimwikiBoldItalicUnderline1', GetSyntaxGroup(1, 22).1
|
||||||
AssertEqual 'VimwikiBoldItalicUnderline2', GetSyntaxGroup(2, 22).2
|
AssertEqual 'VimwikiBoldItalicUnderline2', GetSyntaxGroup(2, 22).2
|
||||||
AssertEqual 'VimwikiBoldItalicUnderline3', GetSyntaxGroup(3, 22).3
|
AssertEqual 'VimwikiBoldItalicUnderline3', GetSyntaxGroup(3, 22).3
|
||||||
@ -92,16 +92,16 @@ Execute (Set syntax markdown):
|
|||||||
call SetSyntax('markdown')
|
call SetSyntax('markdown')
|
||||||
|
|
||||||
Execute (Assert Syntax for typeface):
|
Execute (Assert Syntax for typeface):
|
||||||
AssertEqual SyntaxAt(1, 4), 'VimwikiBold'
|
AssertEqual 'VimwikiBold' , SyntaxAt(1, 4)
|
||||||
AssertEqual SyntaxAt(2, 4), 'VimwikiBold'
|
AssertEqual 'VimwikiBold' , SyntaxAt(2, 4)
|
||||||
AssertEqual SyntaxAt(3, 4), 'VimwikiItalic'
|
AssertEqual 'VimwikiItalic' , SyntaxAt(3, 4)
|
||||||
AssertEqual SyntaxAt(4, 4), 'VimwikiItalic'
|
AssertEqual 'VimwikiItalic' , SyntaxAt(4, 4)
|
||||||
AssertEqual SyntaxAt(5, 4), 'VimwikiBoldItalic'
|
AssertEqual 'VimwikiBoldItalic' , SyntaxAt(5, 4)
|
||||||
AssertEqual SyntaxAt(6, 4), 'VimwikiItalicBold'
|
AssertEqual 'VimwikiBoldItalic' , SyntaxAt(6, 4)
|
||||||
AssertEqual SyntaxAt(7, 4), 'VimwikiDelText'
|
AssertEqual 'VimwikiDelText' , SyntaxAt(7, 4)
|
||||||
AssertEqual SyntaxAt(8, 4), 'VimwikiCode'
|
AssertEqual 'VimwikiCode' , SyntaxAt(8, 4)
|
||||||
AssertEqual SyntaxAt(9, 4), 'VimwikiSuperScript'
|
AssertEqual 'VimwikiSuperScript' , SyntaxAt(9, 4)
|
||||||
AssertEqual SyntaxAt(10, 4), 'VimwikiSubScript'
|
AssertEqual 'VimwikiSubScript' , SyntaxAt(10, 4)
|
||||||
|
|
||||||
|
|
||||||
# 2 Links {{{1
|
# 2 Links {{{1
|
||||||
|
Loading…
Reference in New Issue
Block a user