Cherry-pick the changes from dev -- part 1

This commit is contained in:
EinfachToll 2018-02-16 07:26:42 +01:00
parent 5419fad3f7
commit 19f398c73e
5 changed files with 73 additions and 41 deletions

View File

@ -860,7 +860,11 @@ function! s:process_tag_list(line, lists) "{{{
let chk = matchlist(a:line, a:rx_list) let chk = matchlist(a:line, a:rx_list)
if !empty(chk) && len(chk[1]) > 0 if !empty(chk) && len(chk[1]) > 0
let completion = index(vimwiki#vars#get_syntaxlocal('listsyms_list'), chk[1]) let completion = index(vimwiki#vars#get_syntaxlocal('listsyms_list'), chk[1])
if completion >= 0 && completion <=4 let n = len(vimwiki#vars#get_syntaxlocal('listsyms_list'))
if completion == 0
let st_tag = '<li class="done0">'
elseif completion > 0 && completion < n
let completion = float2nr(round(completion / (n-1.0) * 3.0 + 0.5 ))
let st_tag = '<li class="done'.completion.'">' let st_tag = '<li class="done'.completion.'">'
endif endif
endif endif
@ -979,7 +983,11 @@ function! s:process_tag_para(line, para) "{{{
let para = 1 let para = 1
endif endif
let processed = 1 let processed = 1
if vimwiki#vars#get_global('text_ignore_newline')
call add(lines, a:line) call add(lines, a:line)
else
call add(lines, a:line."<br />")
endif
elseif para && a:line =~# '^\s*$' elseif para && a:line =~# '^\s*$'
call add(lines, "</p>") call add(lines, "</p>")
let para = 0 let para = 0

View File

@ -697,7 +697,8 @@ function! s:get_rate(item) "{{{
return -1 return -1
endif endif
let state = a:item.cb let state = a:item.cb
return index(vimwiki#vars#get_syntaxlocal('listsyms_list'), state) * 25 let n = len(vimwiki#vars#get_syntaxlocal('listsyms_list'))
return index(vimwiki#vars#get_syntaxlocal('listsyms_list'), state) * 100/(n-1)
endfunction "}}} endfunction "}}}
"Set state of the list item to [ ] or [o] or whatever "Set state of the list item to [ ] or [o] or whatever
@ -732,17 +733,16 @@ endfunction "}}}
"Returns: the appropriate symbol for a given percent rate "Returns: the appropriate symbol for a given percent rate
function! s:rate_to_state(rate) "{{{ function! s:rate_to_state(rate) "{{{
let listsyms_list = vimwiki#vars#get_syntaxlocal('listsyms_list')
let state = '' let state = ''
let n = len(listsyms_list)
if a:rate == 100 if a:rate == 100
let state = vimwiki#vars#get_syntaxlocal('listsyms_list')[4] let state = listsyms_list[n-1]
elseif a:rate == 0 elseif a:rate == 0
let state = vimwiki#vars#get_syntaxlocal('listsyms_list')[0] let state = listsyms_list[0]
elseif a:rate >= 67
let state = vimwiki#vars#get_syntaxlocal('listsyms_list')[3]
elseif a:rate >= 34
let state = vimwiki#vars#get_syntaxlocal('listsyms_list')[2]
else else
let state = vimwiki#vars#get_syntaxlocal('listsyms_list')[1] let index = float2nr(ceil(a:rate/100.0*(n-2)))
let state = listsyms_list[index]
endif endif
return state return state
endfunction "}}} endfunction "}}}

View File

@ -47,6 +47,7 @@ function! s:populate_global_variables()
\ 'html_header_numbering': 0, \ 'html_header_numbering': 0,
\ 'html_header_numbering_sym': '', \ 'html_header_numbering_sym': '',
\ 'list_ignore_newline': 1, \ 'list_ignore_newline': 1,
\ 'text_ignore_newline': 1,
\ 'listsyms': ' .oOX', \ 'listsyms': ' .oOX',
\ 'map_prefix': '<Leader>w', \ 'map_prefix': '<Leader>w',
\ 'menu': 'Vimwiki', \ 'menu': 'Vimwiki',
@ -384,13 +385,13 @@ function! vimwiki#vars#populate_syntax_vars(syntax)
if g:vimwiki_syntax_variables[a:syntax].recurring_bullets if g:vimwiki_syntax_variables[a:syntax].recurring_bullets
let g:vimwiki_syntax_variables[a:syntax].rxListItemAndChildren = let g:vimwiki_syntax_variables[a:syntax].rxListItemAndChildren =
\ '^\('.g:vimwiki_syntax_variables[a:syntax].rxListBullet.'\)\s\+\[' \ '^\('.g:vimwiki_syntax_variables[a:syntax].rxListBullet.'\)\s\+\['
\ . g:vimwiki_syntax_variables[a:syntax].listsyms_list[4].'\]\s.*\%(\n\%(\1\%(' \ . g:vimwiki_syntax_variables[a:syntax].listsyms_list[-1].'\]\s.*\%(\n\%(\1\%('
\ .g:vimwiki_syntax_variables[a:syntax].rxListBullet.'\).*\|^$\|\s.*\)\)*' \ .g:vimwiki_syntax_variables[a:syntax].rxListBullet.'\).*\|^$\|\s.*\)\)*'
else else
let g:vimwiki_syntax_variables[a:syntax].rxListItemAndChildren = let g:vimwiki_syntax_variables[a:syntax].rxListItemAndChildren =
\ '^\(\s*\)\%('.g:vimwiki_syntax_variables[a:syntax].rxListBullet.'\|' \ '^\(\s*\)\%('.g:vimwiki_syntax_variables[a:syntax].rxListBullet.'\|'
\ . g:vimwiki_syntax_variables[a:syntax].rxListNumber.'\)\s\+\[' \ . g:vimwiki_syntax_variables[a:syntax].rxListNumber.'\)\s\+\['
\ . g:vimwiki_syntax_variables[a:syntax].listsyms_list[4].'\]\s.*\%(\n\%(\1\s.*\|^$\)\)*' \ . g:vimwiki_syntax_variables[a:syntax].listsyms_list[-1].'\]\s.*\%(\n\%(\1\s.*\|^$\)\)*'
endif endif
" 0. URL : free-standing links: keep URL UR(L) strip trailing punct: URL; URL) UR(L)) " 0. URL : free-standing links: keep URL UR(L) strip trailing punct: URL; URL) UR(L))

