Como configurar YouCompleteMe para linguagem C?

0

Recentemente, instalei YouCompleteMe e sou novo usuário. Eu li as instruções de instalação deste link: link . Agora, eu posso usá-lo para python e etc, mas eu não posso usá-lo para C. Eu não entendo qual é o significado desta frase do link: "forget that if you want the C-family semantic completion engine to work, you will need to provide the compilation flags for your project to YCM." Eu li o guia do usuário YCM, mas eu não pude t resolver meu problema. Tnx de quem me explica qual é o significado da sentença acima e o que eu faço?

    
por ThisIsMe 13.08.2016 / 11:52

2 respostas

0

Você precisa ter um arquivo chamado .ycm_extra_conf.py o diretório que contém o código-fonte dos projetos. Esse link é para o arquivo de exemplo fornecido com o plug-in e você precisa atualizá-lo para descrever corretamente suas opções de compilação.

Eu costumo criar um (ou mais) para um projeto e comprometê-los junto com o projeto em qualquer programa scm que eu esteja usando.

Algumas coisas para observar:

Se você está acostumado com o gcc, existem alguns sinalizadores de compilação que clang (o que o YCM está usando) não suportam.

Se você estiver compilando o código do kernel do linux (driver, etc), ele não funcionará bem, já que o clang não suporta muitas das macros de assembly fornecidas pelo gcc. Eu não estou ciente de uma solução alternativa.

Informações adicionais do desenvolvedor :

C-family Semantic Completion

YCM looks for a .ycm_extra_conf.py file in the directory of the opened file or in any directory above it in the hierarchy (recursively); when the file is found, it is loaded (only once!) as a Python module. YCM calls a FlagsForFile method in that module which should provide it with the information necessary to compile the current file. You can also provide a path to a global .ycm_extra_conf.py file, which will be used as a fallback. To prevent the execution of malicious code from a file you didn't write YCM will ask you once per .ycm_extra_conf.py if it is safe to load. This can be disabled and you can white-/blacklist files. See the Options section for more details.

See YCM's own .ycm_extra_conf.py for details on how this works. You should be able to use it as a starting point. Don't just copy/paste that file somewhere and expect things to magically work; your project needs different flags. Hint: just replace the strings in the flags variable with compilation flags necessary for your project. That should be enough for 99% of projects.

Se você modificou e adicionou esse arquivo ao seu projeto (ou forneceu um caminho para ele), não receberá a mesma mensagem de erro da pergunta original. Se você fizer isso, o YCM não poderá vê-lo - possivelmente chamado incorretamente (levando.) Ou não no nível correto na hierarquia de origem - veja o link acima.

Caso contrário, se ainda não estiver funcionando, você deverá ter uma mensagem de erro diferente; postar isso. A configuração inicial do YCM requer algum trabalho e fez algumas viagens pela primeira vez na documentação.

    
por 14.08.2016 / 07:08
0

I don't understand what's the meaning of this sentence from the link: "forget that if you want the C-family semantic completion engine to work, you will need to provide the compilation flags for your project to YCM."

Isso significa simplesmente que instad de compilação como

cd ~/.vim/bundle/YouCompleteMe ./install.py Você precisa adicionar

cd ~/.vim/bundle/YouCompleteMe ./install.py --clang-completer

Acho que as instruções de instalação são atualizadas de qualquer maneira para refletir o acima.

    
por 26.08.2017 / 21:34