BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Scala IDE 2.0增加重构支持

| 作者 Alex Blewitt 关注 4 他的粉丝 ,译者 郭晓刚 关注 0 他的粉丝 发布于 2012年1月18日. 估计阅读时间: 7 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Scala IDE赶在年底发布了2.0版Scala IDE项目最初由Miles Sabin创立,后与Typesafe携手,造就了一个达到产品级质量的Scala开发环境。

Scala IDE 2.0版是与1.x版并行的版本,它对底层的Scala编译器做了改动以完善IDE自身的代码提示和代码展开功能。2.0版在正式发布之前,经历了2011年全年一系列beta测试,成功将Scala环境带到Eclipse 3.6平台,这个版本也可以在Eclipse 3.7上使用,但因为尚有一些小问题需要解决,暂时没有列为正式支持。

2.0版的新特性有:代码补全(包括implicits展开)、鼠标悬停显示推断类型、智能重编译项目依赖项、集成Maven等现有工具。Scala IDE将开发环境与Eclipse本身的Java调试器集成在一起,让Java开发者也能轻松地接受和运用Scala语言。

自从项目搬迁到GitHub,已经有22次fork,并且收到若干pull请求。从中可以看出,搬迁到GitHub的确收到了鼓励社区贡献的效果。

InfoQ采访了Scala IDE的项目领导人Iulian Dragos,首先请教他1.0版和2.0版有哪些重要区别:

Iulian Dragos: 从用户的角度来说,可靠性和响应能力提高了。我们从头到脚翻新了编辑器和产生语法表示的编译器之间的交互,保证编辑器绝不会因为等待操作完成而陷入无响应状态。本次发布的亮点还有代码补全、代码内超链接和边打字边报告错误的功能。

我们还完成了新的项目构建器,支持构建存在依赖关系的多个项目(基于Sbt依赖跟踪引擎)。我敢说这个版本可以让你在任何规模的项目里面运用Scala语言。这个IDE本身就是用它自己来开发的,Scala团队也用这个IDE来开发Scala编译器(项目规模超过110 kLOC)。

InfoQ:Scala IDE怎样跟自动化构建工具配合,比如SBT或者Maven?

Iulian Dragos: Sbt和Maven都有相应的插件可以导入Eclipse项目定义。你只需要在Eclipse工作空间里面导入需要的项目就可以了,没有别的额外步骤。

InfoQ:新版支持哪些重构和Quick Fix功能?

Iulian Dragos:2.0版确实在重构支持方面进步了很多,这要感谢Mirko Stocker的贡献。现在支持的重构操作有 Extract/Inline Local、Extract Method、Rename、Organize Imports。还有一项Quick Fix功能,是从classpath查找类然后补全import条目。

InfoQ:是否允许Scala项目依赖于Java项目?反过来又行不行?可不可以在一个项目里混用Java和Scala代码?

Iulian Dragos:支持以上所有组合。

InfoQ:Scala IDE未来的路线图怎么样?

Iulian Dragos:Typesafe的IDE团队正在规划这个路线图,我们希望先和社区一起讨论。所以现在我不能确切地说将来会是什么样子,要看讨论的结果而定。

我们的项目跟任何开源项目一样,大家可以自主地插一脚进来,做出优秀的特性,然后我们将之纳入项目。其实现在已经接收到一些非常优秀的贡献,例如“Implicit高亮”特性,我还知道Matt Russell正在开发语义高亮功能(即根据标识符的种类如class/trait/val/var,分别赋予不同的显示样式)。“Implicit高亮”功能已经进入了2.1版的每日构建版本。

在开发团队这边,下面有几个重点方向,一是改进Scala调试器(当前开发者只能用Java调试器来调试Scala代码),二是提供更清爽的API给其他插件的开发者在Scala代码结构上实现各种操作(例如实现测试框架的运行器),还有就是代码搜索(如用于查找引用)。我们还计划为Scala interpreter设计更好的用户界面,因为有很多用户提出了这样的要求。

InfoQ:为什么Scala IDE分成两个版本?

Iulian Dragos: Scala IDE依赖Scala编译器去完成所有的语义操作。举例来说,你输入的时候,错误的地方会被红色下划线标出来。为了让显示的结果和项目编译的结果一致,我们要在编辑器背后使用同样的编译器。所以,如果你的项目采用Scala 2.8,那就必须用对应2.8的插件。因为并不存在一个编译器开关让2.9编译器以2.8兼容模式工作,所以,我们只好在插件里分别放入2.8或者2.9的编译器,分成两个版本。

InfoQ:你们有没有一套贡献者协议书,让其他人也能向项目提交补丁?

Iulian Dragos:有的。我们用的是Scala许可,贡献者协议也和Scala项目相同。我们尽量让大家更容易参与进来,我非常乐于看到越来越多人贡献力量。在2.0版发布之前,我们花了很多时间去整理开发文档,大家可以参考开发文档里面的“能做些什么”页面,我们无任欢迎!

读者现在就可以去下载Scala IDE。因为IDE分为两个版本(各自对应一个版本的Scala),所以有两个update site。你可以可以任选一个来安装,但是不可以同时安装在一个Eclipse实例里面。

您对这次的新版Scala IDE有何看法?

查看英文原文:Scala IDE 2.0 Adds Refactoring Support

 

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT