What’s new in Orion 15.0

After three more months of hard work from committers and our amazing community, we have another great release! This release continued our mission to make Orion as accessible as possible for all developers, included many UX improvements and has a lot of new language tooling features.

Accessibility

We’re continually improving Orion to be the best possible experience for all developers. In Orion 15, we have improved keyboard access, menu navigation and better handling of “splitters”.

Improved tab handling

A substantial amount of work went into making sure that use of the tab key was sensible and properly presented an affordance for its location. Some of the work included:

1. Ensure that all locations that can be tabbed to show a visible ‘focus rect’

Tab focus rectangle

Tab focus rectangle

2. Extend the F2 capability for the editor to show an annotation hover to also show (and put the focus on) any available tooltip for the element with the focus, regardless of the page you’re on (i.e. works on the Git and Settings pages as well now. ESC will return focus to the original element.

F2 focus tab rectangle

F2 focus tab rectangle

3. Make sure that all modal dialogs will ‘trap’ the tab key usage and correctly cycle through the dialogs’ elements.

Improved menu navigation

On the Edit page if the focus is on the main menu you can now use the arrow keys to navigate to any item in the whole menu structure.

Improved splitter manipulation

There is a new command Command + Shift + ‘.’ available that will cycle through each splitter on the page, granting it focus. Once focussed you can use the arrow keys to move the splitter, Enter to toggle the splitter’s ‘thumb’ (if any). ESC will return the focus to the original element.

Code Edit Widget

Override default keybindings

Consumers of the widget now have complete control over the keybindings in use – with improved support to completely override the default bindings the come with Orion.

More details can be found on the in-depth how-to wiki page for the widget.

Language Tools

Docker file support

When working within docker files, Orion 15 now has support for content assist to make things easier. Assist uses the standard Ctrl+space keybinding.

Dockerfile assist

Dockerfile assist

Improved content assist

There have been many improvements in the content assist for other languages as well. For example, assist within CSS files got a substantial overhaul and now provides more complete and correct assist for rules and attributes.

CSS assist

CSS assist

We have also made assist for HTML and JavaScript a bit easier to understand at first glance, by decorating obsolete and deprecated proposals differently than “normal” ones.

Deprecated JavaScript proposal

Deprecated JavaScript proposal

.tern-project hover support

While working in your .tern-project file, you can now hover over entries in the file to get additional information and help.

Tern project file hover

Tern project file hover

package.json hover support

While working in your package.json file, you can now hover over entries in the file to get additional information and help.

package.json hover

package.json hover

.eslintrc hover support

While working in your eslint configuration file(s), you can now hover over entries in the file to get additional information and help.

ESLint hover

ESLint hover

The hover support for ESLint configuration entries is also available within your package.json file in the eslintConfig section. The hover support is not available yet in the *.yml and *.yaml variants of the ESLint configuration files.

Third party Tern plug-ins

Adding a Tern plug-in to Orion that is not part of the codebase has always been challenging. First you would have to modify the JavaScript tools code, rebuild Orion yourself and then deploy it yourself. In Orion 15 though, you can now load a plug-in directly from your workspace or another location.

The complete details can be found on the bug, but the general scheme is:

  1. you can load a Tern plug-in from a hosted location or the .tern-plugins folder within your project
  2. you plug-in can contribute to all the normal passes and callbacks from Tern
  3. your plug-in must be declared via the .tern-project file

Platform Improvements

JavaScript project information

If you select a project in the navigator, Orion now has support to show you what the JavaScript tools thinks about the configuration of the project. The new information is shown in the JavaScript section and contains helpful information about what ECMA level is being used to parse, etc. There are also handy links to common configuration files (if they are present in the project).

JavaScript project information

JavaScript project information

Updated “Hide system files from the navigator ” preferences

Rather than having to type out all of the names of resources you want to be filtered from the explorer views, we have updated the preference to support wildcards like ? and *.

Editor tab support

Finally. After all this time, we have support in Orion for multiple editor tabs! By default Orion still works in the “one editor per browser tab” mode, but you can start using editor tabs by simply turning on the preference in the General prefs section.

Orion editor tabs preference

Orion editor tabs preference

Once enabled, you can open multiple files within a single editor, rather than have multiple browser tabs open. Tabs can be closed, dragged, reordered, and switched to using convenient keybindings.

Multiple editor tabs

Multiple editor tabs

Custom Themes

Plugins can now contribute their own themes to style Orion. All of the information related to the new orion.core.container.themes.provider service can be found on the API documentation wiki page.

Multiple workspaces

The Orion platform now has support for multiple workspaces! This allows consumers of Orion to better organize their files by having multiple source repositories spread across multiple workspaces instead of one gigantic workspace filled with many unrelated repositories.

By default Orion does not have end-user support to create and manage multiple workspaces, so third party support is required.

Node.js Server

A lot of work went into making the Node.js server more stable and making sure it was feature-complete compared to its Java version.

Git rebase skip support

Support for skipping conflicting commits during rebase has been added to the server.

Git squash support

The ability to squash commits into the index has been added to the server.

Move to Github

As we talked about in a previous post, during 15.0 we moved all of our source to Github. If this is the first time you are hearing about the move, then head over to the post, and give it a read for all the details about where to find our code and how to contribute.

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