最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

Scala IDE 2.0 增加重构支持

  • 2012-01-17
  • 本文字数:1984 字

    阅读完需:约 7 分钟

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

2012-01-17 07:333509
用户头像

发布了 225 篇内容, 共 60.9 次阅读, 收获喜欢 50 次。

关注

评论

发布
暂无评论
发现更多内容

操作系统——计算机硬件简介

思想者杰克

阿里云视频云,用技术普惠打造平民化“虚拟人”

阿里云视频云

人工智能 阿里云 视频云 数字人 虚拟人

不敢想,做个博客竟如此简单!

程序员鱼皮

博客

CRM WebClient UI的浏览器打印实现

Jerry Wang

JavaScript CRM SAP UI5 JavaScript图表库 11月日更

百度智能云与雅量商业智能携手,加速零售行业智能化升级

百度开发者中心

百度智能云 零售行业

万字长文解密数据异构最佳实践(含完整代码实现)!!

冰河

MySQL 数据库 canal 数据同步 数据异构

前后端、多语言、跨云部署,全链路追踪到底有多难?

阿里巴巴中间件

阿里云 云原生 中间件 全链路追踪

行业白皮书发布!百度智慧城市助力城市“双碳”目标达成

百度开发者中心

人工智能 智慧城市

Bash 脚本简介

码语者

bash Shell

GitHub远程免密连接详解,还顺手解决了RPC失败HTTP413

老表

GitHub RPC HTTP 11月日更

ReplacingMergeTree:实现Clickhouse数据更新

华为云开发者联盟

数据 事务 Clickhouse 数据更新 OLAP数据库

接口文档工具yapi的安装

小鲍侃java

11月日更

linux lsquic 编译

webrtc developer

科技热点周刊|ClickHouse 融资 2.5 亿美元、个人信息保护法正式实施、Facebook 改名 Meta

青云技术社区

云计算 facebook 云原生

Github上线仅六天,收获Star超55K+,这套笔记能拿下90%以上面试

Java redis spring 程序员 架构

科大讯飞联袂伯俊科技进军3C零售,构建发展新格局

科技热闻

Hexo个人博客快速部署到Gitee&Coding详细教程

老表

Hexo gitee CODING 博客配置 11月日更

端开发技术——5个高效的Flutter开发工具

思想者杰克

2021年10月云主机性能评测报告

博睿数据

SAP CRM和C4C的内容管理(Content Management)

Jerry Wang

内容 CRM C4C 11月日更

百度智能云人脸采集SDK通过CFCA权威安全测评

百度开发者中心

安全 sdk

牛掰!“基础-中级-高级”Java程序员面试集结,看完献出我的膝盖

Java spring 程序员 JVM hashmap

杂谈—程序人生第一份工作

思想者杰克

程序人生 新手指南 程序

常用的Nmap脚本及使用实例

喀拉峻

网络安全 信息安全 渗透测试 脚本 nmap

极客时间【架构实战营】第二期 模块七作业

Geek_91606e

架构实战营

TDengine在浙商银行微服务监控中的实践

TDengine

tdengine 后端 时序数据库

【高并发】开篇:线程与多线程

冰河

Java 并发编程 多线程 高并发 异步编程

架构实战营-总结

哈希

RadonDB ClickHouse on K8s 2.1.0 发布!

RadonDB

数据库 Kubernetes Clickhouse RadonDB

杂谈——程序人生我的大学

思想者杰克

看完这篇SpringBoot让我在阿里成功涨薪40%,感谢

Java 编程 程序员 程序人生 springboot

Scala IDE 2.0增加重构支持_Java_Alex Blewitt_InfoQ精选文章