View File

@ -1277,40 +1277,50 @@ Tags-related commands and options:
6. Folding/Outline *vimwiki-folding* 6. Folding/Outline *vimwiki-folding*
Vimwiki can fold or outline sections using headers and preformatted blocks. Vimwiki can fold or outline sections using headers and preformatted blocks.
Alternatively, one can fold list subitems instead. Alternatively, one can fold list subitems instead. Folding is not enabled
by default, and requires the |g:vimwiki_folding| variable to be set.
Example for list folding with |g:vimwiki_folding| set to 'list':
Example for list folding:
= My current task = = My current task =
* [ ] Do stuff 1 * [ ] Do stuff 1
* [ ] Do substuff 1.1 * [ ] Do substuff 1.1
* [ ] Do substuff 1.2 * [ ] Do substuff 1.2
* [ ] Do substuff 1.2.1 * [ ] Do substuff 1.2.1
* [ ] Do substuff 1.2.2 * [ ] Do substuff 1.2.2
* [ ] Do substuff 1.3 * [ ] Do substuff 1.3
* [ ] Do stuff 2 * [ ] Do stuff 2
* [ ] Do stuff 3 * [ ] Do stuff 3
Hit |zM| : Hit |zM| :
= My current task = [8] --------------------------------------~ = My current task =
* [ ] Do stuff 1 [6] --------------------------------------~
* [ ] Do stuff 2
* [ ] Do stuff 3
Hit |zr| : Hit |zr| :
= My current task =~ = My current task =
* [ ] Do stuff 1 [5] --------------------------------------~ * [ ] Do stuff 1
* [ ] Do stuff 2~ * [ ] Do substuff 1.1
* [ ] Do stuff 3~ * [ ] Do substuff 1.2 [3] -------------------------------~
* [ ] Do substuff 1.3
* [ ] Do stuff 2
* [ ] Do stuff 3
Hit |zr| one more time: Hit |zr| one more time :
= My current task =~ = My current task =
* [ ] Do stuff 1~ * [ ] Do stuff 1
* [ ] Do substuff 1.1~ * [ ] Do substuff 1.1
* [ ] Do substuff 1.2 [2] -------------------------------~ * [ ] Do substuff 1.2
* [ ] Do substuff 1.3~ * [ ] Do substuff 1.2.1
* [ ] Do stuff 2~ * [ ] Do substuff 1.2.2
* [ ] Do stuff 3~ * [ ] Do substuff 1.3
* [ ] Do stuff 2
* [ ] Do stuff 3
Note: If you use the default Vimwiki syntax, folding on list items will work Note: If you use the default Vimwiki syntax, folding on list items will work
properly only if all of them are indented using the current 'shiftwidth'. properly only if all of them are indented using the current 'shiftwidth'.
For MediaWiki, * or # should be in the first column. For MediaWiki syntax, * or # should be in the first column.
To turn folding on/off check |g:vimwiki_folding|. To turn folding on/off check |g:vimwiki_folding|.
@ -2241,11 +2251,11 @@ Default: 'Vimwiki'
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
*g:vimwiki_listsyms* *g:vimwiki_listsyms*
String of 5 symbols to show the progression of todo list items. String of at least two symbols to show the progression of todo list items.
Default value is ' .oOX'. Default value is ' .oOX'.
The first char is for 0% done items. The first char is for 0% done items.
The fifth is for 100% done items. The last is for 100% done items.
You can set it to some more fancy symbols like this: You can set it to some more fancy symbols like this:
> >
@ -2298,6 +2308,19 @@ Value Description~
Default: 1 Default: 1
------------------------------------------------------------------------------
*g:vimwiki_text_ignore_newline*
This is HTML related.
Convert newlines to <br />s in text.
Value Description~
0 Newlines in text are converted to <br />s.
1 Ignore newlines.
Default: 1
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
*g:vimwiki_use_calendar* *g:vimwiki_use_calendar*

