HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

专访 Scripted——由 VMware 发布的、用于本地开发的 JavaScript 编辑器

  • 2013-01-03
  • 本文字数:2977 字

    阅读完需:约 10 分钟

Scripted 是一款新的基于浏览器的 JavaScript 代码编辑器,它工作于本地,并且由 Node.js Web 服务器提供内容服务。该编辑器由 VMware 基于 Eclipse Orion 的编辑器组件开发。Scripted 是专为这样的开发者而创建——他们在本地开发时,希望使用的是简单、轻量级的工具,而不是非常完整的 IDE 工具。

VMware 公司 SpringSource 部门的主管工程师 Andy Clement 列举了 Scripted 的主要特性

  • 启动快速,轻量级。
  • 支持 JavaScript、HTML 和 CSS 的语法高亮。
  • 错误与警告:
    • 集成了 JSLint,可以标记 JavaScript 代码中的错误 / 警告。
    • AMD 和 CommonJS 模块解析:有一个基本的解析策略,未解析的引用将被标记为错误。
  • 内容辅助:
    • 针对 HTML 和 CSS 的基本内容辅助功能。
    • 针对 JavaScript,内容辅助功能是由一个类型推导引擎驱动的,该引擎能够感知 AMD/CommonJS 模块依赖,而且还使用了 JSDoc 注释来帮助理解代码。
  • 悬停:鼠标悬停在 JavaScript 标示符上时,会显示推断出的类型签名。
  • 导航:在标识符(该推断已被识别)上按 F8,编辑器将跳转到该标示符的声明处。该功能在模块标识符上也有效(比如在 define() 子句中)。
  • 格式化:集成了 JSbeautify。
  • 侧面板:在主编辑器的旁边可以打开一个侧面板——目前该侧面板主要用来承载副编辑器。
  • 外部命令的按键绑定:在编辑器中进行按键绑定以后,可以调用外部命令(如 less 和 mvn 等)。

在不久的将来,该团队打算改进代码辅助和导航功能,以便提供更多的操作面板来承载不同内容,如文档、搜索结果和代码预览等,还准备提供一个简单的插件系统,并支持使用 Chrome Development Tools 和 Node Inspector 进行调试。他们也正在考虑支持类似的语言,诸如 CoffeeScript 和 TypeScript 等。

InfoQ 采访了 Clement,以便更多地了解 Scripted 以及该团队下一步的计划。

InfoQ:Scripted 是基于 Eclipse Orion 开发的。为什么要从 Orion 分离出一个单独的项目呢?

我们曾经很中意 Orion 编辑器组件——Scripted 客户端就是以它为基础的。但 Orion 主要是为远程托管的工作空间或项目而设计的,本地服务模式只是一个可选项。我们发现远程项目并没有吸引所有的开发者,而且我们起初希望围绕本地服务模式设计点东西。在这种情况下,我们觉得 Orion 的服务器有点过于重量级,而且很多属性我们当时是用不到的,比如多用户支持和 Git 集成。通过 Scripted 的客户端 / 服务器架构,我们具有一定的灵活性,以便可以在将来的某个时刻将本地服务器转移到远程服务器上。

InfoQ:Scripted 和 Orion 有哪些主要区别?乍一看,我发现 Scripted 有个副编辑器,而且导航也不相同。还有什么其他重要的改变吗?

Orion 是个可扩展的工具平台。我们并不需要那样的可扩展性,相反我们提供的是一系列更为固定的组件集。Scripted 旨在成为单页面风格的应用程序,并为开发者提供与 vi、textmate 或 sublime 等工具类似的使用体验。在使用像 Git 等系统工作时,Orion 提供了专门的 UI;而 Scripted 也认识到了这一点,对某些任务来说,用户已经有一套熟悉的工具,我们不希望他们为同样的事情再学习另一套 UI。我们一直致力于代码理解(code comprehension)这一关键特性,并将持续改进。我们在构建能够理解 JavaScript 代码的类库上投入了很多精力,希望可以提供更加优秀的内容辅助功能,并且在处理代码时提供更好的导航体验。在开发者编写代码时,不管他们使用的是 AMD 还是 CommonJS 模块系统,Sripted 都能检测出来。如果模块引用无法识别,Sripted 会在编辑器中标记错误;如果从一个模块访问了另一个模块,它会根据对模块结构的理解提供适当的内容提示。它还能解析各种有效的 JSDoc,以便更好地理解参数和返回值。

