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