View File

@ -235,9 +235,9 @@ execute 'syntax match VimwikiList /'.vimwiki#vars#get_syntaxlocal('rxListDefine'
execute 'syntax match VimwikiListTodo /'.vimwiki#vars#get_syntaxlocal('rxListItem').'/' execute 'syntax match VimwikiListTodo /'.vimwiki#vars#get_syntaxlocal('rxListItem').'/'
if vimwiki#vars#get_global('hl_cb_checked') == 1 if vimwiki#vars#get_global('hl_cb_checked') == 1
execute 'syntax match VimwikiCheckBoxDone ' execute 'syntax match VimwikiCheckBoxDone /'.vimwiki#vars#get_syntaxlocal('rxListItemWithoutCB')
\ . ' /'.vimwiki#vars#get_syntaxlocal('rxListItemWithoutCB').'\s*\['.vimwiki#vars#get_syntaxlocal('listsyms_list')[4].'\]\s.*$/' \ .'\s*\['.vimwiki#vars#get_syntaxlocal('listsyms_list')[-1]
\ . ' contains=VimwikiNoExistsLink,VimwikiLink,@Spell' \ .'\]\s.*$/ contains=VimwikiNoExistsLink,VimwikiLink,@Spell'
elseif vimwiki#vars#get_global('hl_cb_checked') == 2 elseif vimwiki#vars#get_global('hl_cb_checked') == 2
execute 'syntax match VimwikiCheckBoxDone /'.vimwiki#vars#get_syntaxlocal('rxListItemAndChildren').'/ contains=VimwikiNoExistsLink,VimwikiLink,@Spell' execute 'syntax match VimwikiCheckBoxDone /'.vimwiki#vars#get_syntaxlocal('rxListItemAndChildren').'/ contains=VimwikiNoExistsLink,VimwikiLink,@Spell'
endif endif