Merged unite source by Skeept.

This commit is contained in:
Holger Rapp 2014-04-15 08:19:23 +02:00
commit 04ef0f8f5c
3 changed files with 87 additions and 1 deletions

View File

@ -0,0 +1,56 @@
let s:save_cpo = &cpo
set cpo&vim
let s:unite_source = {
\ 'name': 'ultisnips',
\ 'hooks': {},
\ 'action_table': {},
\ 'default_action': 'expand',
\ }
let s:unite_source.action_table.preview = {
\ 'description' : 'ultisnips snippets',
\ 'is_quit' : 0,
\ }
function! s:unite_source.action_table.preview.func(candidate)
" no nice preview at this point, cannot get snippet text
let snippet_preview = a:candidate['word']
echo snippet_preview
endfunction
let s:unite_source.action_table.expand = {
\ 'description': 'expand the current snippet',
\ 'is_quit': 1
\}
function! s:unite_source.action_table.expand.func(candidate)
let delCurrWord = (getline(".")[col(".")-1] == " ") ? "" : "diw"
exe "normal " . delCurrWord . "a" . a:candidate['trigger'] . " "
call UltiSnips#ExpandSnippet()
return ''
endfunction
function! s:unite_source.gather_candidates(args, context)
let default_val = {'word': '', 'unite__abbr': '', 'is_dummy': 0, 'source':
\ 'ultisnips', 'unite__is_marked': 0, 'kind': 'command', 'is_matched': 1,
\ 'is_multiline': 0}
let snippet_list = UltiSnips#SnippetsInCurrentScope()
let canditates = []
for snip in items(snippet_list)
let curr_val = copy(default_val)
let curr_val['word'] = snip[0] . " " . snip[1]
let curr_val['trigger'] = snip[0]
call add(canditates, curr_val)
endfor
return canditates
endfunction
function! unite#sources#ultisnips#define()
return s:unite_source
endfunction
"unlet s:unite_source
let &cpo = s:save_cpo
unlet s:save_cpo

View File

@ -236,7 +236,7 @@ vimrc file. >
let g:UltiSnipsJumpBackwardTrigger="<s-tab>" let g:UltiSnipsJumpBackwardTrigger="<s-tab>"
UltiSnips will only map the jump triggers while a snippet is active to UltiSnips will only map the jump triggers while a snippet is active to
interfer as little as possible with other mappings. interfer as little as possible with other mappings.
The default value for g:UltiSnipsJumpBackwardTrigger interferes with the The default value for g:UltiSnipsJumpBackwardTrigger interferes with the
built-in complete function: |i_CTRL-X_CTRL-K|. A workaround is to add the built-in complete function: |i_CTRL-X_CTRL-K|. A workaround is to add the
@ -1284,6 +1284,22 @@ offers a really nice completion dialogue for snippets.
neocomplete - UltiSnips ships with a source for neocomplete and therefore neocomplete - UltiSnips ships with a source for neocomplete and therefore
offers out of the box completion dialogue support for it too. offers out of the box completion dialogue support for it too.
unite - UltiSnips has a source for unite. As an example of how you can use the
it add the following function and mappings to your vimrc: >
function! UltiSnipsCallUnite()
Unite -start-insert -winheight=100 -immediately -no-empty ultisnips
return ''
endfunction
inoremap <silent> <F12> <C-R>=(pumvisible()? "\<LT>C-E>":"")<CR><C-R>=UltiSnipsCallUnite()<CR>
nnoremap <silent> <F12> a<C-R>=(pumvisible()? "\<LT>C-E>":"")<CR><C-R>=UltiSnipsCallUnite()<CR>
When typing <F12> in either insert or normal mode you will get the unite
interface with matching snippets. Pressing enter will expand the corresponding
snippet. If only one snippet matches the text in front of the cursor will be
expanded when you press the <F12> key.
Supertab - UltiSnips has built-in support for Supertab. Just use a recent Supertab - UltiSnips has built-in support for Supertab. Just use a recent
enough version of both plugins and <tab> will either expand a snippet or defer enough version of both plugins and <tab> will either expand a snippet or defer
to Supertab for expansion. to Supertab for expansion.

14
test.py
View File

@ -3406,6 +3406,20 @@ class Plugin_Neocomplete_BugTest(_VimTest):
vim_config.append('let g:neocomplete#enable_auto_delimiter = 1') vim_config.append('let g:neocomplete#enable_auto_delimiter = 1')
vim_config.append('let g:neocomplete#enable_refresh_always = 1') vim_config.append('let g:neocomplete#enable_refresh_always = 1')
# End: Plugin: Neocomplete #}}} # End: Plugin: Neocomplete #}}}
# Plugin: unite {{{#
class Plugin_unite_BugTest(_VimTest):
plugins = ["Shougo/unite.vim"]
snippets = ("t", "Hello", "", "w")
keys = "iab\\ t=UltiSnipsCallUnite()\n"
wanted = "iab\\ Hello "
def _extra_options_pre_init(self, vim_config):
vim_config.append(r'set iskeyword+=\\ ')
vim_config.append('function! UltiSnipsCallUnite()')
vim_config.append(' Unite -start-insert -winheight=100 -immediately -no-empty ultisnips')
vim_config.append(' return ""')
vim_config.append('endfunction')
# End: Plugin: unite #}}}
# Plugin: Supertab {{{# # Plugin: Supertab {{{#
class Plugin_SuperTab_SimpleTest(_VimTest): class Plugin_SuperTab_SimpleTest(_VimTest):
plugins = ["ervandew/supertab"] plugins = ["ervandew/supertab"]