Рассмотрим этот исходный фрагмент:
class Z
{
public:
Z(int){}
void foo() {}
};
Это работает как задумано:
int main()
{
Z a(1);
a. // <- at this point, a list of functions appears in a menu
Это не работает вообще:
Z b // <- at this point, nothing happens if I press <Tab> or C-X C-U
// except a "pattern not found" message
Z b( // <- same here
Но это делает:
Z b = Z // a list of constructors appears in a menu when <Tab> is pressed
Можно ли настроить clang_complete так, чтобы завершение конструктора работало в обоих случаях?
Это clang
(а также libclang
) вопрос, а не плагин Vim clang_complete
вопрос.
clang
сейчас находится в активной стадии разработки AFAIK, поэтому вы можете отправить отчет об ошибке на http://llvm.org/bugs . Но я сам подал несколько ошибок, связанных с завершением кода, более месяца назад (например, этот) но они все еще не решены.
Когда мне нужно получить список доступных конструкторов, я пишу код, похожий на ваш Z b = Z
, выберите конструктор, а затем конвертировать Z b = Z
что-то, что мне действительно нужно. Не очень хорошо, но лучше, чем ничего.
Других решений пока нет …