NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

专访 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:173210
用户头像

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

关注

评论

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

Print2CAD 2024 AI(文件转换器)特别版下载

影影绰绰一往直前

Print2CAD 2024 AI下载 Print2CAD 2024 AI特别 Print2CAD 2024 AI激活

零信任嵌入式安全沙箱技术对企业转型的具体优势

Geek_2305a8

前端

Passper for Excel(文档密码解锁软件)激活版下载

影影绰绰一往直前

Passper for Excel下载 Passper for Excel激活 Passper for Excel中文

Nik Collection by DxO(照片编辑插件套件)中文版

影影绰绰一往直前

PS滤镜Nik Collection Nik Collection下载 Nik Collection插件 Nik Collection破解版

PolarDB-X V2.3 集中式和分布式一体化开源发布

阿里云数据库开源

polarDB PolarDB-X

Dash for Mac v7.1.6激活版 好用的API文档工具

晴雯哥

DxO FilmPack 7 for mac(胶片效果滤镜软件) 7.1.0永久激活版

mac

苹果mac Windows软件 DxO FilmPack 7 照片处理软件

Topaz Video AI (AI视频无损放大软件)汉化直装版

影影绰绰一往直前

Topaz Video AI下载 Topaz Video AI破解版 Topaz Video AI中文版

前端计算数字精度丢失问题解决方法记录 | 京东云技术团队

京东科技开发者

前端 企业号11月PK榜 数字精度

聊一聊 tcp/ip 在.NET故障分析的重要性

EquatorCoco

TCP TCP/IP TCP协议

可测性,到底是什么?

老张

质量保障 质量门禁

Mac14下载-macOS 14 Sonoma(苹果最新系统)14.1.1正式版,pkg安装包

晴雯哥

AutoCAD 2024 for Mac v2024.3永久中文破解版 cad设计绘图 支持intel/M2

晴雯哥

光纤的跳线和尾纤区别

小魏写代码

Codigger,你的代码安全卫士

知者如C

一文了解亚马逊云科技最新大语言模型

苏沐

大模型 亚马逊 亚马逊云科技 向量数据库

LTV预测算法从开发到上线,浅谈基于奇点云DataSimba的MLOps实践

Geek_2d6073

搜狐基金使用 MySQL 遇到瓶颈?来看 TDengine 如何解决难题

TDengine

tdengine 时序数据库 搜狐基金

DxO PureRAW (RAW图像处理软件)特别版下载

影影绰绰一往直前

DxO PureRAW下载 DxO PureRAW破解版

Sketch v99 中文破解版 最好用的矢量绘图软件

晴雯哥

Macos端强大的字体设计软件 Glyphs 3激活中文版

mac大玩家j

Mac软件 字体设计 设计字体 字体设计工具

流式数据库引擎备受关注,亚信安慧AntDB数据库受邀参加“2023中国PostgreSQL数据库生态大会”

亚信AntDB数据库

AntDB AntDB数据库

Cockos REAPER(音频录制编辑软件)特别版下载

影影绰绰一往直前

Cockos REAPER Cockos REAPER下载

在Javascript中为什么 0.1+0.2 不等于0.3 ? 源代码详细解析

互联网工科生

JavaScript

支持企业微信集成和登录!镭速传输新版本带来多项升级

镭速

镭速

Macos端音频标签编辑器 Mp3tag激活中文版最新

胖墩儿不胖y

Mac软件 音频标签编辑器

Adobe Camera Raw 16(RAW处理工具)官方版下载

影影绰绰一往直前

Adobe Camera Raw下载 Adobe Camera Raw中文 Adobe Camera Raw破解 RAW处理工具

DxO PureRAW for mac(raw照片智能处理工具) 3.7.0激活直装版

mac

windows 苹果mac DxO PureRAW raw智能照片处理工具

孵化Web3区块链技术系统开发

l8l259l3365

“PO价值最大化”沙盘演练 · 上海 · 第二期

ShineScrum捷行

大模型训练中的超参数优化策略

百度开发者中心

深度学习 大模型 #人工智能

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