nvim-lua / completion-nvim

A async completion framework aims to provide completion to neovim's built in LSP written in Lua
Apache License 2.0
973 stars 79 forks source link

Completion breaks jumping to the next placeholder in ultisnips #389

Open devenv opened 3 years ago

devenv commented 3 years ago

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.

ranjithshegde commented 3 years ago

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

devenv commented 3 years ago

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

devenv commented 3 years ago

I changed utlisnips mapping to

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

same behavior.