Coc.nvim: Problema ao pressionar a guia no final de uma palavra

Criado em 16 mar. 2019  ·  5Comentários  ·  Fonte: neoclide/coc.nvim

Estou usando o exemplo vimrc fornecido em README.md.

A questão é: quando não há candidato para conclusão e o cursor está no final de uma palavra, tocar na guia não resulta em nada.

Em minha opinião, o comportamento ideal para este caso deve ser mover o cursor para a próxima posição da guia, diferente de pesquisar candidatos de conclusão em uma lista vazia.

Eu acredito que isso é causado por

inoremap <silent><expr> <TAB>
      \ pumvisible() ? "\<C-n>" :
      \ <SID>check_back_space() ? "\<TAB>" :
      \ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"

em determinada configuração vimrc

Como posso corrigir isso sem alterar o comportamento normal quando a lista de candidatos de conclusão não está vazia? Obrigado!

question

Comentários muito úteis

deve mover o cursor para a próxima posição da guia.

O que significa a próxima posição da guia?

Significa inserir um caractere de tabulação.

Estou usando o exemplo vimrc fornecido em README.md.
Eu acredito que isso é causado por
...

De fato. Verifique esta página wiki: https://github.com/neoclide/coc.nvim/wiki/Completion-with-sources#improve -completion-experience

inoremap <silent><expr> <TAB>
      \ pumvisible() ? "\<C-n>" :
      \ <SID>check_back_space() ? "\<TAB>" :
      \ coc#refresh()
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"

O código acima deve fazer com que funcione da maneira que você deseja.
Quando comento essa linha fora do vimrc, obtenho o comportamento que você descreveu. Ele remapeia a guia de volta para a guia quando não há janela de conclusão aberta.

Todos 5 comentários

deve mover o cursor para a próxima posição da guia.

O que significa a próxima posição da guia?

O cursor no final de uma palavra não significa que a solicitação de conclusão retornaria resultados vazios, às vezes.

deve mover o cursor para a próxima posição da guia.

O que significa a próxima posição da guia?

Significa inserir um caractere de tabulação.

Estou usando o exemplo vimrc fornecido em README.md.
Eu acredito que isso é causado por
...

De fato. Verifique esta página wiki: https://github.com/neoclide/coc.nvim/wiki/Completion-with-sources#improve -completion-experience

inoremap <silent><expr> <TAB>
      \ pumvisible() ? "\<C-n>" :
      \ <SID>check_back_space() ? "\<TAB>" :
      \ coc#refresh()
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"

O código acima deve fazer com que funcione da maneira que você deseja.
Quando comento essa linha fora do vimrc, obtenho o comportamento que você descreveu. Ele remapeia a guia de volta para a guia quando não há janela de conclusão aberta.

O exemplo no Leiame é para conclusão do gatilho quando há um caractere de palavra antes, mas o que você precisa não é o gatilho da conclusão, então você deve criar seu próprio mapa de teclado para <Tab> .

inoremap <silent><expr> <TAB>
      \ pumvisible() ? "\<C-n>" :
      \ <SID>check_back_space() ? "\<TAB>" :
      \ coc#refresh()
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"

O código acima deve fazer com que funcione da maneira que você deseja.
Quando comento essa linha fora do vimrc, obtenho o comportamento que você descreveu. Ele remapeia a guia de volta para a guia quando não há janela de conclusão aberta.

Isso funciona. Obrigado @DzKaki !

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

FrankLA0203 picture FrankLA0203  ·  3Comentários

MacGuffinLife picture MacGuffinLife  ·  4Comentários

lanox picture lanox  ·  3Comentários

skylite21 picture skylite21  ·  3Comentários

andys8 picture andys8  ·  3Comentários