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’
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.
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.
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.
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.
.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.
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.
.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.
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:
- you can load a Tern plug-in from a hosted location or the .tern-plugins folder within your project
- you plug-in can contribute to all the normal passes and callbacks from Tern
- 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).
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.
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.
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.