la mise en forme de sortie de code de contrôle CodeModel: mettre des lignes entre les déclarations d'espace de noms
-
27-09-2019 - |
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
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.