X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/881e1b5f9af2883788c902ee40c5b76d8c73a948..4e696e9d4822acb0b042c5a76862720056debd89:/.vim/bundle/asyncomplete/doc/asyncomplete.txt diff --git a/.vim/bundle/asyncomplete/doc/asyncomplete.txt b/.vim/bundle/asyncomplete/doc/asyncomplete.txt new file mode 100644 index 00000000..1e15fbac --- /dev/null +++ b/.vim/bundle/asyncomplete/doc/asyncomplete.txt @@ -0,0 +1,191 @@ +*asyncomplete.vim.txt* Async autocompletion for Vim 8 and Neovim. +*asyncomplete* + + +=============================================================================== +CONTENTS *asyncomplete-contents* + + 1. Introduction |asyncomplete-introduction| + 2. Options |asyncomplete-options| + 3. Functions |asyncomplete-functions| + 4. Global vim configuration |asyncomplete-global-config| + 5. Known Issues |asyncomplete-known-issues| + +=============================================================================== +1. Introduction *asyncomplete-introduction* + +Async autocompletion for Vim 8 and Neovim with |timers|. + +This is inspired by https://github.com/roxma/nvim-complete-manager but written +in pure Vim Script. + +=============================================================================== +2. Options *asyncomplete-options* + + +g:asyncomplete_enable_for_all *g:asyncomplete_enable_for_all* + + Type |Number| + Default: 1 + + Enable asyncomplete for all buffers. Can be overriden with + `b:asyncomplete_enable` on a per-buffer basis. Setting this to 0 prevents + asyncomplete from loading upon entering a buffer. + +b:asyncomplete_enable *b:asyncomplete_enable* + + Type |Number| + Default: 1 + + Setting this variable to 0 disables asyncomplete for the current buffer + and overrides `g:asyncomplete_enable_for_all` . + +g:asyncomplete_auto_popup *g:asyncomplete_auto_popup* + + Type: |Number| + Default: `1` + + Automatically show the autocomplete popup menu as you start typing. + +g:asyncomplete_log_file *g:asyncomplete_log_file* + + Type: |String| + Default: null + + Path to log file. + +g:asyncomplete_popup_delay *g:asyncomplete_popup_delay* + + Type: |Number| + Default: 30 + + Milliseconds to wait before opening the popup menu + +g:asyncomplete_auto_completeopt *g:asyncomplete_auto_completeopt* + + Type: |Number| + Default: 1 + + Set default `completeopt` options. These are `menuone,noinsert,noselect`. + This effectively overwrites what ever the user has in their config file. + + Set to 0 to disable. + +g:asyncomplete_preprocessor *g:asyncomplete_preprocessor* + + Type: |Array| for zero or one |Function| + Default: [] + + Set a function to allow custom filtering or sorting. + Below example implements removing duplicates. + + function! s:my_asyncomplete_preprocessor(options, matches) abort + let l:visited = {} + let l:items = [] + for [l:source_name, l:matches] in items(a:matches) + for l:item in l:matches['items'] + if stridx(l:item['word'], a:options['base']) == 0 + if !has_key(l:visited, l:item['word']) + call add(l:items, l:item) + let l:visited[l:item['word']] = 1 + endif + endif + endfor + endfor + + call asyncomplete#preprocess_complete(a:options, l:items) + endfunction + + let g:asyncomplete_preprocessor = [function('s:my_asyncomplete_preprocessor')] + + Note: + asyncomplete#preprocess_complete() must be called synchronously. + Plans to support async preprocessing will be supported in the future. + + context and matches in arguments in preprecessor function should be treated + as immutable. + +g:asyncomplete_min_chars *g:asyncomplete_min_chars* + + Type: |Number| + Default: 0 + + Minimum consecutive characters to trigger auto-popup. Overridden by buffer + variable if set (`b:asyncomplete_min_chars`) + +g:asyncomplete_matchfuzzy *g:asyncomplete_matchfuzzy* + + Type: |Number| + Default: `exists('*matchfuzzypos')` + + Use |matchfuzzypos| to support fuzzy matching of 'word' when completing + items. Requires vim with `matchfuzzypos()` function to exists. + + Set to `0` to disable fuzzy matching. + +=============================================================================== +3. Functions *asyncomplete-functions* + +asyncomplete#close_popup() *asyncomplete#close_popup()* + + Insert selected candidate and close popup menu. + Following example prevents popup menu from re-opening after insertion. +> + inoremap pumvisible() ? asyncomplete#close_popup() : "\" +< +asyncomplete#cancel_popup() *asyncomplete#cancel_popup()* + + Cancel completion and close popup menu. + Following example prevents popup menu from re-opening after cancellation. +> + inoremap pumvisible() ? asyncomplete#cancel_popup() : "\" +< +asyncomplete#get_source_info({source-name}) *asyncomplete#get_source_info()* + + Get the source configuration info as dict. + Below example implements a priority sort function. +> + function! s:sort_by_priority_preprocessor(options, matches) abort + let l:items = [] + for [l:source_name, l:matches] in items(a:matches) + for l:item in l:matches['items'] + if stridx(l:item['word'], a:options['base']) == 0 + let l:item['priority'] = + \ get(asyncomplete#get_source_info(l:source_name),'priority',0) + call add(l:items, l:item) + endif + endfor + endfor + + let l:items = sort(l:items, {a, b -> b['priority'] - a['priority']}) + + call asyncomplete#preprocess_complete(a:options, l:items) + endfunction + + let g:asyncomplete_preprocessor = [function('s:sort_by_priority_preprocessor')] +< +asyncomplete#get_source_names() *asyncomplete#get_source_names()* + + Get the registered source names list. + +=============================================================================== +4. Global vim configuration *asyncomplete-global-config* + +If you notice messages like 'Pattern not found' or 'Match 1 of ' printed in +red colour in vim command line and in `:messages` history and you are annoyed +with them, try setting `shortmess` vim option in your `.vimrc` like so: +> + set shortmess+=c +< +See `:help shortmess` for details and description. + +=============================================================================== +5. Known Issues *asyncomplete-known-issues* + +Builtin complete such as omni func, file func flickers and closes. + You need vim with patch v8.1.1068. + https://github.com/vim/vim/commit/fd133323d4e1cc9c0e61c0ce357df4d36ea148e3 + +=============================================================================== + + vim:tw=78:ts=4:sts=4:sw=4:ft=help:norl: