Merge remote-tracking branch 'vimwiki/dev' into 'vimwiki/tags'

Conflicts:
	doc/vimwiki.txt
	ftplugin/vimwiki.vim
This commit is contained in:
Ivan Tishchenko 2015-02-12 22:20:16 +03:00
commit 7bc2fcb3a7
15 changed files with 254 additions and 233 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
*.sw*
doc/tags
.netrwhist

View File

@ -8,26 +8,8 @@ if exists("g:loaded_vimwiki_auto") || &cp
endif
let g:loaded_vimwiki_auto = 1
" MISC helper functions {{{
function! vimwiki#base#get_known_extensions() " {{{
" Getting all extensions that different wikis could have
let extensions = {}
for wiki in g:vimwiki_list
if has_key(wiki, 'ext')
let extensions[wiki.ext] = 1
else
let extensions['.wiki'] = 1
endif
endfor
" append map g:vimwiki_ext2syntax
for ext in keys(g:vimwiki_ext2syntax)
let extensions[ext] = 1
endfor
return keys(extensions)
endfunction " }}}
function! vimwiki#base#get_known_syntaxes() " {{{
" s:vimwiki_get_known_syntaxes
function! s:vimwiki_get_known_syntaxes() " {{{
" Getting all syntaxes that different wikis could have
let syntaxes = {}
let syntaxes['default'] = 1
@ -42,7 +24,6 @@ function! vimwiki#base#get_known_syntaxes() " {{{
endfor
return keys(syntaxes)
endfunction " }}}
" }}}
" vimwiki#base#apply_wiki_options
function! vimwiki#base#apply_wiki_options(options) " {{{ Update the current
@ -90,7 +71,7 @@ function! vimwiki#base#read_wiki_options(check) " {{{ Attempt to read wiki
"
echo "\nFound file : ".local_wiki_options_filename
let query = "Vimwiki: Check for options in this file [Y]es/[n]o? "
if a:check > 0 && (tolower(input(query)) !~ "y")
if a:check > 0 && input(query) =~? '^n')
continue
endif
"
@ -105,7 +86,7 @@ function! vimwiki#base#read_wiki_options(check) " {{{ Attempt to read wiki
if a:check > 0
echo "\n\nFound wiki options\n g:local_wiki = ".string(g:local_wiki)
let query = "Vimwiki: Apply these options [Y]es/[n]o? "
if tolower(input(query)) !~ "y"
if input(query) =~? '^n'
let g:local_wiki = {}
continue
endif
@ -149,7 +130,10 @@ function! vimwiki#base#setup_buffer_state(idx) " {{{ Init page-specific variable
let subdir = vimwiki#base#current_subdir(a:idx)
call VimwikiSet('subdir', subdir, a:idx)
call VimwikiSet('invsubdir', vimwiki#base#invsubdir(subdir), a:idx)
call VimwikiSet('url', vimwiki#html#get_wikifile_url(expand('%:p')), a:idx)
if g:vimwiki_auto_chdir == 1
exe 'lcd' VimwikiGet('path')
endif
" update cache
call vimwiki#base#cache_buffer_state()
@ -246,7 +230,7 @@ function! vimwiki#base#resolve_scheme(lnk, as_html, ...) " {{{ Resolve scheme
let lnk = a:lnk
" if link is schemeless add wikiN: scheme
let is_schemeless = lnk !~ g:vimwiki_rxSchemeUrl
let is_schemeless = lnk !~# g:vimwiki_rxSchemeUrl
let lnk = (is_schemeless ? 'wiki'.g:vimwiki_current_idx.':'.lnk : lnk)
" Get scheme
@ -260,7 +244,7 @@ function! vimwiki#base#resolve_scheme(lnk, as_html, ...) " {{{ Resolve scheme
let anchor = ''
"extract anchor
if scheme =~ 'wiki' || scheme =~ 'diary'
if scheme =~# 'wiki' || scheme =~# 'diary'
let split_lnk = split(lnk, '#', 1)
let lnk = split_lnk[0]
if len(split_lnk) <= 1 || split_lnk[-1] == ''
@ -271,13 +255,13 @@ function! vimwiki#base#resolve_scheme(lnk, as_html, ...) " {{{ Resolve scheme
endif
" do nothing if scheme is unknown to vimwiki
if !(scheme =~ 'wiki.*' || scheme =~ 'diary' || scheme =~ 'local'
\ || scheme =~ 'file')
if !(scheme =~# 'wiki.*' || scheme =~# 'diary' || scheme =~# 'local'
\ || scheme =~# 'file')
return [idx, scheme, path, subdir, lnk, ext, scheme.':'.lnk, anchor]
endif
" scheme behaviors
if scheme =~ 'wiki\d\+'
if scheme =~# 'wiki\d\+'
let idx = eval(matchstr(scheme, '\D\+\zs\d\+\ze'))
if idx < 0 || idx >= len(g:vimwiki_list)
if !quiet
@ -319,9 +303,9 @@ function! vimwiki#base#resolve_scheme(lnk, as_html, ...) " {{{ Resolve scheme
" default link for directories
if vimwiki#path#is_link_to_dir(lnk)
let ext = (g:vimwiki_dir_link != '' ? g:vimwiki_dir_link. ext : '')
let ext = (g:vimwiki_dir_link != '' ? g:vimwiki_dir_link . ext : '')
endif
elseif scheme =~ 'diary'
elseif scheme =~# 'diary'
if a:as_html
" use cached value (save time when converting diary index!)
let path = VimwikiGet('invsubdir')
@ -332,7 +316,7 @@ function! vimwiki#base#resolve_scheme(lnk, as_html, ...) " {{{ Resolve scheme
endif
let idx = g:vimwiki_current_idx
let subdir = VimwikiGet('diary_rel_path')
elseif scheme =~ 'local'
elseif scheme =~# 'local'
" revisiting the 'lcd'-bug ...
let path = VimwikiGet('path')
let subdir = VimwikiGet('subdir')
@ -340,7 +324,7 @@ function! vimwiki#base#resolve_scheme(lnk, as_html, ...) " {{{ Resolve scheme
" prepend browser-specific file: scheme
let path = 'file://'.fnamemodify(path, ":p")
endif
elseif scheme =~ 'file'
elseif scheme =~# 'file'
" RM repeated leading "/"'s within a link
let lnk = substitute(lnk, '^/*', '/', '')
" convert "/~..." into "~..." for fnamemodify
@ -438,21 +422,21 @@ function! vimwiki#base#open_link(cmd, link, ...) "{{{
return
endif
let update_prev_link = ( (scheme == '' || scheme =~ 'wiki' || scheme =~ 'diary')
\ && lnk != expand('%:t:r')
let update_prev_link = ( (scheme == '' || scheme =~# 'wiki' || scheme =~# 'diary')
\ && !vimwiki#path#is_equal(lnk, expand('%:t:r'))
\ ? 1 : 0)
let use_system_open = (
\ scheme == '' ||
\ scheme =~ 'wiki' ||
\ scheme =~ 'diary' ? 0 : 1)
\ scheme =~# 'wiki' ||
\ scheme =~# 'diary' ? 0 : 1)
let vimwiki_prev_link = []
" update previous link for wiki pages
if update_prev_link
if a:0
let vimwiki_prev_link = [a:1, []]
elseif &ft == 'vimwiki'
elseif &ft ==# 'vimwiki'
let vimwiki_prev_link = [expand('%:p'), getpos('.')]
endif
endif
@ -535,7 +519,8 @@ function! vimwiki#base#backlinks() "{{{
let links = s:get_links(source_file, idx)
for [target_file, _, lnum, col] in links
" don't include links from the current file to itself
if target_file == current_filename && target_file != source_file
if vimwiki#path#is_equal(target_file, current_filename) &&
\ !vimwiki#path#is_equal(target_file, source_file)
call add(locations, {'filename':source_file, 'lnum':lnum, 'col':col})
endif
endfor
@ -652,7 +637,7 @@ function! vimwiki#base#get_anchors(filename, syntax) "{{{
endif
" collect bold text (there can be several in one line)
let bold_count = 0
let bold_count = 1
while 1
let bold_text = matchstr(line, rxbold, 0, bold_count)
if bold_text == ''
@ -722,27 +707,27 @@ function! s:link_target(source_file, wiki_nr, link_text) "{{{
\ vimwiki#base#resolve_scheme(a:link_text, 0, 1)
let source_dir = fnamemodify(a:source_file, ':p:h').'/'
if lnk =~ '/$' " link to a directory
if lnk =~# '/$' " link to a directory
return []
elseif url == '' && anchor != '' " only anchor
return [fnamemodify(a:source_file, ':p'), anchor]
elseif scheme == 'file'
elseif scheme ==# 'file'
return [url, '']
elseif scheme == 'local'
elseif scheme ==# 'local'
return [vimwiki#path#normalize(source_dir.lnk), '']
elseif target_idx >= len(g:vimwiki_list) " a malformed link
return ['', '']
elseif scheme !~ '^wiki\d\+\|diary' " unknown scheme
elseif scheme !~# '^wiki\d\+\|diary' " unknown scheme
return []
endif
if scheme == 'diary'
if scheme ==# 'diary'
let root_dir = VimwikiGet('path',a:wiki_nr).
\ VimwikiGet('diary_rel_path', a:wiki_nr)
let ext = VimwikiGet('ext', a:wiki_nr)
else
" a schemeless link is like a link to the current wiki
if a:link_text !~ '^wiki\d\+:'
if a:link_text !~# '^wiki\d\+:'
let target_idx = a:wiki_nr
endif
@ -895,7 +880,7 @@ function! vimwiki#base#edit_file(command, filename, anchor, ...) "{{{
" which happens if we jump to an achor in the current file.
" This hack is necessary because apparently Vim messes up the result of
" getpos() directly after this command. Strange.
if !(a:command == ':e ' && a:filename == expand('%:p'))
if !(a:command ==# ':e ' && vimwiki#path#is_equal(a:filename, expand('%:p')))
execute a:command.' '.fname
endif
if a:anchor != ''
@ -1064,7 +1049,7 @@ function! s:get_wiki_buffers() "{{{
while bcount<=bufnr("$")
if bufexists(bcount)
let bname = fnamemodify(bufname(bcount), ":p")
if bname =~ VimwikiGet('ext')."$"
if bname =~# VimwikiGet('ext')."$"
let bitem = [bname, getbufvar(bname, "vimwiki_prev_link")]
call add(blist, bitem)
endif
@ -1126,7 +1111,7 @@ function! vimwiki#base#nested_syntax(filetype, start, end, textSnipHl) abort "{{
" Here perlFunctionName (with quite an angry regexp "\h\w*[^:]") clashes with
" the rest syntax rules as now it has effect being really 'contained'.
" Clear it!
if ft =~ 'perl'
if ft =~? 'perl'
syntax clear perlFunctionName
endif
endfunction "}}}
@ -1140,8 +1125,8 @@ endfunction " }}}
" vimwiki#base#find_prev_link
function! vimwiki#base#find_prev_link() "{{{
"Jump 2 times if the cursor is in the middle of a link
if synIDattr(synID(line('.'), col('.'), 0), "name") =~ "VimwikiLink.*" &&
\ synIDattr(synID(line('.'), col('.')-1, 0), "name") =~ "VimwikiLink.*"
if synIDattr(synID(line('.'), col('.'), 0), "name") =~# "VimwikiLink.*" &&
\ synIDattr(synID(line('.'), col('.')-1, 0), "name") =~# "VimwikiLink.*"
call vimwiki#base#search_word(g:vimwiki_rxAnyLink, 'b')
endif
call vimwiki#base#search_word(g:vimwiki_rxAnyLink, 'b')
@ -1161,11 +1146,11 @@ function! vimwiki#base#follow_link(split, ...) "{{{ Parse link at cursor and pas
call vimwiki#{VimwikiGet('syntax')}_base#follow_link(a:split)
endif
else
if a:split == "split"
if a:split ==# "split"
let cmd = ":split "
elseif a:split == "vsplit"
elseif a:split ==# "vsplit"
let cmd = ":vsplit "
elseif a:split == "tabnew"
elseif a:split ==# "tabnew"
let cmd = ":tabnew "
else
let cmd = ":e "
@ -1247,8 +1232,8 @@ endfunction "}}}
function! vimwiki#base#delete_link() "{{{
"" file system funcs
"" Delete wiki link you are in from filesystem
let val = input('Delete ['.expand('%').'] (y/n)? ', "")
if val != 'y'
let val = input('Delete "'.expand('%').'" [y]es/[N]o? ')
if val !~? '^y'
return
endif
let fname = expand('%:p')
@ -1281,14 +1266,14 @@ function! vimwiki#base#rename_link() "{{{
return
endif
let val = input('Rename "'.expand('%:t:r').'" (y/n)? ', "")
if val!='y'
let val = input('Rename "'.expand('%:t:r').'" [y]es/[N]o? ')
if val !~? '^y'
return
endif
let new_link = input('Enter new name: ', "")
let new_link = input('Enter new name: ')
if new_link =~ '[/\\]'
if new_link =~# '[/\\]'
" It is actually doable but I do not have free time to do it.
echomsg 'vimwiki: Cannot rename to a filename with path!'
return
@ -1355,7 +1340,7 @@ function! vimwiki#base#rename_link() "{{{
" restore wiki buffers
for bitem in blist
if bitem[0] != cur_buffer[0]
if !vimwiki#path#is_equal(bitem[0], cur_buffer[0])
call s:open_wiki_buffer(bitem)
endif
endfor
@ -1419,7 +1404,7 @@ function! vimwiki#base#TO_header(inner, visual) "{{{
call cursor(line('$'), 0)
endif
if a:inner && getline(line('.')) =~ '^\s*$'
if a:inner && getline(line('.')) =~# '^\s*$'
let lnum = prevnonblank(line('.') - 1)
call cursor(lnum, 0)
endif
@ -1515,7 +1500,7 @@ function! vimwiki#base#TO_table_col(inner, visual) "{{{
" | bla | bla |
" |-------+-------|
" or it will select wrong column.
if strpart(getline('.'), virtcol('.')-1) =~ '^-+'
if strpart(getline('.'), virtcol('.')-1) =~# '^-+'
let s_flag = 'b'
else
let s_flag = 'cb'
@ -1538,7 +1523,7 @@ function! vimwiki#base#TO_table_col(inner, visual) "{{{
normal! `>
if !firsttime && getline('.')[virtcol('.')] == '|'
normal! l
elseif a:inner && getline('.')[virtcol('.')+1] =~ '[|+]'
elseif a:inner && getline('.')[virtcol('.')+1] =~# '[|+]'
normal! 2l
endif
" search for the next column separator
@ -1569,7 +1554,7 @@ function! vimwiki#base#TO_table_col(inner, visual) "{{{
" | bla | bla |
" |-------+-------|
" or it will select wrong column.
if strpart(getline('.'), virtcol('.')-1) =~ '^-+'
if strpart(getline('.'), virtcol('.')-1) =~# '^-+'
let s_flag = 'b'
else
let s_flag = 'cb'
@ -1612,11 +1597,11 @@ function! vimwiki#base#AddHeaderLevel() "{{{
let lnum = line('.')
let line = getline(lnum)
let rxHdr = g:vimwiki_rxH
if line =~ '^\s*$'
if line =~# '^\s*$'
return
endif
if line =~ g:vimwiki_rxHeader
if line =~# g:vimwiki_rxHeader
let level = vimwiki#u#count_first_sym(line)
if level < 6
if g:vimwiki_symH
@ -1640,16 +1625,16 @@ function! vimwiki#base#RemoveHeaderLevel() "{{{
let lnum = line('.')
let line = getline(lnum)
let rxHdr = g:vimwiki_rxH
if line =~ '^\s*$'
if line =~# '^\s*$'
return
endif
if line =~ g:vimwiki_rxHeader
if line =~# g:vimwiki_rxHeader
let level = vimwiki#u#count_first_sym(line)
let old = repeat(rxHdr, level)
let new = repeat(rxHdr, level - 1)
let chomp = line =~ rxHdr.'\s'
let chomp = line =~# rxHdr.'\s'
if g:vimwiki_symH
let line = substitute(line, old, new, 'g')
@ -1701,7 +1686,7 @@ function! vimwiki#base#table_of_contents(create)
" delete old TOC
if toc_line > 0
let endoftoc = toc_line+1
while endoftoc <= line('$') && getline(endoftoc) =~ '^\s*'.rx_bullet.g:vimwiki_rxWikiLink.'\s*$'
while endoftoc <= line('$') && getline(endoftoc) =~# '^\s*'.rx_bullet.g:vimwiki_rxWikiLink.'\s*$'
let endoftoc += 1
endwhile
silent exe toc_line.','.string(endoftoc-1).'delete _'
@ -1714,7 +1699,7 @@ function! vimwiki#base#table_of_contents(create)
let headers_levels = [['', 0], ['', 0], ['', 0], ['', 0], ['', 0], ['', 0]]
for lnum in range(1, line('$'))
let line_content = getline(lnum)
if line_content !~ g:vimwiki_rxHeader
if line_content !~# g:vimwiki_rxHeader
continue
endif
let h_level = vimwiki#u#count_first_sym(line_content)
@ -1756,7 +1741,7 @@ function! vimwiki#base#table_of_contents(create)
call append(toc_line, startindent.repeat(indentstring, lvl-1).bullet.link)
let toc_line += 1
endfor
if getline(toc_line+1) !~ '^\s*$'
if getline(toc_line+1) !~# '^\s*$'
call append(toc_line, '')
endif
call setpos('.', old_cursor_pos)
@ -1787,16 +1772,16 @@ endfunction " }}}
" s:clean_url
function! s:clean_url(url) " {{{
let url = split(a:url, '/\|=\|-\|&\|?\|\.')
let url = filter(url, 'v:val != ""')
let url = filter(url, 'v:val != "www"')
let url = filter(url, 'v:val != "com"')
let url = filter(url, 'v:val != "org"')
let url = filter(url, 'v:val != "net"')
let url = filter(url, 'v:val != "edu"')
let url = filter(url, 'v:val != "http\:"')
let url = filter(url, 'v:val != "https\:"')
let url = filter(url, 'v:val != "file\:"')
let url = filter(url, 'v:val != "xml\:"')
let url = filter(url, 'v:val !=# ""')
let url = filter(url, 'v:val !=# "www"')
let url = filter(url, 'v:val !=# "com"')
let url = filter(url, 'v:val !=# "org"')
let url = filter(url, 'v:val !=# "net"')
let url = filter(url, 'v:val !=# "edu"')
let url = filter(url, 'v:val !=# "http\:"')
let url = filter(url, 'v:val !=# "https\:"')
let url = filter(url, 'v:val !=# "file\:"')
let url = filter(url, 'v:val !=# "xml\:"')
return join(url, " ")
endfunction " }}}
@ -2236,7 +2221,7 @@ endfunction " }}}
" -------------------------------------------------------------------------
" Load syntax-specific Wiki functionality
for s:syn in vimwiki#base#get_known_syntaxes()
for s:syn in s:vimwiki_get_known_syntaxes()
execute 'runtime! autoload/vimwiki/'.s:syn.'_base.vim'
endfor
" -------------------------------------------------------------------------

View File

@ -25,17 +25,6 @@ function! s:get_date_link(fmt) "{{{
return strftime(a:fmt)
endfunction "}}}
function! s:link_exists(lines, link) "{{{
let link_exists = 0
for line in a:lines
if line =~ escape(a:link, '[]\')
let link_exists = 1
break
endif
endfor
return link_exists
endfunction "}}}
function! s:diary_path(...) "{{{
let idx = a:0 == 0 ? g:vimwiki_current_idx : a:1
return VimwikiGet('path', idx).VimwikiGet('diary_rel_path', idx)
@ -54,7 +43,7 @@ endfunction "}}}
function! s:get_position_links(link) "{{{
let idx = -1
let links = []
if a:link =~ '^\d\{4}-\d\d-\d\d'
if a:link =~# '^\d\{4}-\d\d-\d\d'
let links = keys(s:get_diary_links())
" include 'today' into links
if index(links, s:diary_date_link()) == -1
@ -81,7 +70,7 @@ fun! s:read_captions(files) "{{{
if filereadable(fl)
for line in readfile(fl, '', s:vimwiki_max_scan_for_caption)
if line =~ g:vimwiki_rxHeader && !has_key(result, fl_key)
if line =~# g:vimwiki_rxHeader && !has_key(result, fl_key)
let result[fl_key] = vimwiki#u#trim(matchstr(line, g:vimwiki_rxHeader))
endif
endfor
@ -99,10 +88,10 @@ fun! s:get_diary_links(...) "{{{
let rx = '^\d\{4}-\d\d-\d\d'
let s_files = glob(VimwikiGet('path').VimwikiGet('diary_rel_path').'*'.VimwikiGet('ext'))
let files = split(s_files, '\n')
call filter(files, 'fnamemodify(v:val, ":t") =~ "'.escape(rx, '\').'"')
call filter(files, 'fnamemodify(v:val, ":t") =~# "'.escape(rx, '\').'"')
" remove backup files (.wiki~)
call filter(files, 'v:val !~ ''.*\~$''')
call filter(files, 'v:val !~# ''.*\~$''')
if a:0
call add(files, a:1)
@ -134,7 +123,7 @@ fun! s:group_links(links) "{{{
endfun "}}}
fun! s:sort(lst) "{{{
if VimwikiGet("diary_sort") == 'desc'
if VimwikiGet("diary_sort") ==? 'desc'
return reverse(sort(a:lst))
else
return sort(a:lst)
@ -311,7 +300,7 @@ endfunction "}}}
function! vimwiki#diary#generate_diary_section() "{{{
let current_file = vimwiki#path#path_norm(expand("%:p"))
let diary_file = vimwiki#path#path_norm(s:diary_index())
if current_file == diary_file
if vimwiki#path#is_equal(current_file, diary_file)
call s:delete_diary_section()
call s:insert_diary_section()
else
@ -327,7 +316,7 @@ function! vimwiki#diary#calendar_action(day, month, year, week, dir) "{{{
let link = a:year.'-'.month.'-'.day
if winnr('#') == 0
if a:dir == 'V'
if a:dir ==? 'V'
vsplit
else
split

View File

@ -27,31 +27,31 @@ function! s:root_path(subdir) "{{{
endfunction "}}}
function! s:syntax_supported() " {{{
return VimwikiGet('syntax') == "default"
return VimwikiGet('syntax') ==? "default"
endfunction " }}}
function! s:remove_blank_lines(lines) " {{{
while !empty(a:lines) && a:lines[-1] =~ '^\s*$'
while !empty(a:lines) && a:lines[-1] =~# '^\s*$'
call remove(a:lines, -1)
endwhile
endfunction "}}}
function! s:is_web_link(lnk) "{{{
if a:lnk =~ '^\%(https://\|http://\|www.\|ftp://\|file://\|mailto:\)'
if a:lnk =~# '^\%(https://\|http://\|www.\|ftp://\|file://\|mailto:\)'
return 1
endif
return 0
endfunction "}}}
function! s:is_img_link(lnk) "{{{
if tolower(a:lnk) =~ '\.\%(png\|jpg\|gif\|jpeg\)$'
if tolower(a:lnk) =~# '\.\%(png\|jpg\|gif\|jpeg\)$'
return 1
endif
return 0
endfunction "}}}
function! s:has_abs_path(fname) "{{{
if a:fname =~ '\(^.:\)\|\(^/\)'
if a:fname =~# '\(^.:\)\|\(^/\)'
return 1
endif
return 0
@ -103,7 +103,7 @@ function! s:template_full_name(name) "{{{
endif
endfunction "}}}
function! s:get_html_template(wikifile, template) "{{{
function! s:get_html_template(template) "{{{
" TODO: refactor it!!!
let lines=[]
@ -204,7 +204,7 @@ function! s:subst_func(line, regexp, func, ...) " {{{
endfunction " }}}
function! s:save_vimwiki_buffer() "{{{
if &filetype == 'vimwiki' && filewritable(expand('%'))
if &filetype ==? 'vimwiki' && filewritable(expand('%'))
silent update
endif
endfunction "}}}
@ -214,7 +214,7 @@ function! s:process_title(placeholders, default_title) "{{{
if !empty(a:placeholders)
for [placeholder, row, idx] in a:placeholders
let [type, param] = placeholder
if type == 'title' && !empty(param)
if type ==# 'title' && !empty(param)
return param
endif
endfor
@ -243,7 +243,7 @@ endfunction "}}}
function! s:html_insert_contents(html_lines, content) "{{{
let lines = []
for line in a:html_lines
if line =~ '%content%'
if line =~# '%content%'
let parts = split(line, '%content%', 1)
if empty(parts)
call extend(lines, a:content)
@ -338,7 +338,7 @@ function! vimwiki#html#linkify_link(src, descr) "{{{
let src_str = ' href="'.s:safe_html_anchor(a:src).'"'
let descr = substitute(a:descr,'^\s*\(.*\)\s*$','\1','')
let descr = (descr == "" ? a:src : descr)
let descr_str = (descr =~ g:vimwiki_rxWikiIncl
let descr_str = (descr =~# g:vimwiki_rxWikiIncl
\ ? s:tag_wikiincl(descr)
\ : descr)
return '<a'.src_str.'>'.descr_str.'</a>'
@ -430,7 +430,7 @@ function! s:tag_remove_internal_link(value) "{{{
let value = s:mid(a:value, 2)
let line = ''
if value =~ '|'
if value =~# '|'
let link_parts = split(value, "|", 1)
else
let link_parts = split(value, "][", 1)
@ -457,8 +457,8 @@ function! s:tag_remove_external_link(value) "{{{
let lnkElements = split(value)
let head = lnkElements[0]
let rest = join(lnkElements[1:])
if rest==""
let rest=head
if rest == ""
let rest = head
endif
let line = rest
elseif s:is_img_link(value)
@ -484,7 +484,8 @@ function! s:make_tag(line, regexp, func, ...) "{{{
"FIXME FIXME !!! these can easily occur on the same line!
"XXX {{{ }}} ??? obsolete
if '`[^`]\+`' == a:regexp || '{{{.\+}}}' == a:regexp || g:vimwiki_rxEqIn == a:regexp
if '`[^`]\+`' ==# a:regexp || '{{{.\+}}}' ==# a:regexp ||
\ g:vimwiki_rxEqIn ==# a:regexp
let res_line = s:subst_func(a:line, a:regexp, a:func)
else
let pos = 0
@ -675,7 +676,7 @@ function! s:close_tag_table(table, ldest, header_ids) "{{{
call s:sum_rowspan(table)
call s:sum_colspan(table)
if table[0] == 'center'
if table[0] ==# 'center'
call add(ldest, "<table class='center'>")
else
call add(ldest, "<table>")
@ -734,8 +735,8 @@ function! s:process_tag_pre(line, pre) "{{{
let pre = a:pre
let processed = 0
"XXX huh?
"if !pre[0] && a:line =~ '^\s*{{{[^\(}}}\)]*\s*$'
if !pre[0] && a:line =~ '^\s*{{{'
"if !pre[0] && a:line =~# '^\s*{{{[^\(}}}\)]*\s*$'
if !pre[0] && a:line =~# '^\s*{{{'
let class = matchstr(a:line, '{{{\zs.*$')
"FIXME class cannot contain arbitrary strings
let class = substitute(class, '\s\+$', '', 'g')
@ -746,7 +747,7 @@ function! s:process_tag_pre(line, pre) "{{{
endif
let pre = [1, len(matchstr(a:line, '^\s*\ze{{{'))]
let processed = 1
elseif pre[0] && a:line =~ '^\s*}}}\s*$'
elseif pre[0] && a:line =~# '^\s*}}}\s*$'
let pre = [0, 0]
call add(lines, "</pre>")
let processed = 1
@ -764,13 +765,14 @@ function! s:process_tag_math(line, math) "{{{
let lines = []
let math = a:math
let processed = 0
if !math[0] && a:line =~ '^\s*{{\$[^\(}}$\)]*\s*$'
if !math[0] && a:line =~# '^\s*{{\$[^\(}}$\)]*\s*$'
let class = matchstr(a:line, '{{$\zs.*$')
"FIXME class cannot be any string!
let class = substitute(class, '\s\+$', '', 'g')
" Check the math placeholder (default: displaymath)
let b:vimwiki_mathEnv = matchstr(class, '^%\zs\S\+\ze%')
if b:vimwiki_mathEnv != ""
" store the environment name in a global variable in order to close the
" environment properly
let s:current_math_env = matchstr(class, '^%\zs\S\+\ze%')
if s:current_math_env != ""
call add(lines, substitute(class, '^%\(\S\+\)%','\\begin{\1}', ''))
elseif class != ""
call add(lines, "\\\[".class)
@ -779,10 +781,10 @@ function! s:process_tag_math(line, math) "{{{
endif
let math = [1, len(matchstr(a:line, '^\s*\ze{{\$'))]
let processed = 1
elseif math[0] && a:line =~ '^\s*}}\$\s*$'
elseif math[0] && a:line =~# '^\s*}}\$\s*$'
let math = [0, 0]
if b:vimwiki_mathEnv != ""
call add(lines, "\\end{".b:vimwiki_mathEnv."}")
if s:current_math_env != ""
call add(lines, "\\end{".s:current_math_env."}")
else
call add(lines, "\\\]")
endif
@ -798,7 +800,7 @@ function! s:process_tag_quote(line, quote) "{{{
let lines = []
let quote = a:quote
let processed = 0
if a:line =~ '^\s\{4,}\S'
if a:line =~# '^\s\{4,}\S'
if !quote
call add(lines, "<blockquote>")
let quote = 1
@ -841,12 +843,12 @@ function! s:process_tag_list(line, lists) "{{{
let lines = []
let processed = 0
if a:line =~ '^\s*'.s:bullets.'\s'
if a:line =~# '^\s*'.s:bullets.'\s'
let lstSym = matchstr(a:line, s:bullets)
let lstTagOpen = '<ul>'
let lstTagClose = '</ul>'
let lstRegExp = '^\s*'.s:bullets.'\s'
elseif a:line =~ '^\s*'.s:numbers.'\s'
elseif a:line =~# '^\s*'.s:numbers.'\s'
let lstSym = matchstr(a:line, s:numbers)
let lstTagOpen = '<ol>'
let lstTagClose = '</ol>'
@ -891,7 +893,7 @@ function! s:process_tag_list(line, lists) "{{{
call add(lines,
\ substitute(a:line, lstRegExp.'\%('.checkbox.'\)\?', '', ''))
let processed = 1
elseif in_list && a:line =~ '^\s\+\S\+'
elseif in_list && a:line =~# '^\s\+\S\+'
if g:vimwiki_list_ignore_newline
call add(lines, a:line)
else
@ -932,14 +934,14 @@ function! s:process_tag_para(line, para) "{{{
let lines = []
let para = a:para
let processed = 0
if a:line =~ '^\s\{,3}\S'
if a:line =~# '^\s\{,3}\S'
if !para
call add(lines, "<p>")
let para = 1
endif
let processed = 1
call add(lines, a:line)
elseif para && a:line =~ '^\s*$'
elseif para && a:line =~# '^\s*$'
call add(lines, "</p>")
let para = 0
endif
@ -953,7 +955,7 @@ function! s:process_tag_h(line, id) "{{{
let h_text = ''
let h_id = ''
if a:line =~ g:vimwiki_rxHeader
if a:line =~# g:vimwiki_rxHeader
let h_level = vimwiki#u#count_first_sym(a:line)
endif
if h_level > 0
@ -962,9 +964,9 @@ function! s:process_tag_h(line, id) "{{{
let h_number = ''
let h_complete_id = ''
let h_id = s:safe_html_anchor(h_text)
let centered = (a:line =~ '^\s')
let centered = (a:line =~# '^\s')
if h_text != g:vimwiki_toc_header
if h_text !=# g:vimwiki_toc_header
let a:id[h_level-1] = [h_text, a:id[h_level-1][1]+1]
@ -1016,7 +1018,7 @@ endfunction "}}}
function! s:process_tag_hr(line) "{{{
let line = a:line
let processed = 0
if a:line =~ '^-----*$'
if a:line =~# '^-----*$'
let line = '<hr />'
let processed = 1
endif
@ -1027,15 +1029,15 @@ function! s:process_tag_table(line, table, header_ids) "{{{
function! s:table_empty_cell(value) "{{{
let cell = {}
if a:value =~ '^\s*\\/\s*$'
if a:value =~# '^\s*\\/\s*$'
let cell.body = ''
let cell.rowspan = 0
let cell.colspan = 1
elseif a:value =~ '^\s*&gt;\s*$'
elseif a:value =~# '^\s*&gt;\s*$'
let cell.body = ''
let cell.rowspan = 1
let cell.colspan = 0
elseif a:value =~ '^\s*$'
elseif a:value =~# '^\s*$'
let cell.body = '&nbsp;'
let cell.rowspan = 1
let cell.colspan = 1
@ -1050,7 +1052,7 @@ function! s:process_tag_table(line, table, header_ids) "{{{
function! s:table_add_row(table, line) "{{{
if empty(a:table)
if a:line =~ '^\s\+'
if a:line =~# '^\s\+'
let row = ['center', []]
else
let row = ['normal', []]
@ -1132,14 +1134,14 @@ function! s:parse_line(line, state) " {{{
"}}}
if !processed
if line =~ g:vimwiki_rxComment
if line =~# g:vimwiki_rxComment
let processed = 1
endif
endif
" nohtml -- placeholder
if !processed
if line =~ '^\s*%nohtml'
if line =~# '^\s*%nohtml'
let processed = 1
let state.placeholder = ['nohtml']
endif
@ -1147,7 +1149,7 @@ function! s:parse_line(line, state) " {{{
" title -- placeholder
if !processed
if line =~ '^\s*%title'
if line =~# '^\s*%title'
let processed = 1
let param = matchstr(line, '^\s*%title\s\zs.*')
let state.placeholder = ['title', param]
@ -1156,7 +1158,7 @@ function! s:parse_line(line, state) " {{{
" html template -- placeholder "{{{
if !processed
if line =~ '^\s*%template'
if line =~# '^\s*%template'
let processed = 1
let param = matchstr(line, '^\s*%template\s\zs.*')
let state.placeholder = ['template', param]
@ -1401,10 +1403,10 @@ function! vimwiki#html#Wiki2HTML(path_html, wikifile) "{{{
endif
if !empty(state.placeholder)
if state.placeholder[0] == 'nohtml'
if state.placeholder[0] ==# 'nohtml'
let nohtml = 1
break
elseif state.placeholder[0] == 'template'
elseif state.placeholder[0] ==# 'template'
let template_name = state.placeholder[1]
else
call add(placeholders, [state.placeholder, len(ldest), len(placeholders)])
@ -1437,7 +1439,7 @@ function! vimwiki#html#Wiki2HTML(path_html, wikifile) "{{{
let title = s:process_title(placeholders, fnamemodify(a:wikifile, ":t:r"))
let html_lines = s:get_html_template(a:wikifile, template_name)
let html_lines = s:get_html_template(template_name)
" processing template variables (refactor to a function)
call map(html_lines, 'substitute(v:val, "%title%", "'. title .'", "g")')
@ -1543,17 +1545,17 @@ function! s:binary_exists(fname) "{{{
endfunction "}}}
" uses VimwikiGet('path')
function! vimwiki#html#get_wikifile_url(wikifile) "{{{
function! s:get_wikifile_url(wikifile) "{{{
return VimwikiGet('path_html').
\ vimwiki#base#subdir(VimwikiGet('path'), a:wikifile).
\ fnamemodify(a:wikifile, ":t:r").'.html'
endfunction "}}}
function! vimwiki#html#PasteUrl(wikifile) "{{{
execute 'r !echo file://'.vimwiki#html#get_wikifile_url(a:wikifile)
execute 'r !echo file://'.s:get_wikifile_url(a:wikifile)
endfunction "}}}
function! vimwiki#html#CatUrl(wikifile) "{{{
execute '!echo file://'.vimwiki#html#get_wikifile_url(a:wikifile)
execute '!echo file://'.s:get_wikifile_url(a:wikifile)
endfunction "}}}
"}}}

View File

@ -185,10 +185,10 @@ endfunction "}}}
"Returns: level of the line
"0 is the 'highest' level
function! s:get_level(lnum) "{{{
if getline(a:lnum) =~ '^\s*$'
if getline(a:lnum) =~# '^\s*$'
return 0
endif
if VimwikiGet('syntax') != 'media'
if VimwikiGet('syntax') !=? 'media'
let level = indent(a:lnum)
else
let level = s:string_length(matchstr(getline(a:lnum), s:rx_bullet_chars))-1
@ -207,7 +207,7 @@ function! s:guess_kind_of_numbered_item(item) "{{{
let number_chars = a:item.mrkr[:-2]
let divisor = a:item.mrkr[-1:]
if number_chars =~ '\d\+'
if number_chars =~# '\d\+'
return '1'
endif
if number_chars =~# '\l\+'
@ -840,7 +840,7 @@ function! vimwiki#lst#toggle_cb(from_line, to_line) "{{{
"if from_line has CB, toggle it and set all siblings to the same new state
let rate_first_line = s:get_rate(from_item)
let new_rate = rate_first_line==100 ? 0 : 100
let new_rate = rate_first_line == 100 ? 0 : 100
for cur_ln in range(from_item.lnum, a:to_line)
let cur_item = s:get_item(cur_ln)
@ -922,7 +922,7 @@ endfunction "}}}
function! s:decrease_level(item) "{{{
let removed_indent = 0
if VimwikiGet('syntax') == 'media' && a:item.type == 1 &&
if VimwikiGet('syntax') ==? 'media' && a:item.type == 1 &&
\ index(s: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,
@ -944,7 +944,7 @@ endfunction "}}}
function! s:increase_level(item) "{{{
let additional_indent = 0
if VimwikiGet('syntax') == 'media' && a:item.type == 1 &&
if VimwikiGet('syntax') ==? 'media' && a:item.type == 1 &&
\ index(s: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))
@ -966,7 +966,7 @@ endfunction "}}}
"a:indent_by can be negative
function! s:indent_line_by(lnum, indent_by) "{{{
let item = s:get_item(a:lnum)
if VimwikiGet('syntax') == 'media' && item.type == 1 &&
if VimwikiGet('syntax') ==? 'media' && item.type == 1 &&
\ index(s:multiple_bullet_chars, s:first_char(item.mrkr)) > -1
if a:indent_by > 0
call s:substitute_string_in_line(a:lnum, item.mrkr,
@ -983,17 +983,17 @@ endfunction "}}}
function! s:change_level(from_line, to_line, direction, plus_children) "{{{
let from_item = s:get_corresponding_item(a:from_line)
if from_item.type == 0
if a:direction == 'increase' && a:from_line == a:to_line &&
if a:direction ==# 'increase' && a:from_line == a:to_line &&
\ empty(getline(a:from_line))
"that's because :> doesn't work on an empty line
normal! gi
else
execute a:from_line.','.a:to_line.(a:direction == 'increase' ? '>' : '<')
execute a:from_line.','.a:to_line.(a:direction ==# 'increase' ? '>' : '<')
endif
return
endif
if a:direction == 'decrease' && s:get_level(from_item.lnum) == 0
if a:direction ==# 'decrease' && s:get_level(from_item.lnum) == 0
return
endif
@ -1026,7 +1026,7 @@ function! s:change_level(from_line, to_line, direction, plus_children) "{{{
let more_than_one_level_concerned = 0
let first_line_indented_by =
\ (a:direction == 'increase') ?
\ (a:direction ==# 'increase') ?
\ s:increase_level(from_item) : s:decrease_level(from_item)
let cur_ln = s:get_next_line(from_item.lnum)
@ -1112,7 +1112,7 @@ endfunction "}}}
function! s:set_new_mrkr(item, new_mrkr) "{{{
if a:item.type == 0
call s:substitute_rx_in_line(a:item.lnum, '^\s*\zs\ze', a:new_mrkr.' ')
if indent(a:item.lnum) == 0 && VimwikiGet('syntax') != 'media'
if indent(a:item.lnum) == 0 && VimwikiGet('syntax') !=? 'media'
call s:set_indent(a:item.lnum, vimwiki#lst#get_list_margin())
endif
else
@ -1121,7 +1121,7 @@ function! s:set_new_mrkr(item, new_mrkr) "{{{
endfunction "}}}
function! vimwiki#lst#change_marker(from_line, to_line, new_mrkr, mode) "{{{
let cur_col_from_eol = col("$") - (a:mode == "i" ? col("'^") : col('.'))
let cur_col_from_eol = col("$") - (a:mode ==# "i" ? col("'^") : col('.'))
let new_mrkr = a:new_mrkr
let cur_ln = a:from_line
while 1
@ -1138,13 +1138,13 @@ function! vimwiki#lst#change_marker(from_line, to_line, new_mrkr, mode) "{{{
"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)
\ s:first_char(item_above.mrkr) ==# s:first_char(new_mrkr)
let new_mrkr = item_above.mrkr
else
"use *** if the item below has *** too
let item_below = s:get_next_list_item(cur_item, 1)
if item_below.type == 1 &&
\ s:first_char(item_below.mrkr) == s:first_char(new_mrkr)
\ s:first_char(item_below.mrkr) ==# s:first_char(new_mrkr)
let new_mrkr = item_below.mrkr
else
"if the old is ### and the new is * use ***
@ -1155,7 +1155,7 @@ function! vimwiki#lst#change_marker(from_line, to_line, new_mrkr, mode) "{{{
"use *** if the parent item has **
let parent_item = s:get_parent(cur_item)
if parent_item.type == 1 &&
\ s:first_char(parent_item.mrkr) == s:first_char(new_mrkr)
\ s:first_char(parent_item.mrkr) ==# s:first_char(new_mrkr)
let new_mrkr = repeat(s:first_char(parent_item.mrkr),
\ s:string_length(parent_item.mrkr)+1)
endif
@ -1193,7 +1193,7 @@ endfunction "}}}
"sets kind of the item depending on neighbor items and the parent item
function! s:adjust_mrkr(item) "{{{
if a:item.type == 0 || VimwikiGet('syntax') == 'media'
if a:item.type == 0 || VimwikiGet('syntax') ==? 'media'
return
endif
@ -1208,7 +1208,7 @@ function! s:adjust_mrkr(item) "{{{
\ index(s: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)
\ s:first_char(parent_item.mrkr) ==# s:first_char(a:item.mrkr)
let new_mrkr = repeat(s:first_char(parent_item.mrkr),
\ s:string_length(parent_item.mrkr)+1)
endif
@ -1223,7 +1223,7 @@ function! s:clone_marker_from_to(from, to) "{{{
if item_from.type == 0 | return | endif
let new_mrkr = item_from.mrkr . ' '
call s:substitute_rx_in_line(a:to, '^\s*', new_mrkr)
let new_indent = ( VimwikiGet('syntax') != 'media' ? indent(a:from) : 0 )
let new_indent = ( VimwikiGet('syntax') !=? 'media' ? indent(a:from) : 0 )
call s:set_indent(a:to, new_indent)
if item_from.cb != ''
call s:create_cb(s:get_item(a:to))
@ -1286,7 +1286,7 @@ endfunction "}}}
function! vimwiki#lst#kbd_O() "{{{
normal! Ox
let cur_ln = line('.')
if getline(cur_ln+1) !~ '^\s*$'
if getline(cur_ln+1) !~# '^\s*$'
call s:clone_marker_from_to(cur_ln+1, cur_ln)
else
call s:clone_marker_from_to(cur_ln-1, cur_ln)
@ -1365,7 +1365,7 @@ function! s:cr_on_list_item(lnum, insert_new_marker, not_at_eol) "{{{
normal! gi 
call s:clone_marker_from_to(a:lnum, a:lnum+1)
"tiny sweet extra feature: indent next line if current line ends with :
if !a:not_at_eol && getline(a:lnum) =~ ':$'
if !a:not_at_eol && getline(a:lnum) =~# ':$'
call s:change_level(a:lnum+1, a:lnum+1, 'increase', 0)
endif
else
@ -1393,17 +1393,17 @@ function! vimwiki#lst#kbd_cr(normal, just_mrkr) "{{{
endif
let insert_new_marker = (a:normal == 1 || a:normal == 3)
if getline('.')[col("'^")-1:] =~ '^\s\+$'
if getline('.')[col("'^")-1:] =~# '^\s\+$'
let cur_col = 0
else
let cur_col = col("$") - col("'^")
if getline('.')[col("'^")-1] =~ '\s' && exists("*strdisplaywidth")
if getline('.')[col("'^")-1] =~# '\s' && exists("*strdisplaywidth")
let ws_behind_cursor =
\ strdisplaywidth(matchstr(getline('.')[col("'^")-1:], '\s\+'),
\ virtcol("'^")-1)
let cur_col -= ws_behind_cursor
endif
if insert_new_marker && cur_col == 0 && getline(lnum) =~ '\s$'
if insert_new_marker && cur_col == 0 && getline(lnum) =~# '\s$'
let insert_new_marker = 0
endif
endif
@ -1450,7 +1450,7 @@ function! vimwiki#lst#toggle_list_item() "{{{
let new_cur_col = col("$") - cur_col_from_eol
call cursor(cur_item.lnum, new_cur_col >= 1 ? new_cur_col : 1)
if cur_col_from_eol == 0 || getline(cur_item.lnum) =~ '^\s*$'
if cur_col_from_eol == 0 || getline(cur_item.lnum) =~# '^\s*$'
startinsert!
else
startinsert

View File

@ -81,11 +81,11 @@ function! vimwiki#markdown_base#follow_link(split, ...) "{{{ Parse link at curso
" XXX: @Maxim: most likely! I am still working on a seemless way to
" integrate regexp's without complicating syntax/vimwiki.vim
else
if a:split == "split"
if a:split ==# "split"
let cmd = ":split "
elseif a:split == "vsplit"
elseif a:split ==# "vsplit"
let cmd = ":vsplit "
elseif a:split == "tabnew"
elseif a:split ==# "tabnew"
let cmd = ":tabnew "
else
let cmd = ":e "

View File

@ -9,12 +9,24 @@ function! vimwiki#path#chomp_slash(str) "{{{
return substitute(a:str, '[/\\]\+$', '', '')
endfunction "}}}
" Define path-compare function, either case-sensitive or not, depending on OS.
"{{{ " function! vimwiki#path#is_equal(p1, p2)
if vimwiki#u#is_windows()
function! vimwiki#path#is_equal(p1, p2)
return a:p1 ==? a:p2
endfunction
else
function! vimwiki#path#is_equal(p1, p2)
return a:p1 ==# a:p2
endfunction
endif "}}}
" collapse sections like /a/b/../c to /a/c
function! vimwiki#path#normalize(path) "{{{
let path = a:path
while 1
let result = substitute(path, '/[^/]\+/\.\.', '', '')
if result == path
if result ==# path
break
endif
let path = result
@ -38,7 +50,7 @@ endfunction "}}}
function! vimwiki#path#is_link_to_dir(link) "{{{
" Check if link is to a directory.
" It should be ended with \ or /.
if a:link =~ '.\+[/\\]$'
if a:link =~# '.\+[/\\]$'
return 1
endif
return 0
@ -56,7 +68,7 @@ function! vimwiki#path#path_common_pfx(path1, path2) "{{{
let idx = 0
let minlen = min([len(p1), len(p2)])
while (idx < minlen) && (p1[idx] ==? p2[idx])
while (idx < minlen) && vimwiki#path#is_equal(p1[idx], p2[idx])
let idx = idx + 1
endwhile
if idx == 0
@ -80,7 +92,7 @@ function! vimwiki#path#relpath(dir, file) "{{{
let result = []
let dir = split(a:dir, '/')
let file = split(a:file, '/')
while (len(dir) > 0 && len(file) > 0) && dir[0] == file[0]
while (len(dir) > 0 && len(file) > 0) && vimwiki#path#is_equal(dir[0], file[0])
call remove(dir, 0)
call remove(file, 0)
endwhile
@ -116,7 +128,8 @@ function! vimwiki#path#mkdir(path, ...) "{{{
let path = iconv(path, &enc, g:vimwiki_w32_dir_enc)
endif
if a:0 && a:1 && tolower(input("Vimwiki: Make new directory: ".path."\n [Y]es/[n]o? ")) !~ "^y"
if a:0 && a:1 && input("Vimwiki: Make new directory: "
\ .path."\n [y]es/[N]o? ") !~? '^y'
return 0
endif

View File

@ -54,28 +54,28 @@ function! s:sep_splitter() "{{{
endfunction "}}}
function! s:is_table(line) "{{{
return s:is_separator(a:line) || (a:line !~ s:rxSep().s:rxSep() && a:line =~ '^\s*'.s:rxSep().'.\+'.s:rxSep().'\s*$')
return s:is_separator(a:line) || (a:line !~# s:rxSep().s:rxSep() && a:line =~# '^\s*'.s:rxSep().'.\+'.s:rxSep().'\s*$')
endfunction "}}}
function! s:is_separator(line) "{{{
return a:line =~ '^\s*'.s:rxSep().'\(--\+'.s:rxSep().'\)\+\s*$'
return a:line =~# '^\s*'.s:rxSep().'\(--\+'.s:rxSep().'\)\+\s*$'
endfunction "}}}
function! s:is_separator_tail(line) "{{{
return a:line =~ '^\{-1}\%(\s*\|-*\)\%('.s:rxSep().'-\+\)\+'.s:rxSep().'\s*$'
return a:line =~# '^\{-1}\%(\s*\|-*\)\%('.s:rxSep().'-\+\)\+'.s:rxSep().'\s*$'
endfunction "}}}
function! s:is_last_column(lnum, cnum) "{{{
let line = strpart(getline(a:lnum), a:cnum - 1)
"echomsg "DEBUG is_last_column> ".(line =~ s:rxSep().'\s*$' && line !~ s:rxSep().'.*'.s:rxSep().'\s*$')
return line =~ s:rxSep().'\s*$' && line !~ s:rxSep().'.*'.s:rxSep().'\s*$'
"echomsg "DEBUG is_last_column> ".(line =~# s:rxSep().'\s*$' && line !~# s:rxSep().'.*'.s:rxSep().'\s*$')
return line =~# s:rxSep().'\s*$' && line !~# s:rxSep().'.*'.s:rxSep().'\s*$'
endfunction "}}}
function! s:is_first_column(lnum, cnum) "{{{
let line = strpart(getline(a:lnum), 0, a:cnum - 1)
"echomsg "DEBUG is_first_column> ".(line =~ '^\s*'.s:rxSep() && line !~ '^\s*'.s:rxSep().'.*'.s:rxSep())
return line =~ '^\s*$' || (line =~ '^\s*'.s:rxSep() && line !~ '^\s*'.s:rxSep().'.*'.s:rxSep())
"echomsg "DEBUG is_first_column> ".(line =~# '^\s*'.s:rxSep() && line !~# '^\s*'.s:rxSep().'.*'.s:rxSep())
return line =~# '^\s*$' || (line =~# '^\s*'.s:rxSep() && line !~# '^\s*'.s:rxSep().'.*'.s:rxSep())
endfunction "}}}
function! s:count_separators_up(lnum) "{{{
@ -134,11 +134,11 @@ function! vimwiki#tbl#get_cells(line) "{{{
for idx in range(strlen(a:line))
" The only way I know Vim can do Unicode...
let ch = a:line[idx]
if state == 'NONE'
if state ==# 'NONE'
if ch == '|'
let state = 'CELL'
endif
elseif state == 'CELL'
elseif state ==# 'CELL'
if ch == '[' || ch == '{'
let state = 'BEFORE_QUOTE_START'
let quote = ch
@ -148,7 +148,7 @@ function! vimwiki#tbl#get_cells(line) "{{{
else
let cell .= ch
endif
elseif state == 'BEFORE_QUOTE_START'
elseif state ==# 'BEFORE_QUOTE_START'
if ch == '[' || ch == '{'
let state = 'QUOTE'
let quote .= ch
@ -157,12 +157,12 @@ function! vimwiki#tbl#get_cells(line) "{{{
let cell .= quote.ch
let quote = ''
endif
elseif state == 'QUOTE'
elseif state ==# 'QUOTE'
if ch == ']' || ch == '}'
let state = 'BEFORE_QUOTE_END'
endif
let quote .= ch
elseif state == 'BEFORE_QUOTE_END'
elseif state ==# 'BEFORE_QUOTE_END'
if ch == ']' || ch == '}'
let state = 'CELL'
endif
@ -495,7 +495,7 @@ function! vimwiki#tbl#kbd_shift_tab() "{{{
endfunction "}}}
function! vimwiki#tbl#format(lnum, ...) "{{{
if !(&filetype == 'vimwiki')
if !(&filetype ==? 'vimwiki')
return
endif
let line = getline(a:lnum)
@ -570,7 +570,7 @@ function! vimwiki#tbl#align_or_cmd(cmd) "{{{
endfunction "}}}
function! vimwiki#tbl#reset_tw(lnum) "{{{
if !(&filetype == 'vimwiki')
if !(&filetype ==? 'vimwiki')
return
endif
let line = getline(a:lnum)

View File

@ -964,7 +964,7 @@ In HTML the following part >
| Year | Temperature (low) | Temperature (high) |
|------|-------------------|--------------------|
>
is higlighted as a table header.
is highlighted as a table header.
If you indent a table then it will be centered in HTML.
@ -1917,7 +1917,7 @@ See |vimwiki-option-template_path| for details.
*vimwiki-option-template_ext*
------------------------------------------------------------------------------
Key Default value~
template_ext .html
template_ext .tpl
Description~
Setup template filename extension.
@ -2625,6 +2625,19 @@ before the plugin loads. >
The default is '<Leader>w'.
------------------------------------------------------------------------------
*g:vimwiki_auto_chdir*
When set to 1, enables auto-cd feature. Whenever vimwiki page is opened,
vimwiki performs an |:lcd| to the vimwiki folder to where the page belongs.
Value Description~
0 Do not change directory.
1 Change directory to vimwiki folder on opening page.
Default: 0
==============================================================================
13. Miscellaneous *vimwiki-misc*
@ -2665,6 +2678,7 @@ Vim plugins: http://www.vim.org/scripts/script.php?script_id=2226
???~
* Support for tags.
* Spport for |g:vimwiki_auto_chdir| option.
* Support for anchors, see |vimwiki-anchors|
* in this context, add support for TOC, see |vimwiki-toc|
* remove the now useless %toc placeholder

View File

@ -46,7 +46,7 @@ function! Complete_wikifiles(findstart, base)
let s:line_context = '['
return startoflink
endif
if VimwikiGet('syntax') == 'markdown'
if VimwikiGet('syntax') ==? 'markdown'
let startofinlinelink = match(line, '\[.*\](\zs[^)]*$')
if startofinlinelink != -1
let s:line_context = '['
@ -75,7 +75,7 @@ function! Complete_wikifiles(findstart, base)
\ "v:val[:" . (len(a:base)-1) . "] == '" . substitute(a:base, "'", "''", '') . "'" )
endif
return tags
elseif a:base !~ '#'
elseif a:base !~# '#'
" we look for wiki files
if a:base =~# '^wiki\d:'
@ -108,7 +108,7 @@ function! Complete_wikifiles(findstart, base)
" we look for anchors in the given wikifile
let segments = split(a:base, '#', 1)
let given_wikifile = segments[0]=='' ? expand('%:t:r') : segments[0]
let given_wikifile = segments[0] == '' ? expand('%:t:r') : segments[0]
let link_infos = vimwiki#base#resolve_scheme(given_wikifile.'#', 0, 1)
let wikifile = link_infos[6]
let syntax = VimwikiGet('syntax', link_infos[0])
@ -172,12 +172,12 @@ function! VimwikiFoldLevel(lnum) "{{{
let line = getline(a:lnum)
" Header/section folding...
if line =~ g:vimwiki_rxHeader
if line =~# g:vimwiki_rxHeader
return '>'.vimwiki#u#count_first_sym(line)
" Code block folding...
elseif line =~ '^\s*'.g:vimwiki_rxPreStart
elseif line =~# '^\s*'.g:vimwiki_rxPreStart
return 'a1'
elseif line =~ '^\s*'.g:vimwiki_rxPreEnd.'\s*$'
elseif line =~# '^\s*'.g:vimwiki_rxPreEnd.'\s*$'
return 's1'
else
return "="
@ -218,7 +218,7 @@ function! VimwikiFoldText() "{{{
let main_text = substitute(line, '^\s*', repeat(' ',indent(v:foldstart)), '')
let fold_len = v:foldend - v:foldstart + 1
let len_text = ' ['.fold_len.'] '
if line !~ '^\s*'.g:vimwiki_rxPreStart
if line !~# '^\s*'.g:vimwiki_rxPreStart
let [main_text, spare_len] = s:shorten_text(main_text, 50)
return main_text.len_text
else

View File

@ -39,7 +39,8 @@ function! s:find_wiki(path) "{{{
while idx < len(g:vimwiki_list)
let idx_path = expand(VimwikiGet('path', idx))
let idx_path = vimwiki#path#path_norm(vimwiki#path#chomp_slash(idx_path))
if vimwiki#path#path_common_pfx(idx_path, path) == idx_path
if vimwiki#path#is_equal(
\ vimwiki#path#path_common_pfx(idx_path, path), idx_path)
return idx
endif
let idx += 1
@ -88,14 +89,14 @@ function! s:vimwiki_idx() " {{{
endfunction " }}}
function! s:setup_buffer_leave() "{{{
if g:vimwiki_debug ==3
if g:vimwiki_debug == 3
echom "Setup_buffer_leave g:curr_idx=".g:vimwiki_current_idx." b:curr_idx=".s:vimwiki_idx().""
endif
if &filetype == 'vimwiki'
if &filetype ==? 'vimwiki'
" cache global vars of current state XXX: SLOW!?
call vimwiki#base#cache_buffer_state()
endif
if g:vimwiki_debug ==3
if g:vimwiki_debug == 3
echom " Setup_buffer_leave g:curr_idx=".g:vimwiki_current_idx." b:curr_idx=".s:vimwiki_idx().""
endif
@ -108,7 +109,7 @@ function! s:setup_buffer_leave() "{{{
endfunction "}}}
function! s:setup_filetype() "{{{
if g:vimwiki_debug ==3
if g:vimwiki_debug == 3
echom "Setup_filetype g:curr_idx=".g:vimwiki_current_idx." b:curr_idx=".s:vimwiki_idx().""
endif
let time0 = reltime() " start the clock "XXX
@ -116,7 +117,7 @@ function! s:setup_filetype() "{{{
let path = expand('%:p:h')
" XXX: find_wiki() does not (yet) take into consideration the ext
let idx = s:find_wiki(path)
if g:vimwiki_debug ==3
if g:vimwiki_debug == 3
echom " Setup_filetype g:curr_idx=".g:vimwiki_current_idx." find_idx=".idx." b:curr_idx=".s:vimwiki_idx().""
endif
@ -210,7 +211,7 @@ function! s:setup_buffer_enter() "{{{
if g:vimwiki_debug ==3
echom " Setup_buffer_enter g:curr_idx=".g:vimwiki_current_idx." (set ft vimwiki) b:curr_idx=".s:vimwiki_idx().""
endif
elseif &syntax == 'vimwiki'
elseif &syntax ==? 'vimwiki'
" to force a rescan of the filesystem which may have changed
" and update VimwikiLinks syntax group that depends on it;
" b:vimwiki_fs_rescan indicates that setup_filetype() has not been run
@ -227,15 +228,15 @@ 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'
if g:vimwiki_folding ==? 'expr'
setlocal fdm=expr
setlocal foldexpr=VimwikiFoldLevel(v:lnum)
setlocal foldtext=VimwikiFoldText()
elseif g:vimwiki_folding == 'list' || g:vimwiki_folding == 'lists'
elseif g:vimwiki_folding ==? 'list' || g:vimwiki_folding ==? 'lists'
setlocal fdm=expr
setlocal foldexpr=VimwikiFoldListLevel(v:lnum)
setlocal foldtext=VimwikiFoldText()
elseif g:vimwiki_folding == 'syntax'
elseif g:vimwiki_folding ==? 'syntax'
setlocal fdm=syntax
setlocal foldtext=VimwikiFoldText()
else
@ -357,6 +358,23 @@ function! VimwikiClear(option, ...) "{{{
endfunction "}}}
" }}}
function! s:vimwiki_get_known_extensions() " {{{
" Getting all extensions that different wikis could have
let extensions = {}
for wiki in g:vimwiki_list
if has_key(wiki, 'ext')
let extensions[wiki.ext] = 1
else
let extensions['.wiki'] = 1
endif
endfor
" append map g:vimwiki_ext2syntax
for ext in keys(g:vimwiki_ext2syntax)
let extensions[ext] = 1
endfor
return keys(extensions)
endfunction " }}}
" }}}
" CALLBACK functions "{{{
@ -385,9 +403,9 @@ let s:vimwiki_defaults.ext = '.wiki'
let s:vimwiki_defaults.maxhi = 0
let s:vimwiki_defaults.syntax = 'default'
let s:vimwiki_defaults.template_path = ''
let s:vimwiki_defaults.template_default = ''
let s:vimwiki_defaults.template_ext = ''
let s:vimwiki_defaults.template_path = '~/vimwiki/templates/'
let s:vimwiki_defaults.template_default = 'default'
let s:vimwiki_defaults.template_ext = '.tpl'
let s:vimwiki_defaults.nested_syntaxes = {}
let s:vimwiki_defaults.auto_export = 0
@ -454,6 +472,8 @@ 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
@ -488,7 +508,7 @@ augroup end
augroup vimwiki
autocmd!
for s:ext in vimwiki#base#get_known_extensions()
for s:ext in s:vimwiki_get_known_extensions()
exe 'autocmd BufEnter *'.s:ext.' call s:setup_buffer_reenter()'
exe 'autocmd BufWinEnter *'.s:ext.' call s:setup_buffer_enter()'
exe 'autocmd BufLeave,BufHidden *'.s:ext.' call s:setup_buffer_leave()'

View File

@ -83,7 +83,11 @@ let s:valid_chars = '[^\\\]]'
let g:vimwiki_rxWikiLinkUrl = s:valid_chars.'\{-}'
let g:vimwiki_rxWikiLinkDescr = s:valid_chars.'\{-}'
let g:vimwiki_rxWord = '[^[:blank:]()\\]\+'
" this regexp defines what can form a link when the user presses <CR> in the
" buffer (and not on a link) to create a link
" basically, it's Ascii alphanumeric characters plus #|./@-_~ plus all
" non-Ascii characters
let g:vimwiki_rxWord = '[^[:blank:]!"$%&''()*+,:;<=>?\[\]\\^`{}]\+'
" [[URL]], or [[URL|DESCRIPTION]]

View File

@ -4,9 +4,6 @@
" Author: Maxim Kim <habamax@gmail.com>
" Home: http://code.google.com/p/vimwiki/
" placeholder for math environments
let b:vimwiki_mathEnv = ""
" text: $ equation_inline $
let g:vimwiki_rxEqIn = '\$[^$`]\+\$'
let g:vimwiki_char_eqin = '\$'

View File

@ -4,9 +4,6 @@
" Author: Maxim Kim <habamax@gmail.com>
" Home: http://code.google.com/p/vimwiki/
" placeholder for math environments
let b:vimwiki_mathEnv = ""
" text: $ equation_inline $
let g:vimwiki_rxEqIn = '\$[^$`]\+\$'
let g:vimwiki_char_eqin = '\$'

View File

@ -4,9 +4,6 @@
" Author: Maxim Kim <habamax@gmail.com>
" Home: http://code.google.com/p/vimwiki/
" placeholder for math environments
let b:vimwiki_mathEnv = ""
" text: $ equation_inline $
let g:vimwiki_rxEqIn = '\$[^$`]\+\$'
let g:vimwiki_char_eqin = '\$'