【问题标题】:Controlling CodeModel's code output formatting: putting lines between namespace declarations控制 CodeModel 的代码输出格式:在命名空间声明之间放置行
【发布时间】:2010-05-16 22:33:35
【问题描述】:

我正在用 Visual Studio 的 CodeModel 做一些实验。我尝试通过 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 {
}

谢谢

【问题讨论】:

    标签: c# visual-studio visual-studio-2010 vsx c#-code-model


    【解决方案1】:

    codeModel.AddNamespace 语句将返回一个 CodeNamespace 对象。 您可以使用您的第一个命名空间找到命名空间的 EditPoint,然后插入这样的一行。

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

    我不确定这是否会将线条放在您想要的位置,但我们的想法是获取 EditPoint,然后使用它来插入线条。

    【讨论】:

      猜你喜欢
      • 2011-07-06
      • 1970-01-01
      • 2015-04-22
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-25
      • 1970-01-01
      相关资源
      最近更新 更多