la mise en forme de sortie de code de contrôle CodeModel: mettre des lignes entre les déclarations d'espace de noms

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

Question

Je fais des expériences avec CodeModel de Visual Studio. J'ai essayé de créer un fichier avec deux espaces de noms là-bas par le code de VS Modèle:

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

la sortie d'un tel code est le suivant:

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

Ce qui est presque ce que je cherche. Le seul hic est que je voudrais contrôler l'espacement: ayant au moins une ligne entre le premier et le second espace de noms. Est-ce que par hasard quelqu'un sait d'une façon d'y parvenir?

Voici ce que je veux:

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

namespace Namespaces.SecondNamespace {
}

Merci

Était-ce utile?

La solution

La déclaration codeModel.AddNamespace vous renvoie un objet de CodeNamespace. vous pouvez trouver le EditPoint de l'espace de noms à l'aide du premier votre espace de noms, puis insérer une ligne comme celui-ci.

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

Je ne suis pas sûr que cela a mis la ligne à l'endroit que vous voulez, mais l'idée est d'obtenir le EditPoint puis l'utiliser pour insérer la ligne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top