哪个C#IDE提供最广泛的AST访问?

时间:2011-01-04 10:34:20

标签: c# visual-studio-2010 resharper monodevelop sharpdevelop

我现在正在写的学士论文的核心部分是C#IDE的插件,它提供了一些重构(它不仅仅是简单的重构,但我想暂时保持简单)。

到目前为止,我一直在使用Visual Studio。但是,我听说他们的AST访问相当不舒服。 替代方案是MonoDevelop和SharpDevelop。使用Visual Studios AST的另一种方法是通过自定义ReSharper插件访问它。

您是否有人为任何目标应用程序编写插件的经验?你怎么看?我感谢每一个建议和不满。

谢谢, TH

4 个答案:

答案 0 :(得分:2)

使用MonoDevelop或SharpDevelop的一个优点是它们是开源的,因此您可以确保完全访问AST - 如果需要,您可以进入核心并修改内容。另一个优点是它们是100%托管代码,因此更容易开发和调试。此外,您更有可能获得核心开发人员并向他们询问详细问题。

如果您对使用MonoDevelop感兴趣,我建议您直接在现有的Refactoring插件中实施重构。我们希望有更多的重构功能:)

代码库在master中经历了一些流失,因为我们切换到基于Mono C#解析器的新AST和解析器,并且还没有移植重构。我建议你去我们的邮件列表或IRC并在那里提出一些更具体的问题,所以我们可以给你一些更具体的指示。

答案 1 :(得分:1)

我相信VS 2010对使用​​MEF的插件有很好的原生支持。这是一个指南: http://msdn.microsoft.com/en-us/library/dd885242.aspx

你也可以使用Devexpress DXCore,它可以免费使用CodeRush Express。

答案 2 :(得分:1)

重构的最佳AST访问由NRefactory 5提供,完全重写之前的NRefactory版本(在SharpDevelop和MonoDevelop中都使用)。 对于SharpDevelop,我们计划在SharpDevelop 5.0中使用新的NRefactory; MonoDevelop也将最终迁移到它(MonoDevelop已经在使用新的AST,但还没有新的类型系统/语义分析)。

这次重写的主要目标是:

  • 为每个令牌提供丰富的AST和位置信息,使重构更容易编写
  • 提高语义分析性能
  • 从先前版本中消除一些糟糕的设计决策(IExpressionFinder,以及如何处理引用的程序集)

将来,您可能还想查看Microsoft的Compiler-As-A-Service。

答案 3 :(得分:0)

还要确保从http://www.jetbrains.com/resharper签出ReSharper,这是VS的插件,可以添加许多重构