commit 6257c8fa54e634b5dda12a09ae6b43524166e8e8
parent 35d1f23b921d0657c1792fbed3c8a2ca2dac3e9a
Author: EinfachToll <istjanichtzufassen@googlemail.com>
Date: Thu, 17 Jan 2019 21:57:42 +0100
Revert "Allow to specify additional chars for lists"
This reverts commit 75819ca23a1244416aba3db2843f77cc55c06e16.
Diffstat:
5 files changed, 68 insertions(+), 92 deletions(-)
diff --git a/autoload/vimwiki/html.vim b/autoload/vimwiki/html.vim
@@ -886,8 +886,8 @@ function! s:process_tag_list(line, lists)
let st_tag = '<li>'
let chk = matchlist(a:line, a:rx_list)
if !empty(chk) && len(chk[1]) > 0
- let completion = index(vimwiki#vars#get_wikilocal('listsyms_list'), chk[1])
- let n = len(vimwiki#vars#get_wikilocal('listsyms_list'))
+ let completion = index(vimwiki#vars#get_syntaxlocal('listsyms_list'), chk[1])
+ let n = len(vimwiki#vars#get_syntaxlocal('listsyms_list'))
if completion == 0
let st_tag = '<li class="done0">'
elseif completion == -1 && chk[1] == vimwiki#vars#get_global('listsym_rejected')
@@ -1476,7 +1476,7 @@ function! s:convert_file(path_html, wikifile)
endif
" prepare regexps for lists
- let s:bullets = vimwiki#vars#get_wikilocal('rx_bullet_char')
+ let s:bullets = '[*-]'
let s:numbers = '\C\%(#\|\d\+)\|\d\+\.\|[ivxlcdm]\+)\|[IVXLCDM]\+)\|\l\{1,2})\|\u\{1,2})\)'
for line in lsource
diff --git a/autoload/vimwiki/lst.vim b/autoload/vimwiki/lst.vim
@@ -137,7 +137,7 @@ endfunction
"Returns: the column where the text of a line starts (possible list item
"markers and checkboxes are skipped)
function! s:text_begin(lnum)
- return s:string_length(matchstr(getline(a:lnum), vimwiki#vars#get_wikilocal('rxListItem')))
+ return s:string_length(matchstr(getline(a:lnum), vimwiki#vars#get_syntaxlocal('rxListItem')))
endfunction
@@ -145,9 +145,9 @@ endfunction
" 1 for a marker and no text
" 0 for no marker at all (empty line or only text)
function! s:line_has_marker(lnum)
- if getline(a:lnum) =~# vimwiki#vars#get_wikilocal('rxListItem').'\s*$'
+ if getline(a:lnum) =~# vimwiki#vars#get_syntaxlocal('rxListItem').'\s*$'
return 1
- elseif getline(a:lnum) =~# vimwiki#vars#get_wikilocal('rxListItem').'\s*\S'
+ elseif getline(a:lnum) =~# vimwiki#vars#get_syntaxlocal('rxListItem').'\s*\S'
return 2
else
return 0
@@ -172,7 +172,7 @@ function! s:get_item(lnum)
return item
endif
- let matches = matchlist(getline(a:lnum), vimwiki#vars#get_wikilocal('rxListItem'))
+ let matches = matchlist(getline(a:lnum), vimwiki#vars#get_syntaxlocal('rxListItem'))
if matches == [] ||
\ (matches[1] == '' && matches[2] == '') ||
\ (matches[1] != '' && matches[2] != '')
@@ -209,7 +209,7 @@ function! s:get_level(lnum)
let level = indent(a:lnum)
else
let level = s:string_length(matchstr(getline(a:lnum),
- \ vimwiki#vars#get_wikilocal(rx_bullet_chars)))-1
+ \ vimwiki#vars#get_syntaxlocal(rx_bullet_chars)))-1
if level < 0
let level = (indent(a:lnum) == 0) ? 0 : 9999
endif
@@ -744,8 +744,8 @@ function! s:get_rate(item)
if state == vimwiki#vars#get_global('listsym_rejected')
return -1
endif
- let n = len(vimwiki#vars#get_wikilocal('listsyms_list'))
- return index(vimwiki#vars#get_wikilocal('listsyms_list'), state) * 100/(n-1)
+ let n = len(vimwiki#vars#get_syntaxlocal('listsyms_list'))
+ return index(vimwiki#vars#get_syntaxlocal('listsyms_list'), state) * 100/(n-1)
endfunction
@@ -820,7 +820,7 @@ endfunction
"Returns: the appropriate symbol for a given percent rate
function! s:rate_to_state(rate)
- let listsyms_list = vimwiki#vars#get_wikilocal('listsyms_list')
+ let listsyms_list = vimwiki#vars#get_syntaxlocal('listsyms_list')
let state = ''
let n = len(listsyms_list)
if a:rate == 100
@@ -997,7 +997,7 @@ function! vimwiki#lst#decrement_cb(from_line, to_line)
"if from_line has CB, decrement it and set all siblings to the same new state
let rate_first_line = s:get_rate(from_item)
- let n = len(vimwiki#vars#get_wikilocal('listsyms_list'))
+ let n = len(vimwiki#vars#get_syntaxlocal('listsyms_list'))
let new_rate = max([rate_first_line - 100/(n-1)-1, 0])
call s:change_cb(a:from_line, a:to_line, new_rate)
@@ -1015,7 +1015,7 @@ function! vimwiki#lst#increment_cb(from_line, to_line)
"if from_line has CB, increment it and set all siblings to the same new state
let rate_first_line = s:get_rate(from_item)
- let n = len(vimwiki#vars#get_wikilocal('listsyms_list'))
+ let n = len(vimwiki#vars#get_syntaxlocal('listsyms_list'))
let new_rate = min([rate_first_line + 100/(n-1)+1, 100])
call s:change_cb(a:from_line, a:to_line, new_rate)
@@ -1034,7 +1034,6 @@ endfunction
"in the lines of the given range
function! vimwiki#lst#toggle_rejected_cb(from_line, to_line)
return s:toggle_create_cb(a:from_line, a:to_line, -1, 0, -1)
-
endfunction
@@ -1102,7 +1101,7 @@ endfunction
function! s:decrease_level(item)
let removed_indent = 0
if vimwiki#vars#get_syntaxlocal('recurring_bullets') && a:item.type == 1 &&
- \ index(vimwiki#vars#get_wikilocal('multiple_bullet_chars'),
+ \ index(vimwiki#vars#get_syntaxlocal('multiple_bullet_chars'),
\ s:first_char(a:item.mrkr)) > -1
if s:string_length(a:item.mrkr) >= 2
call s:substitute_string_in_line(a:item.lnum, s:first_char(a:item.mrkr), '')
@@ -1125,7 +1124,7 @@ endfunction
function! s:increase_level(item)
let additional_indent = 0
if vimwiki#vars#get_syntaxlocal('recurring_bullets') && a:item.type == 1 &&
- \ index(vimwiki#vars#get_wikilocal('multiple_bullet_chars'),
+ \ index(vimwiki#vars#get_syntaxlocal('multiple_bullet_chars'),
\ s:first_char(a:item.mrkr)) > -1
call s:substitute_string_in_line(a:item.lnum, a:item.mrkr, a:item.mrkr .
\ s:first_char(a:item.mrkr))
@@ -1149,7 +1148,7 @@ endfunction
function! s:indent_line_by(lnum, indent_by)
let item = s:get_item(a:lnum)
if vimwiki#vars#get_syntaxlocal('recurring_bullets') && item.type == 1 &&
- \ index(vimwiki#vars#get_wikilocal('multiple_bullet_chars'),
+ \ index(vimwiki#vars#get_syntaxlocal('multiple_bullet_chars'),
\ s:first_char(item.mrkr)) > -1
if a:indent_by > 0
call s:substitute_string_in_line(a:lnum, item.mrkr, item.mrkr . s:first_char(item.mrkr))
@@ -1324,7 +1323,7 @@ function! vimwiki#lst#change_marker(from_line, to_line, new_mrkr, mode)
endif
"handle markers like ***
- if index(vimwiki#vars#get_wikilocal('multiple_bullet_chars'), s:first_char(new_mrkr)) > -1
+ if index(vimwiki#vars#get_syntaxlocal('multiple_bullet_chars'), s:first_char(new_mrkr)) > -1
"use *** if the item above has *** too
let item_above = s:get_prev_list_item(cur_item, 1)
if item_above.type == 1 && s:first_char(item_above.mrkr) ==# s:first_char(new_mrkr)
@@ -1395,7 +1394,7 @@ function! s:adjust_mrkr(item)
"if possible, set e.g. *** if parent has ** as marker
if neighbor_item.type == 0 && a:item.type == 1 &&
- \ index(vimwiki#vars#get_wikilocal('multiple_bullet_chars'),
+ \ index(vimwiki#vars#get_syntaxlocal('multiple_bullet_chars'),
\ s:first_char(a:item.mrkr)) > -1
let parent_item = s:get_parent(a:item)
if parent_item.type == 1 && s:first_char(parent_item.mrkr) ==# s:first_char(a:item.mrkr)
diff --git a/autoload/vimwiki/vars.vim b/autoload/vimwiki/vars.vim
@@ -204,7 +204,6 @@ function! s:populate_wikilocal_options()
\ 'template_default': 'default',
\ 'template_ext': '.tpl',
\ 'template_path': $HOME . '/vimwiki/templates/',
- \ 'bullet_types': [],
\ }
let g:vimwiki_wikilocal_vars = []
@@ -247,13 +246,6 @@ function! s:populate_wikilocal_options()
let temporary_wiki_settings = deepcopy(default_wiki_settings)
let temporary_wiki_settings.is_temporary_wiki = 1
call add(g:vimwiki_wikilocal_vars, temporary_wiki_settings)
- " Set up variables for the lists, depending on config and syntax
- for wiki in g:vimwiki_wikilocal_vars
- if len(wiki.bullet_types) == 0
- let wiki.bullet_types = vimwiki#vars#get_syntaxlocal('bullet_types', wiki.syntax)
- endif
- call vimwiki#vars#populate_list_vars(wiki)
- endfor
call s:validate_settings()
endfunction
@@ -351,6 +343,20 @@ function! vimwiki#vars#populate_syntax_vars(syntax)
let g:vimwiki_syntax_variables[a:syntax].rxMathEnd =
\ '^\s*'.g:vimwiki_syntax_variables[a:syntax].rxMathEnd.'\s*$'
+ " list stuff
+ let g:vimwiki_syntax_variables[a:syntax].rx_bullet_chars =
+ \ '['.join(g:vimwiki_syntax_variables[a:syntax].bullet_types, '').']\+'
+
+ let g:vimwiki_syntax_variables[a:syntax].multiple_bullet_chars =
+ \ g:vimwiki_syntax_variables[a:syntax].recurring_bullets
+ \ ? g:vimwiki_syntax_variables[a:syntax].bullet_types : []
+
+ let g:vimwiki_syntax_variables[a:syntax].number_kinds = []
+ let g:vimwiki_syntax_variables[a:syntax].number_divisors = ''
+ for i in g:vimwiki_syntax_variables[a:syntax].number_types
+ call add(g:vimwiki_syntax_variables[a:syntax].number_kinds, i[0])
+ let g:vimwiki_syntax_variables[a:syntax].number_divisors .= vimwiki#u#escape(i[1])
+ endfor
let char_to_rx = {'1': '\d\+', 'i': '[ivxlcdm]\+', 'I': '[IVXLCDM]\+',
\ 'a': '\l\{1,2}', 'A': '\u\{1,2}'}
@@ -382,6 +388,36 @@ function! vimwiki#vars#populate_syntax_vars(syntax)
let g:vimwiki_syntax_variables[a:syntax].rxListNumber = '$^'
endif
+ "the user can set the listsyms as string, but vimwiki needs a list
+ let g:vimwiki_syntax_variables[a:syntax].listsyms_list =
+ \ split(vimwiki#vars#get_global('listsyms'), '\zs')
+ if match(vimwiki#vars#get_global('listsyms'), vimwiki#vars#get_global('listsym_rejected')) != -1
+ echomsg 'Vimwiki Warning: the value of g:vimwiki_listsym_rejected ('''
+ \ . vimwiki#vars#get_global('listsym_rejected')
+ \ . ''') must not be a part of g:vimwiki_listsyms (''' .
+ \ . vimwiki#vars#get_global('listsyms') . ''')'
+ endif
+ let g:vimwiki_syntax_variables[a:syntax].rxListItemWithoutCB =
+ \ '^\s*\%(\('.g:vimwiki_syntax_variables[a:syntax].rxListBullet.'\)\|\('
+ \ .g:vimwiki_syntax_variables[a:syntax].rxListNumber.'\)\)\s'
+ let g:vimwiki_syntax_variables[a:syntax].rxListItem =
+ \ g:vimwiki_syntax_variables[a:syntax].rxListItemWithoutCB
+ \ . '\+\%(\[\(['.vimwiki#vars#get_global('listsyms')
+ \ . vimwiki#vars#get_global('listsym_rejected').']\)\]\s\)\?'
+ if g:vimwiki_syntax_variables[a:syntax].recurring_bullets
+ let g:vimwiki_syntax_variables[a:syntax].rxListItemAndChildren =
+ \ '^\('.g:vimwiki_syntax_variables[a:syntax].rxListBullet.'\)\s\+\[['
+ \ . g:vimwiki_syntax_variables[a:syntax].listsyms_list[-1]
+ \ . vimwiki#vars#get_global('listsym_rejected') . ']\]\s.*\%(\n\%(\1\%('
+ \ .g:vimwiki_syntax_variables[a:syntax].rxListBullet.'\).*\|^$\|\s.*\)\)*'
+ else
+ let g:vimwiki_syntax_variables[a:syntax].rxListItemAndChildren =
+ \ '^\(\s*\)\%('.g:vimwiki_syntax_variables[a:syntax].rxListBullet.'\|'
+ \ . g:vimwiki_syntax_variables[a:syntax].rxListNumber.'\)\s\+\[['
+ \ . g:vimwiki_syntax_variables[a:syntax].listsyms_list[-1]
+ \ . vimwiki#vars#get_global('listsym_rejected') . ']\]\s.*\%(\n\%(\1\s.*\|^$\)\)*'
+ endif
+
" 0. URL : free-standing links: keep URL UR(L) strip trailing punct: URL; URL) UR(L))
" let g:vimwiki_rxWeblink = '[\["(|]\@<!'. g:vimwiki_rxWeblinkUrl .
" \ '\%([),:;.!?]\=\%([ \t]\|$\)\)\@='
@@ -430,65 +466,6 @@ function! vimwiki#vars#populate_syntax_vars(syntax)
endfunction
-function! vimwiki#vars#populate_list_vars(wiki)
- let syntax = a:wiki.syntax
-
- let a:wiki.rx_bullet_char = '['.escape(join(a:wiki.bullet_types, ''), ']^-\').']'
- let a:wiki.rx_bullet_chars = a:wiki.rx_bullet_char.'\+'
-
- let recurring_bullets = vimwiki#vars#get_syntaxlocal('recurring_bullets')
- let rxListNumber = vimwiki#vars#get_syntaxlocal('rxListNumber')
-
- let a:wiki.multiple_bullet_chars =
- \ recurring_bullets
- \ ? a:wiki.bullet_types : []
-
- "create regexp for bulleted list items
- if !empty(a:wiki.bullet_types)
- let rxListBullet =
- \ join( map(a:wiki.bullet_types,
- \'vimwiki#u#escape(v:val).'
- \ .'repeat("\\+", recurring_bullets)'
- \ ) , '\|')
- else
- "regex that matches nothing
- let rxListBullet = '$^'
- endif
-
- "the user can set the listsyms as string, but vimwiki needs a list
- " TODO make a true wikilocal and use global only as fallback for compatibility
- let a:wiki.listsyms_list =
- \ split(vimwiki#vars#get_global('listsyms'), '\zs')
- if match(vimwiki#vars#get_global('listsyms'), vimwiki#vars#get_global('listsym_rejected')) != -1
- echomsg 'Vimwiki Warning: the value of g:vimwiki_listsym_rejected ('''
- \ . vimwiki#vars#get_global('listsym_rejected')
- \ . ''') must not be a part of g:vimwiki_listsyms (''' .
- \ . vimwiki#vars#get_global('listsyms') . ''')'
- endif
-
- let a:wiki.rxListItemWithoutCB =
- \ '^\s*\%(\('.rxListBullet.'\)\|\('
- \ .rxListNumber.'\)\)\s'
- let a:wiki.rxListItem =
- \ a:wiki.rxListItemWithoutCB
- \ . '\+\%(\[\(['.vimwiki#vars#get_global('listsyms')
- \ . vimwiki#vars#get_global('listsym_rejected').']\)\]\s\)\?'
- if recurring_bullets
- let a:wiki.rxListItemAndChildren =
- \ '^\('.rxListBullet.'\)\s\+\[['
- \ . a:wiki.listsyms_list[-1]
- \ . vimwiki#vars#get_global('listsym_rejected') . ']\]\s.*\%(\n\%(\1\%('
- \ .rxListBullet.'\).*\|^$\|\s.*\)\)*'
- else
- let a:wiki.rxListItemAndChildren =
- \ '^\(\s*\)\%('.rxListBullet.'\|'
- \ . rxListNumber.'\)\s\+\[['
- \ . a:wiki.listsyms_list[-1]
- \ . vimwiki#vars#get_global('listsym_rejected') . ']\]\s.*\%(\n\%(\1\s.*\|^$\)\)*'
- endif
-endfunction
-
-
function! s:populate_extra_markdown_vars()
let mkd_syntax = g:vimwiki_syntax_variables['markdown']
diff --git a/ftplugin/vimwiki.vim b/ftplugin/vimwiki.vim
@@ -127,7 +127,7 @@ setlocal formatoptions-=o
setlocal formatoptions-=2
setlocal formatoptions+=n
-let &formatlistpat = vimwiki#vars#get_wikilocal('rxListItem')
+let &formatlistpat = vimwiki#vars#get_syntaxlocal('rxListItem')
if !empty(&langmap)
" Valid only if langmap is a comma separated pairs of chars
diff --git a/syntax/vimwiki.vim b/syntax/vimwiki.vim
@@ -253,18 +253,18 @@ syntax match VimwikiCellSeparator
" Lists
-execute 'syntax match VimwikiList /'.vimwiki#vars#get_wikilocal('rxListItemWithoutCB').'/'
+execute 'syntax match VimwikiList /'.vimwiki#vars#get_syntaxlocal('rxListItemWithoutCB').'/'
execute 'syntax match VimwikiList /'.vimwiki#vars#get_syntaxlocal('rxListDefine').'/'
-execute 'syntax match VimwikiListTodo /'.vimwiki#vars#get_wikilocal('rxListItem').'/'
+execute 'syntax match VimwikiListTodo /'.vimwiki#vars#get_syntaxlocal('rxListItem').'/'
if vimwiki#vars#get_global('hl_cb_checked') == 1
- execute 'syntax match VimwikiCheckBoxDone /'.vimwiki#vars#get_wikilocal('rxListItemWithoutCB')
- \ . '\s*\[['.vimwiki#vars#get_wikilocal('listsyms_list')[-1]
+ execute 'syntax match VimwikiCheckBoxDone /'.vimwiki#vars#get_syntaxlocal('rxListItemWithoutCB')
+ \ . '\s*\[['.vimwiki#vars#get_syntaxlocal('listsyms_list')[-1]
\ . vimwiki#vars#get_global('listsym_rejected')
\ . ']\]\s.*$/ contains=VimwikiNoExistsLink,VimwikiLink,@Spell'
elseif vimwiki#vars#get_global('hl_cb_checked') == 2
execute 'syntax match VimwikiCheckBoxDone /'
- \ . vimwiki#vars#get_wikilocal('rxListItemAndChildren')
+ \ . vimwiki#vars#get_syntaxlocal('rxListItemAndChildren')
\ .'/ contains=VimwikiNoExistsLink,VimwikiLink,@Spell'
endif