Управление форматированием вывода кода CodeModel: размещение строк между объявлениями пространства имен - PullRequest
1 голос
/ 17 мая 2010

Я провожу некоторые эксперименты с CodeModel в Visual Studio. Я попытался создать файл с двумя пространствами имен через модель кода VS:

CodeModel codeModel = projItem.ContainingProject.CodeModel;
codeModel.AddNamespace("Namespaces.FirstNamespace", "namespacestest.cs");
codeModel.AddNamespace("Namespaces.SecondNamespace", "namespacestest.cs");

вывод такого кода:

//file namespacestest.cs
namespace Namespaces.FirstNamespace {
}
namespace Namespaces.SecondNamespace {
}

Что почти , что я ищу. Единственный улов здесь в том, что я хотел бы контролировать интервал: иметь хотя бы одну линию между первым и вторым пространством имен. Кто-нибудь случайно знает способ достижения этого?

Вот что я хочу:

//file namespacestest.cs
namespace Namespaces.FirstNamespace {
}

namespace Namespaces.SecondNamespace {
}

Спасибо

1 Ответ

1 голос
/ 17 мая 2010

Оператор codeModel.AddNamespace вернет вам объект CodeNamespace. вы можете найти EditPoint для пространства имен, используя ваше первое пространство имен, а затем вставить строку, подобную этой.

CodeNamespace yournamespace = codeModel.AddNamespace(....);
EditPoint2 endEditPoint = yournamespace.GetEndPoint(vsCMPart.vsCMPartWhole).CreateEditPoint();
endEditPoint.InsertNewLine(1);

Я не уверен, поместит ли это строку в нужное место, но идея в том, чтобы получить EditPoint, а затем использовать его для вставки строки.

...