Pourquoi YouCompleteMe ne complète-t-il pas les paramètres de la fonction?

10

Je voudrais utiliser YouCompleteMe avec l'achèvement sémantique C ++, mais après des heures d'essais, je ne trouve pas pourquoi cela ne fonctionne pas comme prévu.

Tout semble fonctionner mais je ne peux pas compléter les paramètres de fonction.

J'utilise Vim sur Archlinux (Gnome Terminal sur Openbox):

Linux Arch-PC 4.2.5-1-ARCH #1 SMP PREEMPT Tue Oct 27 08:13:28 CET 2015 x86_64 GNU/Linux

J'ai installé YCM en suivant les instructions (avec le install.pysupport de script et clang). J'ai également essayé avec le package AUR YCM et j'ai eu le même problème.

YcmDebugInfo:

Printing YouCompleteMe debug information...
-- Server has Clang support compiled in: True
-- Clang version: clang version 3.7.0 (tags/RELEASE_370/final)
-- Flags for /home/arthur/vimtest/main.cpp loaded from /home/arthur/vimtest/.ycm
_extra_conf.py:
-- ['-x', 'c++', '-Wall', '-isystem', '/home/arthur/.vim/bundle/YouCompleteMe/th
ird_party/ycmd/ycmd/../clang_includes']
-- Server running at: http://127.0.0.1:54555
-- Server process ID: 11520
-- Server logfiles:
--   /tmp/ycm_temp/server_54555_stdout.log
--   /tmp/ycm_temp/server_54555_stderr.log

C'est ce qui apparaît à l'écran lorsque vous essayez de terminer: Problème YCM

J'ai utilisé YCM-Generator pour le .ycm_extra_conf.py.

Suis-je juste en train de manquer quelque chose de stupide en raison de mon manque de connaissances sur Vim? Semble être quelque chose comme une mauvaise cartographie des raccourcis clavier ... mais ne peut pas comprendre exactement ce qui ne va pas. Voici mon .vimrc:

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

    " let Vundle manage Vundle, required
    Plugin 'VundleVim/Vundle.vim'

    Plugin 'scrooloose/nerdtree'
    Plugin 'mbbill/undotree'
    Plugin 'majutsushi/tagbar'
    Plugin 'bling/vim-airline'
    Plugin 'tpope/vim-fugitive'
    Plugin 'vim-scripts/c.vim'
    Plugin 'Valloric/YouCompleteMe'
    Plugin 'sjl/badwolf'        
    Plugin 'rdnetto/YCM-Generator'

call vundle#end()            " required
filetype plugin on    " required

"Settings
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set smartindent
set autoindent
set backspace=indent,eol,start
set background=dark 
set shiftround
set ignorecase
set showmode
set ruler
set showcmd
set mouse=a
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif

"Plugins Settings :
    "badwolf
        colorscheme badwolf
    "YCM :
        let g:ycm_collect_identifiers_from_tags_files = 1
    "airline :
        set laststatus=2
        let g:airline_powerline_fonts = 1




"Shortcuts
    nnoremap <F3>  :UndotreeToggle<cr> 
    nnoremap <F4>  :TagbarToggle<cr> 
    nnoremap <F2>  :NERDTreeToggle<cr> 


syn on
set nu

Merci de votre aide!

hippunk
la source

Réponses:

8

Enfin trouvé! La saisie des paramètres ne fait pas partie du comportement YCM. Voir ce numéro YCM .

Il y a une vieille fourchette d'oblitum qui pourrait accorder cette fonctionnalité. Voilà ce qui m'a induit en erreur.

Malheureusement, cette partie de la fourche semble non entretenue et après quelques essais, je n'ai pas pu le faire fonctionner.

J'ai donc essayé clang_completerla fonctionnalité de complétion de paramètres que je recherchais.

hippunk
la source
1
Ne serait - ce clang_completerêtre github.com/Rip-Rip/clang_complete , ou un autre plug - in?
muru le
Oui, c'est ce plugin.
hippunk
Si vous compilez YCM avec le --clang-completer, cela fonctionne-t-il alors? Je pense que j'utilise la complétion param tout le temps au travail. Impossible de vérifier pour le moment ...
vérifie le
ma fourche a été mise à jour et refactorisée, elle est au même niveau que le maître en amont. Ce qui n'est pas maintenu, c'est cette branche en particulier, j'ai abandonné cette solution en faveur de ce qui est maintenant sur le maître de fork.
pepper_chico