Antonio Scandurra f569514938 Ensure extra document updates are not scheduled during updateSync
When changing the editor styles, we force the component to remeasure
character dimensions. If they change, each line's height could change
too, causing the current scroll top position to not match the viewport
the user was observing. Thus, when detecting a line height change, we
try to show users the area of the screen they were looking prior to
tweaking the font size.

In trying to maintain the aforementioned logical position, however, we
were mistakenly scheduling a new update before actually finishing the
current one. This was problematic because if the first update detected
that the longest screen line changed and such line was off-screen, it
would try to render it. Before having the chance to measure it, though,
the new update would kick in and delete the new longest screen line
node, because it assumed it had already been measured. Finally, when
`measureContentDuringUpdateSync` fired, it would notice that the longest
screen line node did not exist and throw an exception as a result.

This commit changes the `updateSync` method to set the `updateScheduled`
flag only before returning control to the caller, as opposed to doing so
at the beginning. This prevents calls to `scheduleUpdate` made in
`updateSync` from scheduling new unwanted updates.
2017-08-15 15:32:29 +02:00
⬆️ apm
2017-08-11 15:58:55 -07:00
2017-08-09 12:16:19 +07:00
2017-08-07 09:46:34 +03:00
2014-06-26 14:25:40 -07:00
⬆️ python
2017-02-22 09:15:43 +01:00
2017-07-16 08:56:50 -04:00
2016-01-11 12:17:08 -05:00
2015-05-22 20:08:29 -04:00
2017-04-20 09:37:21 -07:00
2017-01-02 11:55:28 -05:00
2017-08-15 11:25:23 +02:00
2017-08-02 09:36:22 -07:00
2017-08-04 14:17:14 -07:00

Atom

macOS Build Status Linux Build Status Windows Build Status Dependency Status Join the Atom Community on Slack

Atom is a hackable text editor for the 21st century, built on Electron, and based on everything we love about our favorite editors. We designed it to be deeply customizable, but still approachable using the default configuration.

Visit atom.io to learn more or visit the Atom forum.

Follow @AtomEditor on Twitter for important announcements.

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to atom@github.com.

Documentation

If you want to read about using Atom or developing packages in Atom, the Atom Flight Manual is free and available online. You can find the source to the manual in atom/flight-manual.atom.io.

The API reference for developing packages is also documented on Atom.io.

Installing

Prerequisites

macOS

Download the latest Atom release.

Atom will automatically update when a new release is available.

Windows

Download the latest Atom installer. AtomSetup.exe is 32-bit, AtomSetup-x64.exe for 64-bit systems.

Atom will automatically update when a new release is available.

You can also download atom-windows.zip (32-bit) or atom-x64-windows.zip (64-bit) from the releases page. The .zip version will not automatically update.

Using Chocolatey? Run cinst Atom to install the latest version of Atom.

Debian Linux (Ubuntu)

Atom is only available for 64-bit Linux systems.

  1. Download atom-amd64.deb from the Atom releases page.
  2. Run sudo dpkg --install atom-amd64.deb on the downloaded package.
  3. Launch Atom using the installed atom command.

The Linux version does not currently automatically update so you will need to repeat these steps to upgrade to future releases.

Red Hat Linux (Fedora 21 and under, CentOS, Red Hat)

Atom is only available for 64-bit Linux systems.

  1. Download atom.x86_64.rpm from the Atom releases page.
  2. Run sudo yum localinstall atom.x86_64.rpm on the downloaded package.
  3. Launch Atom using the installed atom command.

The Linux version does not currently automatically update so you will need to repeat these steps to upgrade to future releases.

Fedora 22+

Atom is only available for 64-bit Linux systems.

  1. Download atom.x86_64.rpm from the Atom releases page.
  2. Run sudo dnf install ./atom.x86_64.rpm on the downloaded package.
  3. Launch Atom using the installed atom command.

The Linux version does not currently automatically update so you will need to repeat these steps to upgrade to future releases.

Archive extraction

An archive is available for people who don't want to install atom as root.

This version enables you to install multiple Atom versions in parallel. It has been built on Ubuntu 64-bit, but should be compatible with other Linux distributions.

  1. Install dependencies (on Ubuntu): sudo apt install git gconf2 gconf-service libgtk2.0-0 libudev1 libgcrypt20 libnotify4 libxtst6 libnss3 python gvfs-bin xdg-utils libcap2
  2. Download atom-amd64.tar.gz from the Atom releases page.
  3. Run tar xf atom-amd64.tar.gz in the directory where you want to extract the Atom folder.
  4. Launch Atom using the installed atom command from the newly extracted directory.

The Linux version does not currently automatically update so you will need to repeat these steps to upgrade to future releases.

Building

License

MIT

When using the Atom or other GitHub logos, be sure to follow the GitHub logo guidelines.

Description
No description provided
Readme 447 MiB
Languages
JavaScript 88.3%
Less 8.7%
CoffeeScript 2.8%
Shell 0.1%