Use new access functions for global variables -- part 1

Ref #256
This commit is contained in:
EinfachToll 2016-12-21 19:43:34 +01:00
parent 6b34e954e8
commit e6d997867a
7 changed files with 41 additions and 62 deletions

View File

@ -18,8 +18,8 @@ function! s:vimwiki_get_known_syntaxes() " {{{
let syntaxes[wiki.syntax] = 1
endif
endfor
" append map g:vimwiki_ext2syntax
for syn in values(g:vimwiki_ext2syntax)
" also consider the syntaxes from g:vimwiki_ext2syntax
for syn in values(vimwiki#vars#get_global('ext2syntax'))
let syntaxes[syn] = 1
endfor
return keys(syntaxes)
@ -131,7 +131,7 @@ function! vimwiki#base#setup_buffer_state(idx) " {{{ Init page-specific variable
call VimwikiSet('subdir', subdir, a:idx)
call VimwikiSet('invsubdir', vimwiki#base#invsubdir(subdir), a:idx)
if g:vimwiki_auto_chdir == 1
if vimwiki#vars#get_global('auto_chdir') == 1
exe 'lcd' VimwikiGet('path')
endif
@ -322,8 +322,8 @@ function! vimwiki#base#resolve_link(link_text, ...) "{{{
let link_infos.filename = root_dir . link_text
if vimwiki#path#is_link_to_dir(link_text)
if g:vimwiki_dir_link != ''
let link_infos.filename .= g:vimwiki_dir_link .
if vimwiki#vars#get_global('dir_link') != ''
let link_infos.filename .= vimwiki#vars#get_global('dir_link') .
\ VimwikiGet('ext', link_infos.index)
endif
else
@ -1745,6 +1745,7 @@ endfunction " }}}
function! vimwiki#base#table_of_contents(create)
" collect new headers
let is_inside_pre_or_math = 0 " 1: inside pre, 2: inside math, 0: outside
let numbering = vimwiki#vars#get_global('html_header_numbering')
let headers = []
let headers_levels = [['', 0], ['', 0], ['', 0], ['', 0], ['', 0], ['', 0]]
for lnum in range(1, line('$'))
@ -1784,11 +1785,11 @@ function! vimwiki#base#table_of_contents(create)
endfor
let h_complete_id .= headers_levels[h_level-1][0]
if g:vimwiki_html_header_numbering > 0
\ && g:vimwiki_html_header_numbering <= h_level
if numbering > 0
\ && numbering <= h_level
let h_number = join(map(copy(headers_levels[
\ g:vimwiki_html_header_numbering-1 : h_level-1]), 'v:val[1]'), '.')
let h_number .= g:vimwiki_html_header_numbering_sym
\ numbering-1 : h_level-1]), 'v:val[1]'), '.')
let h_number .= vimwiki#vars#get_global('html_header_numbering_sym')
let h_text = h_number.' '.h_text
endif

View File

@ -55,7 +55,7 @@ function! s:get_position_links(link) "{{{
endfunction "}}}
fun! s:get_month_name(month) "{{{
return g:vimwiki_diary_months[str2nr(a:month)]
return vimwiki#vars#get_global('diary_months')[str2nr(a:month)]
endfun "}}}
" Helpers }}}

View File

