Чому параметри параметри функцій YouCompleteMe не виконуються?


10

Я хотів би використати YouCompleteMe з семантичним завершенням C ++, але після годин спроб я не можу знайти, чому це не працює, як очікувалося.

Здається, все працює, але я не можу виконати параметри функції.

Я запускаю Vim на Archlinux (термінал Gnome на Openbox):

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

Я встановив YCM, дотримуючись інструкцій (із підтримкою install.pyскрипту та кланг). Я також спробував з пакетом AUR YCM і отримав ту саму проблему.

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

Ось що з’являється на екрані при спробі завершення: Випуск YCM

Я використовував YCM-генератор для .ycm_extra_conf.py.

Мені просто не вистачає чогось дурного через мою відсутність знань Vim? Здається, це щось на кшталт поганого відображення ярликів клавіатури ... але не можу зрозуміти, що трапилося саме так. Це мій .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

Спасибі за вашу допомогу!

Відповіді:


8

Нарешті знайшов! Виконання параметрів не є частиною поведінки YCM. Дивіться цю проблему YCM .

Тут є стара вилка з oblitum, яка може надати цю функцію. Ось що мене ввело в оману.

На жаль, ця частина вилки здається не збереженою, і після кількох спроб я не зміг змусити її працювати.

Отже, я спробував, clang_completerякий функцію заповнення параметрів я шукав.


1
Це clang_completerбуде github.com/Rip-Rip/clang_complete чи інший плагін?
муру

Так, ось цей плагін.
хіппунк

Якщо ви компілюєте YCM з --clang-completer, чи працює він? Я думаю, що я весь час використовую завершення роботи на роботі. Неможливо перевірити зараз ...
eckes

мій вилок був оновлений і відновлений, він знаходиться нарівні з майстром вище. Те, що не підтримується, це галузь конкретно, я відмовився від цього рішення на користь того, що зараз є майстром Fork.
pepper_chico
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.