Merge pull request #83 from t7ko/autocompletion

Autocompletion for VimwikiGoto command.
This commit is contained in:
EinfachToll 2014-11-12 09:11:00 +01:00
commit 9fa06803d6
3 changed files with 30 additions and 3 deletions

View File

@ -560,8 +560,8 @@ function! vimwiki#base#open_link(cmd, link, ...) "{{{
endif endif
endfunction " }}} endfunction " }}}
" vimwiki#base#generate_links " vimwiki#base#get_globlinks_escaped
function! vimwiki#base#generate_links() "{{{only get links from the current dir function! vimwiki#base#get_globlinks_escaped() abort "{{{only get links from the current dir
" change to the directory of the current file " change to the directory of the current file
let orig_pwd = getcwd() let orig_pwd = getcwd()
lcd! %:h lcd! %:h
@ -571,6 +571,19 @@ function! vimwiki#base#generate_links() "{{{only get links from the current dir
let globlinks = substitute(globlinks, '\'.VimwikiGet('ext').'\ze\n', '', 'g') let globlinks = substitute(globlinks, '\'.VimwikiGet('ext').'\ze\n', '', 'g')
" restore the original working directory " restore the original working directory
exe 'lcd! '.orig_pwd exe 'lcd! '.orig_pwd
" convert to a List
let lst = split(globlinks, '\n')
" Apply fnameescape() to each item
call map(lst, 'fnameescape(v:val)')
" Convert back to newline-separated list
let globlinks = join(lst, "\n")
" return all escaped links as a single newline-separated string
return globlinks
endfunction " }}}
" vimwiki#base#generate_links
function! vimwiki#base#generate_links() "{{{only get links from the current dir
let globlinks = vimwiki#base#get_globlinks()
" We don't want link to itself. XXX Why ??? " We don't want link to itself. XXX Why ???
" let cur_link = expand('%:t:r') " let cur_link = expand('%:t:r')
@ -1837,6 +1850,17 @@ endfunction "}}}
" }}} " }}}
" Command completion functions {{{
" vimwiki#base#complete_links_escaped
function! vimwiki#base#complete_links_escaped(ArgLead, CmdLine, CursorPos) abort " {{{
" We can safely ignore args if we use -custom=complete option, Vim engine
" will do the job of filtering.
return vimwiki#base#get_globlinks_escaped()
endfunction " }}}
"}}}
" ------------------------------------------------------------------------- " -------------------------------------------------------------------------
" Load syntax-specific Wiki functionality " Load syntax-specific Wiki functionality
for s:syn in vimwiki#base#get_known_syntaxes() for s:syn in vimwiki#base#get_known_syntaxes()

View File

@ -597,6 +597,8 @@ il A single list item.
:VimwikiGoto HelloWorld :VimwikiGoto HelloWorld
< opens opens/creates HelloWorld wiki page. < opens opens/creates HelloWorld wiki page.
Supports |cmdline-completion| for link name.
*:VimwikiDeleteLink* *:VimwikiDeleteLink*
Delete the wiki page that you are in. Delete the wiki page that you are in.

View File

@ -283,7 +283,8 @@ exe 'command! -buffer -nargs=* VimwikiSearch lvimgrep <args> '.
exe 'command! -buffer -nargs=* VWS lvimgrep <args> '. exe 'command! -buffer -nargs=* VWS lvimgrep <args> '.
\ escape(VimwikiGet('path').'**/*'.VimwikiGet('ext'), ' ') \ escape(VimwikiGet('path').'**/*'.VimwikiGet('ext'), ' ')
command! -buffer -nargs=+ VimwikiGoto call vimwiki#base#goto(<f-args>) command! -buffer -nargs=+ -complete=custom,vimwiki#base#complete_links_escaped
\ VimwikiGoto call vimwiki#base#goto(<f-args>)
" list commands " list commands