Изначально использую neocomplete всё отлично пока не юзаю omni, такая конструкция
struct foo
{
int x;
int y;
};
struct foo bar = {1,2};
bar.<c-x><c-o>
Ладно, ставлю для комплита с/с++ vim-clang всё отлично и вроде не конфликтует с neocomlete, но я непойму вот чё
Допустим ситуация такая
#include <SDL2/SDL.h>
void main()
{
SDL_In //всё я жду всплытия с SDL_Init(Uint32 flags) f int
//а его нету ((( пока не протыкаешь <c-n><c-o>
}
Я пока ещё слабо дружу с vim в общем так и не понял как сделать так что бы при подключении хидера из него получать функции
к слову если кто-то осилил neocomplate для С то тоже скажу толстое и пушистое спасибо за инфу ::)
vimrc лежит тут
P.S. Да гуглил я гуглил.
UPDATE: Решено! Короче дело к ночи я слепой и не увидел в :h clang-faq
Q: How to complete head files ?
A: Please use with neocomplete, they can work well together.
" disable auto completion for vim-clang
let g:clang_auto = 0
" default 'longest' can not work with neocomplete
let g:clang_c_completeopt = 'menuone,preview'
let g:clang_cpp_completeopt = 'menuone,preview'
" use neocomplete
" input patterns
if !exists('g:neocomplete#force_omni_input_patterns')
let g:neocomplete#force_omni_input_patterns = {}
endif
" for c and c++
let g:neocomplete#force_omni_input_patterns.c =
\ '[^.[:digit:] *\t]\%(\.\|->\)\w*'
let g:neocomplete#force_omni_input_patterns.cpp =
\ '[^.[:digit:] *\t]\%(\.\|->\)\w*\|\h\w*::\w*'
В общем omni комплит работает neoinclude работает, пока что тьфу тьфу всё отлично, ждёмс когда на neovim подрубят наконец то if_lua и можно будет переехать и по хипстерски гонять терминал в виме :D
P.P.S Но я всё же одного не понял, вот vim-clang бекенд для neocomplete да? А как neocomplate обрабатывает omnifunc ClangComplate? И вот ещё на счёт паттернов,, нахрена они? Если всё делет vim-clang, а neocomlete только выводит варианты комплита? Я смотрел исходники плагинов, но пока слабо понимаю как оно работает.