Я пытаюсь заставить YCM работать в Vim для разработки на C++. Я использую структуру JUCE. Ctags и автозаполнение работают отлично. Тем не менее, я получаю много неправильных ошибок, которые появляются в «канаве» как красные стрелки.Неверные ошибки YouCompleteMe и C++
E.g.
no matching member function for call to 'addAndMakeVisible'
когда addAndMakeVisible
является функцией унаследованного класса Component
и даже приходит в автозаполнения.
получает также много ошибок, как следующее:
cannot initialize object parameter of type 'juce::Component' with an expression of type 'MyComponent'
Мои .ycm_extra_conf.py
: https://gist.github.com/adamski/a793a24b026f68a1074e Я добавляю библиотеки Джюсов с абсолютным путем, а также локальной версией проекта и скопированное предложением из примера @ladislas.
Выход: YCMDebugInfo https://gist.github.com/adamski/2e7dd79b45d0fb6f5010#file-ycmdebuginfo
Текущий выход: YCMDiags https://gist.github.com/adamski/8fad8e0724a03854912b
пример хранилищу, воссоздает проблему: https://github.com/adamski/juce-chapter02-07
Мои .vimrc
выглядит:
"" YouCompleteMe options
"
let g:ycm_register_as_syntastic_checker = 0 "default 1
"let g:Show_diagnostics_ui = 1 "default 1
"
""will put icons in Vim's gutter on lines that have a diagnostic set.
"Turning this off will also turn off the YcmErrorLine and YcmWarningLine
""highlighting
set tags=./tags,tags;
set autochdir
let g:ycm_enable_diagnostic_signs = 1
let g:ycm_enable_diagnostic_highlighting = 1
let g:ycm_always_populate_location_list = 1 "default 0
let g:ycm_open_loclist_on_ycm_diags = 1 "default 1
let g:ycm_seed_identifiers_with_syntax = 1
let g:ycm_complete_in_strings = 1 "default 1
let g:ycm_collect_identifiers_from_tags_files = 1 "default 0
let g:ycm_path_to_python_interpreter = '' "default ''
let g:ycm_server_use_vim_stdout = 0 "default 0 (logging to console)
let g:ycm_server_log_level = 'info' "default info
let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py' "where to search for .ycm_extra_conf.py if not found
let g:ycm_confirm_extra_conf = 1
let g:ycm_goto_buffer_command = 'same-buffer' "[ 'same-buffer', 'horizontal-split', 'vertical-split', 'new-tab' ]
let g:ycm_filetype_whitelist = { '*': 1 }
let g:ycm_key_invoke_completion = '<C-Space>'
nnoremap <F11> :YcmForceCompileAndDiagnostics <CR>
.... И где ваш '.ycm_extra_conf.py'? Но, честно говоря, если это не что-то тривиальное, мы, вероятно, не сможем помочь, поскольку каждый '.ycm_extra_conf.py' должен быть адаптирован к проекту, над которым вы работаете, поскольку вам нужно передать все флаги компиляции в YouCompleteMe (особенно' - I' для включений) – FDinoff
ОК, я буду изучать его дальше, я использую по умолчанию '.ycm_extra_conf.py', очевидно, нужно проверить флаги компиляции. Я использую XCode, поэтому, возможно, я могу найти флаги в настройках там , – Adamski
Файл '.ycm_extra_conf.py' по умолчанию отсутствует. Существует только тот, который используется для исходного кода YouCompleteMe, который есть в качестве примера. Он не предназначен для работы над проектом каждого. – FDinoff