@ -1023,11 +1023,11 @@ function! s:process_tag_h(line, id) "{{{
let h_number .= a:id[h_level-1][1]
let h_complete_id .= a:id[h_level-1][0]
if g:vimwiki_html_header_numbering
if vimwiki#vars#get_global('html_header_numbering')
let num = matchstr(h_number,
\ '^\(\d.\)\{'.(g:vimwiki_html_header_numbering-1).'}\zs.*')
\ '^\(\d.\)\{'.(vimwiki#vars#get_global('html_header_numbering')-1).'}\zs.*')
if !empty(num)
let num .= g:vimwiki_html_header_numbering_sym
let num .= vimwiki#vars#get_global('html_header_numbering_sym')
endif
let h_text = num.' '.h_text
endif

View File

@ -29,7 +29,7 @@ function! s:wide_len(str) "{{{
endif
" get str display width in vim ver < 7.2
if !g:vimwiki_CJK_length
if !vimwiki#vars#get_global('CJK_length')
let ret = strlen(substitute(a:str, '.', 'x', 'g'))
else
let savemodified = &modified

View File

@ -22,8 +22,8 @@ let b:undo_ftplugin = "setlocal ".
setlocal commentstring=%%%s
if g:vimwiki_conceallevel && exists("+conceallevel")
let &l:conceallevel = g:vimwiki_conceallevel
if vimwiki#vars#get_global('conceallevel') && exists("+conceallevel")
let &l:conceallevel = vimwiki#vars#get_global('conceallevel')
endif
" GOTO FILE: gf {{{

View File

@ -75,7 +75,7 @@ function! s:setup_filetype() "{{{
let path = expand('%:p:h')
let idx = vimwiki#base#find_wiki(path)
if idx == -1 && g:vimwiki_global_ext == 0
if idx == -1 && vimwiki#vars#get_global('global_ext') == 0
return
endif
"XXX when idx = -1? (an orphan page has been detected)
@ -86,11 +86,7 @@ function! s:setup_filetype() "{{{
if idx == -1
let ext = '.'.expand('%:e')
" lookup syntax using g:vimwiki_ext2syntax
if has_key(g:vimwiki_ext2syntax, ext)
let syn = g:vimwiki_ext2syntax[ext]
else
let syn = s:vimwiki_defaults.syntax
endif
let syn = get(vimwiki#vars#get_global('ext2syntax'), ext, s:vimwiki_defaults.syntax)
call add(g:vimwiki_list, {'path': path, 'ext': ext, 'syntax': syn, 'temp': 1})
let idx = len(g:vimwiki_list) - 1
call Validate_wiki_options(idx)
@ -113,7 +109,7 @@ function! s:setup_buffer_enter() "{{{
" The buffer's file is not in the path and user *does NOT* want his wiki
" extension to be global -- Do not add new wiki.
if idx == -1 && g:vimwiki_global_ext == 0
if idx == -1 && vimwiki#vars#get_global('global_ext') == 0
return
endif
@ -123,11 +119,7 @@ function! s:setup_buffer_enter() "{{{
if idx == -1
let ext = '.'.expand('%:e')
" lookup syntax using g:vimwiki_ext2syntax
if has_key(g:vimwiki_ext2syntax, ext)
let syn = g:vimwiki_ext2syntax[ext]
else
let syn = s:vimwiki_defaults.syntax
endif
let syn = get(vimwiki#vars#get_global('ext2syntax'), ext, s:vimwiki_defaults.syntax)
call add(g:vimwiki_list, {'path': path, 'ext': ext, 'syntax': syn, 'temp': 1})
let idx = len(g:vimwiki_list) - 1
call Validate_wiki_options(idx)
@ -156,15 +148,16 @@ function! s:setup_buffer_enter() "{{{
" Settings foldmethod, foldexpr and foldtext are local to window. Thus in a
" new tab with the same buffer folding is reset to vim defaults. So we
" insist vimwiki folding here.
if g:vimwiki_folding ==? 'expr'
let foldmethod = vimwiki#vars#get_global('folding')
if foldmethod ==? 'expr'
setlocal fdm=expr
setlocal foldexpr=VimwikiFoldLevel(v:lnum)
setlocal foldtext=VimwikiFoldText()
elseif g:vimwiki_folding ==? 'list' || g:vimwiki_folding ==? 'lists'
elseif foldmethod ==? 'list' || foldmethod ==? 'lists'
setlocal fdm=expr
setlocal foldexpr=VimwikiFoldListLevel(v:lnum)
setlocal foldtext=VimwikiFoldText()
elseif g:vimwiki_folding ==? 'syntax'
elseif foldmethod ==? 'syntax'
setlocal fdm=syntax
setlocal foldtext=VimwikiFoldText()
else
@ -173,8 +166,8 @@ function! s:setup_buffer_enter() "{{{
endif
" And conceal level too.
if g:vimwiki_conceallevel && exists("+conceallevel")
let &conceallevel = g:vimwiki_conceallevel
if vimwiki#vars#get_global('conceallevel') && exists("+conceallevel")
let &conceallevel = vimwiki#vars#get_global('conceallevel')
endif
" Set up menu
@ -191,7 +184,7 @@ function! s:setup_buffer_reenter() "{{{
if !exists("s:vimwiki_autowriteall")
let s:vimwiki_autowriteall = &autowriteall
endif
let &autowriteall = g:vimwiki_autowriteall
let &autowriteall = vimwiki#vars#get_global('autowriteall')
endfunction "}}}
function! s:setup_cleared_syntax() "{{{ highlight groups that get cleared
@ -200,7 +193,7 @@ function! s:setup_cleared_syntax() "{{{ highlight groups that get cleared
hi def VimwikiItalic term=italic cterm=italic gui=italic
hi def VimwikiBoldItalic term=bold cterm=bold gui=bold,italic
hi def VimwikiUnderline gui=underline
if g:vimwiki_hl_headers == 1
if vimwiki#vars#get_global('hl_headers') == 1
for i in range(1,6)
execute 'hi def VimwikiHeader'.i.' guibg=bg guifg='.g:vimwiki_hcolor_guifg_{&bg}[i-1].' gui=bold ctermfg='.g:vimwiki_hcolor_ctermfg_{&bg}[i-1].' term=bold cterm=bold'
endfor
@ -288,8 +281,8 @@ function! s:vimwiki_get_known_extensions() " {{{
let extensions['.wiki'] = 1
endif
endfor
" append map g:vimwiki_ext2syntax
for ext in keys(g:vimwiki_ext2syntax)
" append extensions from g:vimwiki_ext2syntax
for ext in keys(vimwiki#vars#get_global('ext2syntax'))
let extensions[ext] = 1
endfor
return keys(extensions)
@ -297,6 +290,12 @@ endfunction " }}}
" }}}
" Initialization of Vimwiki starts here. Make sure everything below does not
" cause autoload/base to be loaded
call vimwiki#vars#init()
" CALLBACK functions "{{{
" User can redefine it.
if !exists("*VimwikiLinkHandler") "{{{
@ -362,44 +361,23 @@ let s:vimwiki_defaults.auto_tags = 0
" DEFAULT options {{{
call s:default('list', [s:vimwiki_defaults])
call s:default('use_mouse', 0)
call s:default('folding', '')
call s:default('menu', 'Vimwiki')
call s:default('global_ext', 1)
call s:default('ext2syntax', {}) " syntax map keyed on extension
call s:default('hl_headers', 0)
call s:default('hl_cb_checked', 0)
call s:default('list_ignore_newline', 1)
call s:default('listsyms', ' .oOX')
call s:default('use_calendar', 1)
call s:default('table_mappings', 1)
call s:default('table_auto_fmt', 1)
call s:default('w32_dir_enc', '')
call s:default('CJK_length', 0)
call s:default('dir_link', '')
call s:default('valid_html_tags', 'b,i,s,u,sub,sup,kbd,br,hr,div,center,strong,em')
call s:default('user_htmls', '')
call s:default('autowriteall', 1)
call s:default('toc_header', 'Contents')
call s:default('html_header_numbering', 0)
call s:default('html_header_numbering_sym', '')
call s:default('conceallevel', 2)
call s:default('url_maxsave', 15)
call s:default('diary_months',
\ {
\ 1: 'January', 2: 'February', 3: 'March',
\ 4: 'April', 5: 'May', 6: 'June',
\ 7: 'July', 8: 'August', 9: 'September',
\ 10: 'October', 11: 'November', 12: 'December'
\ })
call s:default('map_prefix', '<Leader>w')
call s:default('current_idx', 0)
call s:default('auto_chdir', 0)
" Scheme regexes should be defined even if syntax file is not loaded yet
" cause users should be able to <leader>w<leader>w without opening any
" vimwiki file first
@ -540,7 +518,7 @@ function! s:build_table_menu(topmenu)
exe 'nmenu disable '.a:topmenu.'.Table'
endfunction
"XXX make sure anything below does not cause autoload/base to be loaded
if !empty(g:vimwiki_menu)
call s:build_menu(g:vimwiki_menu)
call s:build_table_menu(g:vimwiki_menu)

View File

@ -412,10 +412,10 @@ execute 'syntax match VimwikiList /'.g:vimwiki_rxListItemWithoutCB.'/'
execute 'syntax match VimwikiList /'.g:vimwiki_rxListDefine.'/'
execute 'syntax match VimwikiListTodo /'.g:vimwiki_rxListItem.'/'
if g:vimwiki_hl_cb_checked == 1
if vimwiki#vars#get_global('hl_cb_checked') == 1
execute 'syntax match VimwikiCheckBoxDone /'.g:vimwiki_rxListItemWithoutCB.'\s*\['.g:vimwiki_listsyms_list[4].'\]\s.*$/ '.
\ 'contains=VimwikiNoExistsLink,VimwikiLink,@Spell'
elseif g:vimwiki_hl_cb_checked == 2
elseif vimwiki#vars#get_global('hl_cb_checked') == 2
execute 'syntax match VimwikiCheckBoxDone /'.g:vimwiki_rxListItemAndChildren.'/ contains=VimwikiNoExistsLink,VimwikiLink,@Spell'
endif
@ -481,7 +481,7 @@ execute 'syntax match VimwikiTag /'.g:vimwiki_rxTags.'/'
" header groups highlighting "{{{
if g:vimwiki_hl_headers == 0
if vimwiki#vars#get_global('hl_headers') == 0
" Strangely in default colorscheme Title group is not set to bold for cterm...
if !exists("g:colors_name")
hi Title cterm=bold