Andy Clement, a staff engineer in the SpringSource division of VMware, has outlined Scripted’s main features:
- Fast startup, lightweight.
- Errors and warnings:
- AMD and CommonJS module resolution: there is basic resolution where unresolved references will be marked as errors.
- Content assist:
- Basic content assist for HTML, CSS
- Navigation: press F8 on an identifier (that the inferencer has recognized) and the editor will navigate to the declaration. This also works on module identifiers (e.g. in define() clauses)
- Formatting: JSbeautify is integrated
- Sidepanel: alongside the main editor a side panel can be opened – currently this can be used to host a second editor.
- Key binding to external command: Key bindings in the editor can invoke external commands (less, mvn, etc)
For the near future the team intends to build better code assist and navigation, to provide more panels that could host various content such as documentation, search results, code preview, etc., a simple plug-in system, and debugging with Chrome Development Tools and Node Inspector. They are also considering adding support for similar languages such as CoffeeScript and TypeScript.
InfoQ has interviewed Clement to find out more about Scripted and the team’s plans for it.
InfoQ: Scripted is based on Eclipse Orion. Why a separate project from Orion?
We loved the Orion editor component - it serves as the basis for the client side of Scripted. But Orion is mainly designed for remote hosted workspaces/projects, with an option for local server mode. We found remote projects didn’t appeal to all developers and wanted to design something initially around a local server mode. In this configuration we felt the Orion server was a bit heavyweight and had features we didn't need at the moment, like the multiple user support and git integration. In keeping a client/server structure for Scripted we have the flexibility to move that local server to a remote location as some point in the future.
InfoQ: What are some of the main differences between Scripted and Orion? I noticed at a first glance that yours has a Subeditor and the Navigator is different. Other notable changes?
You mentioned the side panel where we currently host the sub-editor. We plan to do a lot more with that side panel over the next few releases. Think of it as a place where any support material might go for the task you are trying to achieve in the main editor. So initially it is being used for a second editor but there are plans for panes that hold documentation, search results, etc. Ideally we want it to contain not only material that you have asked for but perhaps preemptively show you material that you haven't asked for but which Scripted has determined would be useful. Perhaps there is a pane that follows the cursor position in the main editor and continuously updates to show the code for the destination of any call being made at that cursor position (this is similar to something seen recently in light table). Importantly we want the side panel to contain relevant content - and Scripted will actively try to ensure that.
InfoQ: Orion uses Jetty on the server. Why have you switched to Node.js?
InfoQ: Scripted runs locally which means faster responses from the server, but how does it integrate with a web based repository shared with other developers?
At the moment, it doesn't integrate with web based repositories or 'server side' workspaces if you will. On our roadmap will be to make the server deployable remotely, of course, but it isn't the initial goal of the project. We found that developers did not want to give up their code to a remote workspace at the moment - but that may change in the future.
InfoQ: What plans do you have for Scripted's future?
InfoQ: What can you share on VMware's involvement and plans regarding Scripted?
VMware has been actively involved in developer tooling for a while, with both the Spring Tool Suite and Groovy/Grails Tool Suite. VMware created Scripted as an attempt to explore an alternative to the traditional approach of providing plugins for an IDE. We are recognizing that some developers want to use lightweight editors but right now that tends to mean giving up the usual IDE features that greatly improve productivity like content assist and refactoring. Scripted is attempting to prove that doesn't have to be the case. I should also mention the Scripted team is actively working with the Orion team and contributing enhancements back where possible.