Warum vervollständigt YouCompleteMe keine Funktionsparameter?

10

Ich möchte YouCompleteMe mit semantischer C ++ - Vervollständigung verwenden, aber nach stundenlangem Versuch kann ich nicht herausfinden, warum es nicht wie erwartet funktioniert.

Alles scheint zu funktionieren, aber ich kann keine Funktionsparameter vervollständigen.

Ich verwende Vim unter Archlinux (Gnome Terminal unter Openbox):

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

Ich habe YCM gemäß den Anweisungen installiert (mit install.pySkript- und Clang-Unterstützung). Ich habe es auch mit dem AUR YCM-Paket versucht und das gleiche Problem bekommen.

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

Das wird auf dem Bildschirm angezeigt, wenn Sie versuchen, Folgendes zu vervollständigen: YCM-Problem

Ich habe YCM-Generator für die verwendet .ycm_extra_conf.py.

Vermisse ich nur etwas Dummes aufgrund meines Mangels an Vim-Kenntnissen? Scheint so etwas wie eine schlechte Zuordnung von Tastaturkürzeln zu sein ... kann aber nicht herausfinden, was genau falsch ist. Das ist meine .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

Danke für Ihre Hilfe!

Hippunk
quelle

Antworten:

8

Endlich gefunden! Das Vervollständigen von Parametern ist kein Teil des YCM-Verhaltens. Siehe dieses YCM-Problem .

Es gibt eine alte Gabel aus Oblitum, die diese Funktion gewähren könnte. Das hat mich irregeführt.

Leider scheint dieser Teil der Gabel nicht gewartet zu sein und nach ein paar Versuchen konnte ich ihn nicht zum Laufen bringen.

Also habe ich ausprobiert, clang_completerwelche Funktion zur Parametervervollständigung ich gesucht habe.

Hippunk
quelle
1
Wäre das clang_completersein github.com/Rip-Rip/clang_complete oder ein anderes Plugin?
Muru
Ja, das ist dieses Plugin.
Hippunk
Wenn Sie YCM mit dem kompilieren --clang-completer, funktioniert es dann? Ich glaube, ich benutze die Parametervervollständigung die ganze Zeit bei der Arbeit. Kann jetzt nicht überprüfen ...
eckes
Meine Gabel wurde aktualisiert und überarbeitet. Sie entspricht dem Upstream-Master. Was nicht gepflegt wird, ist dieser Zweig speziell. Ich habe diese Lösung zugunsten dessen aufgegeben, was jetzt auf dem Gabelmeister ist.
Pepper_chico