Orion 2.0 M2 – New and Noteworthy

This Orion milestone saw some major structural changes under the covers of Orion. The Orion browser client had a major refactoring to make it easier to consume Orion components, and the new server based on Node.js made great progress. Some of the core Orion workspace concepts were retooled to enable capabilities such as live development of a web site over SFTP from Orion. Although the list of new “features” for end users in this milestone is relatively small, the Orion team is pretty excited about the direction we are going and the kinds of applications these structural changes will enable down the road.

Read on for all the details about what’s new in Orion 2.0 M2, which is now available on OrionHub or for download.

Improved content assist inferencing

Several enhancements have been made to JavaScript content assist in Orion. Object
types and properties can now be inferred in more cases, such as:

  • Type inferencing on array values.

    Sample of infering array value type

  • Inferring associative arrays, for example myObj['someProp']

    Sample of infering values of associative arrays

  • Ability to infer variables before they are declared (this is a feature of JavaScript)

    Sample of infering variables above their declaration

  • Inferring object properties based on usage analysis.

    Sample of infering object properties based on usage analysis

Library independence

Previous releases of Orion made extensive use of Dojo for internationalization, DOM manipulation, widgets, and other helper functions. This hard-wired library choice made it difficult for consumers of Orion components to run with a different version of Dojo, or with alternative libraries such as jQuery or MooTools. In this milestone Orion has completely eliminated use of Dojo, making it much easier for people to consume parts of Orion into different kinds of web applications. For a deeper look at the motivation for this change and our longer term ideas, see Susan McCourt’s detailed blog post.

As an added bonus, this refactoring has significantly improved our page load performance. For example, PageSpeed analysis of loading the Orion editor containing a JavaScript file shows 45% fewer requests and 80% smaller total transfer compared to the previous Orion milestone (2.0 M1).

Orion on Node.js makes progress

The port of Orion running on Node.js is now available in the Node package registry as version 0.0.8. For complete details on how to install it and what it can do, see the Getting Started guide. Here is what’s working so far:

  • Basic Navigator operations (Create file/folder, delete file/folder, copy/move/rename a file)
  • Basic Editor operations (Edit file, save file, syntax highlighting, ETags)
  • Plugin operations (Install/uninstall Orion plugins)
  • Shell support for launching and debugging node applications (type "help node" in the Shell page to find out more)
  • Shell support for Node package manager (works the same as the usual npm console command)


A very early preview of a new project concept is available in this milestone. Effectively a project provides a way to link content you are working on with external sources and targets. Over time this will simplify and streamline how you import your code to Orion tools, and how you deploy from Orion into your target environment. Currently, support is implemented to edit code and other sources directly on a remote SFTP server. For more details, see Anton McConville’s
blog post telling all about it.

New Shell page command parameter and return types

Commands contributed to the Shell page can now use the "file" and "blob" types to read and return Orion workspace file content. A Shell page user directs the output of such commands to their chosen workspace location with the new --output parameter.

This entry was posted in New & Noteworthy. Bookmark the permalink.