If you don’t have winter holiday plans yet, why not cosy up by the fire with the latest Orion milestone, or give away copies to loved-ones on your gift list. Whatever you plan on using it for, here are some of the more noteworthy things available in milestone build M1 (December 9, 2011). You can download it, or head over to Orion Hub and let us worry about installation and upgrade for you. If you don’t already have an account, visit http://eclipse.org/orion to register.
HTML syntax validation
Orion now provides basic HTML syntax validation. Warnings and errors will display for common HTML problems such as malformed elements, missing tags, incorrect element nesting, and duplicate element ids.
CodeMirror syntax highlighting
An Orion plugin is now available that connects CodeMirror syntax highlighting to the Orion editor. This means Orion now provides syntax highlighting for all languages that have CodeMirror modes available, including: C/C++, C#, Clojure, CoffeeScript, Groovy, Pascal, Perl, PHP, Python, Ruby, Scheme, Smalltalk, and many others. Visit the CodeMirror plugin for Orion for a complete list of languages and installation instructions.
CodeMirror mixed mode syntax highlighting
CodeMirror dynamic syntax validation
Another advantage of the CodeMirror plugin for Orion is highlighting of syntax errors. This has been hooked into the Orion editor’s annotation model to underline syntax errors that occur as you type. For example while editing HTML, there is immediate syntax validation for missing or malformed elements. In the example below, the mismatched heading element, and missing </li> element are highlighted and underlined in red.
New content type service
Orion has introduced a new content type service, orion.file.contenttype. This service allows plugins to introduce new content types, and associate content types with file extensions and MIME types. In addition, some core Orion services have been augmented to support content types over their previous file extension matching. For example, editors can now be associated with content types rather than file extensions. This allows different language tooling to be used for files containing mixed HTML and PHP (“application/x-httpd-php”), versus plain HTML (“text/html”), even when the file extension is the same in both cases. The remaining Orion language tooling services will be reworked to support content types in the following milestone.
Default text editor
A new service, orion.navigate.openWith.default, allows a plugin to declare the default editor to use when opening files whose content-type does not match any known type. The built-in Orion editor now implements this, meaning all text files regardless of extension or content can be opened in the editor.
HTML outliner plugin
A new Orion plugin is available that provides a detailed outline when editing HTML files. Simply install the HTML outline plugin, and then select either Full HTML or Filtered HTML from the drop-down menu in the Outline pane. We are still working on figuring out what level of detail is useful, so please try it out and send feedback. Even better, fork the repository and play around with your own ideas.
You can now use simple wildcards in global searches. Use ‘*’ for an arbitrary sequence of characters and ‘?’ for a single character.
Pagination of search results
Search results are now delivered in pages rather than all at once. Buttons in the toolbar can be used to navigate to the next or previous page of results.
Changing sorting in search results
Search results are now sorted alphabetically by location, rather than by search rank. You can now also switch to sorting search results by filename via the options menu.
Scope search to a folder
You can now perform searches on particular folders rather than across all your files. On the Navigator page, the search will now be performed only in the current folder, indicated by the breadcrumb in the top banner.
From the search results page, you can adjust the search scope up to a parent folder by clicking that parent folder in the breadcrumb. Click a location in the Location column to repeat the search only within that single folder.
More contextual information in search
To go along with all the new search features this milestone, the search results page now tells you a lot more about what is going on. You can now see what terms you were searching for, in what folders, how many results in total, and what page of results you are currently viewing. Also, when you save a search, the bookmark gives more information about the search scope and terms.
User interface improvements
The user experience for collecting input has been redesigned in this milestone. Most input is now collected in lightweight “slideouts” rather than popup dialogs. Simply type the requested text in the slideout, or press the “…” button to provide more advanced input. Hit the ‘X’ button or the Esc key to dismiss the input.
In addition, the presentation for action buttons within pages has been revamped. These buttons are now always visible rather than only being shown on hover. This makes the actions accessible using your keyboard, and makes it possible to use them on touch interfaces where there is no concept of hover. We will continue to evolve the presentation in future milestones to ensure Orion is fully accessible, and to improve user experience on mobile and touch devices.
Hide header and footer
You can now collapse the header and footer areas on all pages. This is especially handy on mobile or small screen devices where vertical space is at a premium. When you also collapse the Outline slideout, the editor can now fill the entire window. Collapse and expand the header using the Ctrl+Shift+M key sequence (or Cmd+Shift+M on Mac).
Go to last edit location
A new command, Last Edit Location, will jump the cursor to the location of your last modification in the editor. This is handy when you quickly want to refer to another part of the file while editing, and then jump back to where you left off typing. The command is available via Ctrl+Q (or Cmd+Q on Mac). As always, if you forget the key binding for a command, you can hit Ctrl+Shift+L to see a complete list of available commands in the editor.
Editor performance improvements
While the Orion editor is already quite fast and scalable, it was slow and choppy to horizontally scroll very long lines. Horizontal scroll performance has been significantly improved in this milestone, in particular on Firefox and Chrome.
Use spaces for tabs
The Orion editor now supports using spaces instead of tabs for indentation. This is not currently enabled by default, but we are working on providing a preference page for customizing this in the future. Clients who are embedding the Orion editor in their own page can configure this using the expandTab option when configuring the Orion text view widget.
Asynchronous editor creation
The Orion editor can now be created asynchronously, with callbacks provided when editor initialization is complete. For clients embedding the Orion editor in their own page, this allows you to initialize the editor in the background while it is invisible and only display it when fully initialized. See bug 349627 for further details.
Pagination of Git log
The Git Log page now shows log information one page at a time rather than all at once. This improves performance for viewing the history of very large Git repositories. Buttons in the toolbar can be used to navigate between the log pages.
Git apply patch
You can now apply patches to a Git repository in Orion. Go to the Repositories page, and select Apply Patch from the actions menu.
Git Pull command
A Git Pull command has been added in the Repositories page. Although this is equivalent to performing a Fetch followed by a Merge, Pull is a handy shortcut when you know the incoming changes can be applied safely and cleanly.