Controlando a formatação de saída de código da CodEmodel: colocando linhas entre as declarações de namespace

StackOverflow https://stackoverflow.com/questions/2845752

Pergunta

Estou fazendo algumas experiências com o CodEmodel do Visual Studio. Tentei criar um arquivo com dois espaços de nome por meio do modelo de código do VS:

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

A saída desse código é:

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

Qual é quase O que estou olhando. O único problema aqui é que eu gostaria de controlar o espaçamento: ter pelo menos uma linha entre o primeiro e o segundo espaço para nome. Por acaso alguém conhece uma maneira de conseguir isso?

É isso que eu quero:

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

namespace Namespaces.SecondNamespace {
}

Obrigado

Foi útil?

Solução

A declaração codeModel.AddNamespace devolverá um objeto de codenamespace. Você pode encontrar o ponto de edição do espaço para nome usando o seu primeiro espaço para nome e, em seguida, inserir uma linha como essa.

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

Não tenho certeza se isso colocará a linha no local que você deseja, mas a idéia é obter o Edit Point e depois usá -la para inserir a linha.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top