nvim-lua/completion-nvim

Completion breaks jumping to the next placeholder in ultisnips

devenv opened this issue · 3 comments

Jumping to the next placeholder in a snippet doesn't work after a completion.

My testing minimal init.vim

call plug#begin('~/test') 
    Plug 'SirVer/ultisnips'
    Plug 'honza/vim-snippets'
    Plug 'neovim/nvim-lsp'
    Plug 'nvim-lua/completion-nvim'
    Plug 'nvim-lua/completion-nvim'
call plug#end()
lua require'nvim_lsp'.pyls.setup{on_attach=require'completion'.on_attach}
au Filetype lua setl omnifunc=v:lua.vim.lsp.omnifunc
" Use <Tab> and <S-Tab> to navigate through popup menu
inoremap <expr> <Tab>   pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"

" Set completeopt to have a better completion experience
set completeopt=menuone,noinsert,noselect

Tried without inoremap <tab> too.

How to reproduce
Expand any snippet with two or more placeholders, autocomplete anything then press tab, it doesn't work.
e.g. from ${1} import ${2}
from<tab><c-n><c-n><cr><tab>
while from<tab><tab> does work.

This is a known Utlisnip problem. Whatever "expand" imap you have for snippets in UltiSnips (default is tab), you cant use that key anywhere else.
So I would suggest something like C-n and C-p for pumvisible popup and Tab S-Tab for UtliSnip expansion

Thanks for reply :)
But I don't use tab for completion, I use C-n.

I changed utlisnips mapping to

let g:UltiSnipsExpandTrigger = "<C-l>"
let g:UltiSnipsJumpForwardTrigger = "<C-l>"
let g:UltiSnipsJumpBackwardTrigger = "<C-h>"

same behavior.