Управление форматированием выходного кода CodeModel:ввод строк между объявлениями пространства имен
-
27-09-2019 - |
Вопрос
Я провожу несколько экспериментов с 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 {
}
Спасибо
Решение
Заявление codeModel.AddNamespace
вернет вам объект с кодовым именем.вы можете найти точку редактирования пространства имен, используя ваше первое пространство имен, а затем вставить строку, подобную этой.
CodeNamespace yournamespace = codeModel.AddNamespace(....);
EditPoint2 endEditPoint = yournamespace.GetEndPoint(vsCMPart.vsCMPartWhole).CreateEditPoint();
endEditPoint.InsertNewLine(1);
Я не уверен, поместит ли это строку в нужное вам место, но идея состоит в том, чтобы получить точку редактирования, а затем использовать ее для вставки строки.