Previously if the token has both leading and
trailing whitespace the classes would bleed
across the cases and cause an exception to be
thrown.
Closes#298
Previously document.caretFromRange() was used which
required hiding and showing the overlayer which would
cause a relayout and entire repaint of the editor area.
Now the text nodes on the selected row are iterated over
until the column corresponding to the event's pageX value
is found.
Closes#290
The whitespace in lines that have no non-whitespace
text is treated as trailing whitespace so add the
indent guide to the trailing whitespace tokens when the
line is 100% whitespace.
Certain bundles require multi-line matches in the firstLineMatch
value so count the number of newlines in the regex and only test
the regex against only those lines.
Previously the 'editor:attached' was used which would not
fire for editors already attached and so any editors
opened before the snippets package was loaded would not
have snippets enabled.
Keeping the shutdown state as a local var in window.coffee causes spec failures because window.shutdown can only be called once in the entire spec suite
If either fails to deserialize from the persisted state
then fall back to the default constructors.
This ensures Atom will still start even if the serialization
format changes and the previous stored state can no longer
be successfully deserialized.
Mouse events that occur in the gutter are forwarded to the
rendered lines with the y-coordinate translated to be the
leftmost pixel of the editor to simulate the event originating
from column 0 of the current line row.
Closes#287
Without this the atom-light-ui theme used with the atom-dark-syntax
theme causes the selection in the mini editor to unreadable because
it is too dark.
In additional, rename `registerViewClass(es)` to `registerDeserializer(s)`.
This moves us to a situation where any kind of object may want to be
deserialized, not just views.