Atom 1.6 and 1.7 beta

Atom 1.6 and 1.7-beta are out. Atom 1.6 comes with pending pane items, improvements to pane management, and new APIs.

Major Changes in 1.6.0 Stable

Below is a summary of the noteworthy things available in Atom 1.6. If you want to see every PR that went into Atom 1.6, check out the Atom 1.6.0 release notes.

Pending Pane Items

Sometimes, it can be useful to take a peek at the contents of a file without opening it in a dedicated tab. For those instances, you want pending pane items.

When you single-click a file from the tree view or the find-and-replace search results, the file in question opens as a pending pane item. When another item is opened in a pane, it replaces the pending tab in that pane instead of being appended to the list of tabs. This allows you to quickly click through several files quickly without opening each of them in a dedicated tab. In the default UI configuration, the tab’s title is italicized if the pane item is pending. If you want the tab to stick around permanently, simply double-click the file or the tab; in addition, when you edit text within a text editor that lives in a pending tab, the tab is automagically made permanent for you.

If you’re not afraid of tab commitment (or just don’t like the feature), you can disable this functionality by unchecking Allow Pending Pane Items in the Core Settings section of the editor settings.

Multi-pane Usage Improvements

Previously, Atom’s pane management commands left a lot to be desired. There was only one set of commands and keybindings to create a split pane. Say you wanted to create a right split, you would use cmd-k right (or ctrl-k right in Windows and Linux) and it would create the split pane and also copy the existing file you had open to the new pane—rarely what you wanted.

In Atom 1.6.0, a number of new commands have been added to improve working with panes. For now, the default pane-split behavior attached to keybindings like cmd-k right is unchanged, but you can bind these new commands in your keymaps.cson file. If you need some help deciding which keys to use, you can try this set, which are based on Atom packages pain-split and move-panes.

Block Decorations

Block decorations allow a package developer to insert DOM nodes in between lines. This new API opens up a number of new scenarios such as inline diffs, code evaluation, image previews, and very important use cases like watching nyan cat while you write code.

Check out the block decoration blog post for information on how to use them and for all the gritty details about they were implemented.

Async Git

The new GitRepositoryAsync class uses NodeGit to provide a promise-oriented API which is similar to the existing GitRepository. Package authors can get the asynchronous repository from the synchronous repository:

constrepo=atom.project.getRepositories()[0].asyncrepo.getPathStatus(myPath).then(status=>{// Do the needful.})

In the future we’ll be deprecating GitRepository so please update your packages to use the new asynchronous APIs as soon as possible.

Top and Bottom Bar API

A new API has been added to allow package authors to put UI that spans the entire width of the editor. This allows packages like tool-bar to appear across the very top of Atom, and could enable the status-bar to span the entire width of the window.

Most Recently Used Tab Switching

In Atom 1.7 beta, ctrl-tab in all platforms will switch between the most recently used (MRU) tabs in an Atom window. Previously, ctrl-tab would select the next tab, which does not take into account which tabs you have been working in. MRU tab switching was a very heavily requested feature that many other editors have as a default behavior, and we’re happy to finally have it in Atom.

Downloads from atom.io using Internet Explorer on Windows 7 now have .exe extension.

File types can be easily associated with Atom. No more need to hunt for atom.exe or deal with broken associations after an update. Note: Installing Atom does not take over any file associations.

Environment Patching on OS X

On OS X, when you launch Atom from the Dock, Spotlight or Finder, it receives a different startup environment than when you launch Atom from the terminal. Most people expect Atom to be able to detect one’s terminal environment and use that, since Atom needs access to a lot of the same tools that you use through the terminal. Tools like linters, language interpreters, beautifiers and more. It just makes sense.

Until atom/atom#11054, packages that wanted to access these tools had to roll their own solution. Now, Atom just does the right thing out of the box.

Electron Update

Electron has been upgraded in Atom 1.7 to the 0.36 series. The new version of Electron brings a number improvements. Check out the pull request for more info.