你提到了侧面板,目前它用来承载副编辑器。在接下来的几个版本中,我们打算在侧面板上多花些心思。可以把它当成这样一个地方,当要在主编辑器中完成某项任务时,任何辅助内容都可以出现在这里。刚开始的时候它被用于副编辑器,不过我们计划在这里支持文档、搜索结果等面板。最理想的情况下,我们希望它不仅可以包含用户所要求的各种内容,而且还可以预先提供一些用户没有要求但 Scripted 认为会用到的内容。也许会有这样一个面板,它可以跟踪主编辑器光标的位置,并且不断更新,如果光标处是任何调用代码的话,该面板可以将被调用内容显示出来(类似于最近在 light table 中看到的某些功能)。重要的是,我们希望这个侧面板包含的是各种相关的内容——Scripted 将会努力积极的保证这一点。

InfoQ:Orion 在服务端使用的是 Jetty。为什么你们却转移到 Node.js 了呢?

我们希望服务端尽量是轻量级的,而 Orion 服务端,如你所说使用的是 Jetty,它跟我们的需求比起来要更复杂一些。我们没有必要使用 Orion 服务器,一旦做出这个决定,我们的选择就非常多了。在以前的那些工具项目中,我们常常遇到的问题就是虽然我们开发了这些工具,但是我们自己却并没有很积极的使用它们,而是简单地将它们交付给用户。我们希望通过 Scripted 改变这种状况,在日常的开发工作中我们就积极的使用它。这种情况自然而然地引导我们除了客户端,在服务端也使用 JavaScript。Node.js 也就成为后端技术的不二之选。迄今为止,运行得还不错。我们对 CommonJS 的支持工作基本上已经开发完了,因为我们需要它来简化服务端的开发工作。

InfoQ:Scripted 是在本地运行的,这就意味着来自服务器的响应也更加快速,但是它是如何跟基于 Web 的代码库进行集成并和其它开发者合作的呢?

目前它还没有跟基于 Web 的代码库或者是“服务端的工作空间”进行集成,如果你愿意这么说的话。在我们的路线图中,我们希望可以远程部署服务器,当然,这并不是该项目的初衷。我们发现开发者们目前还不想放弃在远程工作空间上进行代码操作的习惯——但是未来这种情况可能会有所改变。

InfoQ:对于 Scripted 的未来,你们有什么计划?

现在才刚刚起步。我们发布的第一个版本是 0.2 版,主要是用来收集用户的反馈。在接下来的几个版本上,我们主要的关注点仍然是围绕 JavaScript 的编辑体验:持续改进代码分析功能,提供更好的内容辅助功能。与此同时我们希望可以开始在侧面板上添加一些新的子面板,诸如搜索和文档。我们也开始准备将测试集成进来以提供更简单的方式来加载测试,查看测试输出,进一步我们还会探索将调试器也集成进来。

InfoQ: 关于 VMware 对 Scripted 的参与和计划,你有什么可以分享的吗?

Vmware 一度曾经非常积极地参与过开发工具的开发工作,其中包括 Spring 工具套件和 Groovy/Grails 工具套件。相对于为 IDE 提供插件的传统方式,作为一种对替代方式的探索,VMware 创建了 Scripted。我们认识到有些开发者希望使用轻量级编辑器,但目前这往往意味着要放弃那些能够极大提高生产效率的常见 IDE 特性(如内容辅助和重构)。Scripted 试图证明这并不是必须的。我还应该稍微提一下,Scripted 团队正在和 Orion 团队进行积极的合作,并尽可能回馈 Orion 项目。

