Eclipse CDT 的额外重构
Posted
技术标签:
【中文标题】Eclipse CDT 的额外重构【英文标题】:Additional Refactoring for Eclipse CDT 【发布时间】:2011-10-13 13:16:55 【问题描述】:是否有任何方法可以配置,或者是否有任何 3rd 方插件可用于 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 不兼容。我非常愿意为一个好的 3rd 方插件付费(它只需要在 Eclipse 中支持 C++)。
【问题讨论】:
采摘看起来很苗条。见***.com/questions/1388469/… 感谢 Ira 的输入。我没有在 SO 上看到该帖子,但它似乎包含我在其他地方找到的相同信息。我想我希望在过去的两年里情况发生了变化。希望 - 不期待。我已经习惯了 Visual Studio 2010 + CodeRush,这次过渡到 Eclipse CDT 是相当痛苦的。 【参考方案1】:Eclipse CDT 中的大多数重构功能都是由在瑞士拉珀斯维尔的 HSR Hochschule für Technik 工作和学习的人开发的。有学生致力于新的重构和增强功能。经过审核后,它们将被整合到官方 CDT 中。
有关正在进行的开发的更多信息,请联系该项目的负责人Peter Sommerlad at the IFS。
除了这个项目,我认为 CDT 平台上没有其他插件/扩展。
【讨论】:
感谢该链接冲浪者。我相信这些重构都包含在我的 Eclipse/CDT 发行版中。它们在工作时很好,但是当我们的代码库增长到很大时,它们中的大多数都停止了工作。我们只剩下重命名功能正常了,有时甚至会失败。【参考方案2】:我也想念额外的功能,但我想,它们目前不能作为 eclipse 插件使用:至少我没有找到任何东西,除了 announcements。 C++ 很难解析。
【讨论】:
虽然 C++ 确实相对难以解析,但这不是问题;那里有解析器可以很好地做到这一点(包括我们的)。困难的是对代码进行分析以确定应该如何完成重构,是否合法,以及实际转换代码。在过去的 6 个月里,我的一个团队已经让“重命名”在面对人们可以做的所有类型的重命名以及可能导致的冲突(尤其是隐藏以前可见的名称)时正常工作。它的重构本身和支撑机制是艰难的。【参考方案3】:有没有办法配置或者有没有第三方插件 可用于 Eclipse CDT(任何版本),它提供了一组丰富的 重构?
当然,这是可能的。例如: http://www.eclipse.org/articles/article.php?file=Article-Unleashing-the-Power-of-Refactoring/index.html
至于准确找到您正在寻找的东西(商业或开源软件) - 并为 Eclipse 找到它(而不是简单地购买不同的 IDE) - 嗯,那是“不确定的”。例如,我在工作中大量使用 Embarcadero Delphi。它的重构功能围绕 Visual Studio 运行 RINGS。反过来,Visual Studio 也比默认的 Eclipse 好得多。但是,嘿-我尽可能使用“vi”和makefile,所以没什么大不了的。
建议: 试试主要供应商的 C++ 编译器的 eval 版本,看看它会把你带到哪里。两个建议:
英特尔 http://software.intel.com/en-us/articles/intel-compilers/
IBM http://www.ibm.com/developerworks/downloads/
【讨论】:
感谢您花时间回答这个问题,但答案并未解决问题。您链接的文章是关于 Eclipse for Java 中可用的重构功能,而不是 Eclipse CDT。出于商业原因,切换开发环境不是一种选择(客户在 eclipse 插件上投入了大量资金,获得更好的重构能力并不是失去这些投资的充分理由)。以上是关于Eclipse CDT 的额外重构的主要内容,如果未能解决你的问题,请参考以下文章