Прошло много времени, но я отвечу, чтобы помочь будущим посетителям.
Я не до конца понимаю ваши вопросы, но я отвечу на третий.Clang complete запускает автоматическое предложение / завершение только при написании '.', '->' или '::', но вы можете запустить его вручную.
Я использую его таким образом.В этом источнике:
#include <iostream>
using namespace std;
void ExampleFunc (float foo, int &bar)
{
cout << foo;
bar++;
}
int main (int argc, char **argv)
{
int a(0);
Exa[cursor here]
return 0;
}
При написании «Exa» вы можете нажать <C-X><C-U>
, и вы получите окно предварительного просмотра с:
Example (float foo, int &bar)
и окном завершения (то же самое, что появляетсякогда вы нажимаете <C-N>
(CTRL-N) в режиме вставки) с помощью:
Example f void Example(float foo, int &bar)
Если есть несколько совпадений, вы можете перейти вниз или вверх с помощью <C-N>
или <C-P>
и дополнить <CR>
(введите).
Завершение не является идеальным, но оно должно работать во многих других случаях, например (как вы упомянули) шаблоны:
#include <vector>
using namespace std;
int main (int argc, char **argv)
{
struct MyType {int asdf; float qwer;};
vector<MyType> vec;
ve // suggestions after <C-X><C-U>:
// "vec v vector<MyType> vec" v is for variable
// "vector p vector<Typename _Tp>" p is for pattern (template)
// constructors with its parameters, etc.
vec. // auto-fired suggestions: all std::vector methods
vec[0]. // auto-fired suggestions: "asdf", "qwer" and MyType methods
return 0;
}
Если эти примеры неэто не работает для вас, вы не установили плагин должным образом.
Кстати, вы можете сопоставить <C-X><C-U>
с другими ярлыками.