编者注:Scripted 基于 Eclipse 公共许可证 1.0 版开放源代码,可以在GitHub 下载

查看英文原文 Interview on Scripted, A JavaScript Editor for Local Development from VMware


感谢臧秀涛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-01-03 06:173305
用户头像

发布了 31 篇内容, 共 84430 次阅读, 收获喜欢 1 次。

关注

评论

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

架构师日记-从数据库发展历程到数据结构设计探析

京东科技开发者

Tableau Desktop 2019 中文激活版 Mac数据分析工具 含激活补丁

理理

3D建模:Agisoft Metashape Professional 破解安装教程分享 Mac/win

理理

2024中国新科技100强名单出炉!MIAOYUN荣获“2024云原生领航企业奖”

MIAOYUN

云计算 云原生 科技创新 新质生产力 新科技

CCleaner pro 汉化免激活版 (全能型系统优化软件) -Mac/win

理理

Rocket Typist pro for mac(文本快速输入工具)v3.1.3激活版

理理

智源研究院发布中文互联网语料库CCI3.0 推动数据共建共享

智源研究院

阿里巴巴商品详情API返回值中的1688商品标签与关键词:深度解析与应用

代码忍者

API 测试 pinduoduo API

油猴浏览器辅助插件如何安装?Tampermonkey脚本安装教程

理理

PDF Reader Pro - PDF文档批注,编辑,签署,OCR,转换与表格填写

理理

TON生态系统开发指南:从零开始构建你的Web3应用

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 链游开发 代币开发

解锁境外旅行新姿势,四个小tips助你玩转国庆假期

最新动态

Chain Timer for mac(计时器软件)v10.4激活版

Rose

什么是自助服务门户?

ServiceDesk_Plus

IT服务 IT服务管理 自助服务

iBarcoder for Mac(条形码生成工具)v3.15.10中文激活版

Rose

Expressions for mac破解版 - 简洁优雅的正则表达式利器

理理

In-depth analysis: IPQ5332 and QCN9274 together to create a Wi-Fi 7 network solution

wifi6-yiyi

WiFi7

macOS 15 Blank OVF - macOS Sequoia 虚拟化解决方案

sysin

macos 虚拟化 sequoia ovf

Windows 10 on ARM, version 22H2 (updated Sep 2024) ARM64 AArch64 中文版、英文版下载

sysin

windows arm 10

MacOS上的触控板和鼠标增强工具:Middle

Rose

Mac OS电脑硬件信息监控软件 iStat Menus 中文版

理理

“AI+Security”系列第3期(四):360安全大模型业务实践

云起无垠

企业如何通过ETL工具实现主数据的同步

RestCloud

数据处理 ETL 主数据 企业数据

Vellum for Mac:优秀的电子书生成工具

Rose

JetBrains pycharm pro 2024最新永久激活码 pycharm2024下载安装

理理

Windows 10 version 22H2 (updated Sep 2024) 中文版、英文版下载

sysin

windows 10

Keep It for mac高效率笔记办公软件

Rose

SketchUp Pro 2024 中文版-su草图大师下载-专业的3D建模软件-Mac/win

理理

人工智能 | 手工测试用例转Web自动化测试生成

测吧(北京)科技有限公司

测试

打造数据平台:Cloudera下载安装全流程!

敏捷调度TASKCTL

hadoop cloudera 大数据运维 CDH 大数据 Hadoop

深度解析拍立淘API:揭秘卖家与店铺数据的全面掌控

代码忍者

API 测试 pinduoduo API

专访Scripted——由VMware发布的、用于本地开发的JavaScript编辑器_JavaScript_Abel Avram_InfoQ精选文章