Pull in master (#6)
Pull in master (#6)

* :arrow_up: atom-keymap (prerelease)

* Activate atom.directory-provider services before deserialization

Signed-off-by: Nathan Sobo <2e8aa918660411855c6d44d5bb2da677aa033255@github.com>

* Do not add project directories that do not exist

Signed-off-by: Nathan Sobo <2e8aa918660411855c6d44d5bb2da677aa033255@github.com>

* :arrow_up: service-hub (prerelease)

Signed-off-by: Nathan Sobo <2e8aa918660411855c6d44d5bb2da677aa033255@github.com>

* Simplify Windows build instructions

[ci skip]

* Talk about other terminals

* Don't allow menu shortcuts that could conflict with AltGraph characters

Signed-off-by: Max Brunsfeld <78036c9b69b887700d5846f26a788d53b201ffbb@github.com>

* Fix unset keystroke handling, :art:

* :arrow_up: atom-keymap

* Don't remove non-local directories on Project deserialization

* Use fake directory provider in integration test for remote dirs

Signed-off-by: Nathan Sobo <2e8aa918660411855c6d44d5bb2da677aa033255@github.com>

* Fix invalid usage of activation disposable in Package::load

Like deserializers and config schema, directory providers are added
at package load time, and *not* removed when the package is deactivated

* Fix test description

* WIP - debug travis CI failures

* :arrow_up: atom-keymap

* Return a promise from AtomWindow.reload that resolves on window:loaded

* Focus test on for travis

* Resolve AtomWindow.reload promise once window fully starts

* Try this on travis

* :arrow_up: atom-keymap

* :arrow_up: snippets@1.0.3

* :arrow_up: open-on-github@1.2.1

* :arrow_up: package-generator@1.0.1

* Tweak test again for travis

Signed-off-by: Nathan Sobo <2e8aa918660411855c6d44d5bb2da677aa033255@github.com>

* Wait for each window to save its state in main process test

Signed-off-by: Nathan Sobo <2e8aa918660411855c6d44d5bb2da677aa033255@github.com>

* :arrow_up: solarized-dark/light-syntax@v1.0.3

* Don't remeasure the first character of a line

Previously we were ignoring the measurement cache for characters located
at `left: 0px` because `0` is evaluated as falsy in Javascript, causing
those character to be constantly re-measured.

This commit fixes it so that we explicitly check for null values when
consulting the cache.

* :bug: Perform measurements only when editor is visible

* Initialize app-started promise before reloading AtomWindow

* Assert about remote directories' types in main process test

* Add atom.restartApplication

Signed-off-by: Max Brunsfeld <78036c9b69b887700d5846f26a788d53b201ffbb@github.com>

* Relaunch Atom when changing the title bar style

Now that we have the required API

Signed-off-by: Max Brunsfeld <78036c9b69b887700d5846f26a788d53b201ffbb@github.com>

* Try manually tearing down atom env before reloading window in main process spec

* Preserve command line flags when restarting

This performs restarts in the main process and uses ipc to request restarts from application windows. We preserve the following settings:

* dev mode
* custom resource path
* safe mode
* portable mode
* socket path
* log file path
* user data dir

* :art:

* :arrow_up: settings-view

* Destroy AtomEnvironment in beforeunload handler, not unload handler

See https://github.com/electron/electron/issues/7278

Signed-off-by: Nathan Sobo <2e8aa918660411855c6d44d5bb2da677aa033255@github.com>

* Save state when reloading AtomWindow

Signed-off-by: Nathan Sobo <2e8aa918660411855c6d44d5bb2da677aa033255@github.com>

* Wait for reused window's project paths to update in main process test

Signed-off-by: Nathan Sobo <2e8aa918660411855c6d44d5bb2da677aa033255@github.com>

* Spy on AtomEnvironment.destroy in window event handler spec

* :arrow_up: spell-check

* Always return an empty array in TokenizedBuffer.getInvalidatedRanges

..because TokenizedBuffer never synchronously invalidates beyond the
extent of the spatial change.

Signed-off-by: Nathan Sobo <2e8aa918660411855c6d44d5bb2da677aa033255@github.com>

* :arrow_up: language-perl@v0.37.0

* :arrow_up: text-buffer

Signed-off-by: Nathan Sobo <2e8aa918660411855c6d44d5bb2da677aa033255@github.com>

* Wait for project directory to be added in main process test

* Go back to using promise based on window:loaded event in main process tests

* Wait for project folder to be added in main process tests

* :arrow_up: fs-plus

* :memo:

* :memo: :art:

[ci skip]

* Remove duplicate asterik

* Add missing period

[ci skip]

* Always invalidate yardstick measurements when the editor becomes visible

...because content could get reflowed and previous measurements might
become inaccurate. Typically, this could occur when measuring while the
editor is hidden: in that case, the yardstick would always report `0px`
and save that position into the cache. Then, when the editor becomes
visible again, the wrong `0px` value would be returned, thus causing
cursors etc. to be displayed incorrectly.

This was being shadowed by a bug in our measurements cache, but after
fixing it in #12730 it started becoming evident.

* Tildify path in title bar

This will use ~/ for the path to the home directory

* Bind promptForRestart since it calls a method now

Signed-off-by: Max Brunsfeld <78036c9b69b887700d5846f26a788d53b201ffbb@github.com>

* Call window methods on AtomWindow when ipc'ing from render process

This enables saveState to be called when requesting a window reload from the render process.

Signed-off-by: Max Brunsfeld <78036c9b69b887700d5846f26a788d53b201ffbb@github.com>

* Use call/respondTo helpers to return a promise from window method ipcs

Signed-off-by: Max Brunsfeld <78036c9b69b887700d5846f26a788d53b201ffbb@github.com>

* Don't serialize packages in deactivatePackages

Serialization still occurs when deactivating a single package via the
API. Otherwise, when the window is closed or reloaded we will serialize
all packages as a result of saving the window state.

Signed-off-by: Max Brunsfeld <78036c9b69b887700d5846f26a788d53b201ffbb@github.com>

* Null guard AtomWindow instance in window-method ipc handler

Since things are async, I think the window could potentially disappear
before we can handle the message.

* :arrow_up: service-hub (from pre-release)

* :arrow_up: service-hub (from pre-release)

* :arrow_up: atom-keymap for new priority semantics

Signed-off-by: Nathan Sobo <2e8aa918660411855c6d44d5bb2da677aa033255@github.com>

* Disallow duplicate keys when loading package keymaps

Signed-off-by: Nathan Sobo <2e8aa918660411855c6d44d5bb2da677aa033255@github.com>

* :arrow_up: season

* Use app activate event instead of defunct activate-with-no-open-windows

This restores the ability to open a Window by single-clicking the dock
icon on macOS.

Signed-off-by: Max Brunsfeld <78036c9b69b887700d5846f26a788d53b201ffbb@github.com>

* Fix style guide links in CONTRIBUTING.md

We opted to just drop the CSS style guide for now because we don’t
really follow one. @simurai please correct that if I’m wrong.

Closes #12066

Signed-off-by: Max Brunsfeld <78036c9b69b887700d5846f26a788d53b201ffbb@github.com>

* Make main-process/main.js as minimal as possible

In order to test changes to main.js, we need to rebuild the application.
For this reason, it makes sense to do as little work as possible here.
In this commit, we change main to just determine the resourcePath, then
use that path to require a start function which can be iterated on in
dev mode.

Signed-off-by: Max Brunsfeld <78036c9b69b887700d5846f26a788d53b201ffbb@github.com>

* Use year of first publication

[ci skip]

https://github.com/atom/settings-view/pull/858#issuecomment-249373520

AdrianVovk/substance-ide,AdrianVovk/substance-ide,AdrianVovk/substance-ide