EnvDTE в c #: как добавить параметры в сгенерированную функцию c ++? - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь сгенерировать функцию с параметрами.Добавление заголовка функции и тела работает нормально, но когда я пытаюсь добавить параметры, я получаю исключение, которое мне не удалось решить.

func.AddParameter("num", "int");

Я получаю исключение:

Не удалось вернуть новый элемент кода.Возможно синтаксическая ошибка.Имя нового элемента: num

Вот как я сгенерировал заголовок и тело функции:

VCCodeFunction func = (VCCodeFunction)(((VCFileCodeModel)(file.FileCodeModel)).AddFunction("testfunc", vsCMFunction.vsCMFunctionFunction, "testClass2"));
func.BodyText = "for(int i=0; i < 5; ++i){}\n return 1;";

Это создает:

testClass2 testfunc()
{
    for (int i = 0; i < 5; i++) {}
    return 1;
}

как временное решениеЯ обошёл проблему, вручную добавив параметры на один символ слева от того места, где начинается тело (или в скобках)

var tp = func.GetStartPoint(vsCMPart.vsCMPartBodyWithDelimiter);
var ep = tp.CreateEditPoint();
ep.CharLeft();
ep.Insert("int num");

, но я чувствую, что это плохая практика.что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...