рассмотрите этот простой код:
#include <vector>
#include <string>
using namespace std;
vector<string> vec1;
//vec1. //completion does not work AND break the completion that used to work if left without semicolon.
int main(){
vector<string> vec2;
vec2.push_back("sometext"); //completion works
vec1.push_back("sometext"); //works here too
return 0;
}
Когда я набираю "vec2". или "vec1." Мне представили выпадающий список всех методов строкового типа сразу после того, как я набрал точку. Так что здесь работает.
Вот как это становится странным:
1) Когда я делаю "vec1". в глобальной области видимости перед главной мне представлены неправильные опции в выпадающем меню (пространство имен, использование, asm, typedef, использование, static_assert, extern и т. д.). И он вообще не может найти «push_back» («Заданное пользователем завершение (^ U ^ P ^ N) Шаблон не найден)
2) Теперь, если я оставлю эту строку незавершенной и забуду поставить точку с запятой, то у меня не будет правильного автозаполнения внутри main (), как я делал раньше!
Только плагины, которые я запускаю, это clang_complete и supertab. Я пробовал без супертэба и с различными настройками _vimrc и .clang_complete безрезультатно. Я на win7, llvm / libclang с официального сайта.
Это нормально, что это так глючит?