vimwiki

Personal wiki for vim
git clone https://github.com/vimwiki/vimwiki.git
Log | Files | Refs | README | LICENSE

commit e6d997867a20f676084b4a4bc2a023d8f4e8357c
parent 6b34e954e8fd669e302e7ad5d679b8448dc128f1
Author: EinfachToll <istjanichtzufassen@googlemail.com>
Date:   Wed, 21 Dec 2016 19:43:34 +0100

Use new access functions for global variables -- part 1

Ref #256

Diffstat:
Mautoload/vimwiki/base.vim | 19++++++++++---------
Mautoload/vimwiki/diary.vim | 2+-
Mautoload/vimwiki/html.vim | 6+++---
Mautoload/vimwiki/tbl.vim | 2+-
Mftplugin/vimwiki.vim | 4++--
Mplugin/vimwiki.vim | 64+++++++++++++++++++++-------------------------------------------
Msyntax/vimwiki.vim | 6+++---
7 files changed, 41 insertions(+), 62 deletions(-)

diff --git a/autoload/vimwiki/base.vim b/autoload/vimwiki/base.vim @@ -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 diff --git a/autoload/vimwiki/diary.vim b/autoload/vimwiki/diary.vim @@ -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 }}} diff --git a/autoload/vimwiki/html.vim b/autoload/vimwiki/html.vim @@ -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 diff --git a/autoload/vimwiki/tbl.vim b/autoload/vimwiki/tbl.vim @@ -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 diff --git a/ftplugin/vimwiki.vim b/ftplugin/vimwiki.vim @@ -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 {{{ diff --git a/plugin/vimwiki.vim b/plugin/vimwiki.vim @@ -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) diff --git a/syntax/vimwiki.vim b/syntax/vimwiki.vim @@ -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