Eclipse CDT 的额外重构

34

有没有任何方法可以配置或者有没有第三方插件可用于Eclipse CDT(任何版本),提供丰富的重构功能?我的重构菜单在Eclipse Indigo CDT中只提供以下内容:

  • 重命名
  • 提取常量
  • 提取本地变量
  • 提取函数
  • 切换函数定义
  • 隐藏方法...

我正在寻找与Java重构相同的丰富性。

http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.jdt.doc.user/concepts/concept-refactoring.htm

或者类似于DevExpress Refactor Pro提供的功能:

http://www.devexpress.com/Products/Visual_Studio_Add-in/Refactoring/

注意,DevExpress插件与Eclipse不兼容。我非常愿意为一个好的第三方插件付费(它只需要支持Eclipse中的C++)。

1
选择似乎很少。请参见https://dev59.com/X3M_5IYBdhLWcg3waSb9 - Ira Baxter
2
谢谢你的建议,Ira。我之前没有看到SO上的那篇文章,但它似乎包含了我在其他地方找到的相同信息。我想我希望在过去两年中这个领域已经有所改变。希望而不是期望。我习惯于使用Visual Studio 2010 + CodeRush,这次转换到Eclipse CDT非常痛苦。 - PatrickV
3个回答

3
大部分Eclipse CDT中的重构功能都是由在瑞士拉珀斯维尔技术大学(HSR Hochschule für Technik)工作和学习的人开发的。有学生在进行新的重构和增强功能的开发。经过审核后,它们将被集成到官方CDT中。
欲了解正在进行的开发更多信息,请与该项目的负责人Peter Sommerlad at the IFS联系。
除了这个项目外,我认为在CDT平台上没有其他插件/扩展。

1
感谢你提供的链接,surffan。我相信这些重构都包含在我的Eclipse/CDT发行版中。当它们起作用时,它们很好用,但是当我们的代码库变得越来越大时,它们中的大部分都停止工作了。我们只剩下重命名功能是可用的,即使它有时也会失败。 - PatrickV

1

我也想要额外的功能,但我猜它们目前作为Eclipse插件不可用:至少我没有找到除了公告之外的任何插件。 C++很难解析。


4
虽然C++相对来说不容易解析,但这并不是问题;市面上有一些可以很好地解析它的解析器(包括我们自己的)。难点在于分析代码以确定如何进行重构、是否合法以及实际转换代码。我的团队中有一位成员花了最近6个月的时间来确保“重命名”在面对各种重命名类型及可能导致冲突的情况下都能正常工作(尤其是覆盖先前可见名称的影子变量)。重构本身和支持该过程的机制才是棘手的地方。 - Ira Baxter

-2
有没有办法配置或者有没有第三方插件可以为Eclipse CDT(任何版本)提供丰富的重构集合?
当然,这是可能的。例如:http://www.eclipse.org/articles/article.php?file=Article-Unleashing-the-Power-of-Refactoring/index.html 至于找到你要找的东西(无论是商业软件还是开源软件),并在Eclipse中找到它(而不是简单地购买另一个IDE),那就有点棘手了。例如,我在工作中经常使用Embarcadero Delphi。它的重构能力远远超过Visual Studio。而Visual Studio又比默认的Eclipse好得多。但是嘿,我尽可能地使用“vi”和makefile,所以这没什么大不了的。
建议: 尝试一下主要供应商的C++编译器的评估版本,看看它能带给你什么。两个建议:

5
感谢您抽出时间回答问题,但是您的回答并未解决问题。您提供的文章介绍了Eclipse Java的重新编排能力,而非Eclipse CDT。由于客户已经在Eclipse插件上投入了大量资金,因此更换开发环境并不是一个选项。失去这些投资来获得更好的重构能力并不足够充分的理由。 - PatrickV

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接