Atom 1.1 is out
October 29, 2015
Atom Run 1 1/2
Today we are excited to announce Atom 1.1.0. It comes with many improvements and marks the first stable release to pass through the new Atom beta channel. Let's dig in.
Script: Run by Line Number to run using the specified line number. Note that if you select an entire line this number could be off by one due to the way Atom detects numbers while text is selected. Script: Configure Script should be used to configure command options, program arguments, and environment variables overrides. Atom Run is an action-packed retro-futuristic platform game, in a superb mechanical-dynamic world. Jump, push, run and avoid the many dangers you'll encounter. Don't worry about dying – you have infinite lives. You'll be hooked! 'In 2264, an unprecedented disaster put an end to all living things. Make sure to run atom from the command line to get full access to your environment variables. Running Atom from the icon will launch using launchctl's environment. Script: Run will perform a 'File Based' run when no text is selected (default). As someone with a single Core Atom and 1GB RAM: eOS is not as great as everyone advertises, the application-launcher is pretty slow (2,5 sec to open), animations are not always fluid. Applications crash often (gala if load is to high - it is much better since last update but still very buggy compared to xfwm etc).
The Big Changes in 1.1.0 Stable
New Approach to Character Measurement
Check out the pull request.
Atom needs to measure runs of text on screen to absolutely position the cursor, selections, highlights, and overlay decorations such as the autocomplete suggestion box. Chrome does not have a text measurement API at this time, so we need to measure text from the DOM. The problem with measuring from the DOM is that it forces a reflow, and these measurement-triggered reflows were a major source of slowness in early versions of Atom.
To solve this, we avoided DOM measurement in most cases when computing pixel positions by caching the widths of each character in different styling contexts. Whenever we needed a horizontal position to absolutely position an element, we iterated through the characters on the relevant line and computed a total based on lookups in our cache.
This avoided any synchronous dependency on the DOM, but it also ignored the important fact that characters can have different widths depending on their context. This is most obviously true with ligatures, emoji, and variable-width fonts, but it started happening even for fixed-width fonts when sub-pixel font scaling was enabled in Chrome, forcing us to patch Electron for a few releases to disable it. Hyper 1 3 3 – terminal built on web technologies.
Before settling on our current solution, we tried other ways of getting correct measurements while still avoiding DOM reads, such as measuring text runs via the canvas API or in an off-screen iframe. We even contemplated abandoning absolute positioning and tried clever hacks so things could be positioned by the DOM.
But in the end, we settled back on measuring these positions from the DOM directly, this time in a more deliberate and controlled way. Early on, reflows were the bane of our existence, so we really bent over backwards to avoid any forced layouts. It turns out that was too extreme of an approach. We now split our DOM updates into two phases. First, we render everything that doesn't require absolute positioning, then we measure, forcing a reflow. Now, with measurements in hand, we proceed with a second phase of the update. Since we don't mutate the elements we rendered in the first phase, the second layout ends up being less expensive, and by combining this approach with some improvements to our layout and style recalculation times, we found room for direct measurement in our 16ms frame budget.
Using Fonts with Ligatures
Now you can use fonts containing ligatures like monoid, FiraCode andHasklig.
After installing a font that supports ligatures, you can enable them by adding the following to your stylesheet: Deskcover 1 3 – make your desktop less distracting.
This CSS is the minimum to enable ligatures, but there may be more options your font of choice exposes to CSS. Check out Ligatures & Coding and CSS Ligatures for more information.
Note that there is a limitation with FiraCode and Hasklig that does not allow placing the cursor between combined ligature characters like ->
. This is a limitation in the Chrome DOM measurement API. monoid does not have this limitation due to the way it implements ligatures.
Using Variable Width Fonts
You can also use variable width fonts like Helvetica or Times New Roman in Atom's text editor component. Maybe not so interesting in your code editor:
But a number of UI themes like Unity-UI set the mini-editor font to a variable width font. Now this works without cursor positioning problems.
Reduced GC Pauses When Scrolling Editor
Previous to Atom 1.1.0, Atom was allocating all new DOM nodes for any new text rendered on screen. In this release, we've implemented a DOM-node pool that reuses DOM nodes whenever we can. This creates less pressure on the garbage collector and leads to less GC pauses when using the editor.
We also identified and fixed a memory leak which should help improve our memory situation when scrolling.
New Fuzzy Search Options
There have been a numberofreportsregarding the quality of the fuzzy searching algorithm Atom uses in fuzzy-finder and autocomplete-plus.
Community member @jeancroy has taken on fixing these issues with a new fuzzy matching library called fuzzaldrin-plus. He has integrated the new library into fuzzy-finder and autocomplete-plus behind a config setting. To turn on the new algorithm, navigate to the settings page for both autocomplete-plus and fuzzy-finder, then check the 'Use Alternate Scoring' setting.
If you have issues with the new scoring algorithm, please let us know by submitting an issue on the fuzzaldrin-plus repo.
Themed Markdown Preview
Themed Markdown Preview
Markdown preview now adapts to the installed syntax theme.
Maybe you would rather have the preview match GitHub's markdown rendering? Markdown preview now has a 'Use GitHub.com styles' setting that uses a white background and GitHub styles no matter the syntax theme.
Check out the PR.
Several Find and Replace Fixes
- Added regex replacement highlighting thanks to community member @adamfranco: atom/find-and-replace#494
- Keyboard navigation in the project search results pane has been improved: atom/find-and-replace#498 and atom/find-and-replace#531
- A 'Find' button has been added to the project find panel: atom/find-and-replace#509
- Disabled button tooltips in the find panel have been fixed. Many people reported issues with this: atom/find-and-replace#542
Available now in Atom 1.2.0-beta
Along with the new stable release, we've rolled the changes from the master branch into a new beta release. You can install the beta to get these features right now. We'll get into more detail when we release 1.2.0 stable, but here is a preview.
CJK softwrap
Mega samples vol 108pcmac download free. Atom now properly wraps CJK characters!
See the PR for more details.
Atom Run 1 1 X 4
Upgrade to Electron 0.34.x
This brings Atom up to the latest version of Electron and fixes a couple of prettybad, long-standing bugs.
See the PRs for more information: atom/atom#8779 and atom/atom#9184.
Custom Package Testing Environment
Want to run your package specs with something other than jasmine 1.3? Now you can specify your own test runner. See the PR and the portential docs for more information. Note that this is still in flux!
Settings Have Nice Descriptions
Atom Run Code
Many of the settings in the settings view lacked descriptions which lead to confusion. In the latest beta, descriptions have been added to all core settings and all settings from bundled packages.
See the PR for more information.