If 'foo' has not been set and has a default value of 1,
config.set('foo', 1) will not store the 1.
If 'foo' has been set to X and has a default value of 1,
config.set('foo', 1) will remove 'foo' from config
Lines that are all whitespace are considered trailing
whitespace and should display the indent guide.
But lines with leading and trailing whitespace should never
have the indent guide rendered in the trailing area.
Sometimes an application has other windows open, like the open
panel. Even when these are closed they seem to live on in the
application's window array. We now ignore those windows when trying
to terminate the app.
Closes#534
This will be a style that can be used by extending
classes to provide two lines that don't wrap with
color and padding.
This is initially used by symbols view and fuzzy finder.
Previously the directory was shown after the file name
and it would wrap if too long causing inconsistent row
heights.
Now the full path is shown below the name in a smaller font
and both the path and file are set to overflow with an ellipsis.
The first call to terminate is canceled so that every window can be
closed. On AtomCefClient the OnBeforeClose method is called when a
browser is finished closing. Once all windows have finished closing, AtomCefClient calls terminate again, which will terminate the
application.
Closes#527
Previously any non-null value would be used as the target
column in the wrap guide and autoflow packages when really
80 should have been used if the value was non-postive.
Now config.getPositiveInt() is called with a default value
of 80 if the current value isn't already positive.
This event comes from initially setting the text for the current
config value on the editor and was causing the config to be
immediately saved multiple times when opened.
Previously if an integer or float field was empty it would
default to zero instead of undefined which made it inconsistent
with string value fields.
Now the config value is only set as a Number when it can be
parsed as one.
Stop relying on setInterval to trigger the scroll events in the spec. Instead simulate the mouse moving at the top of the screen. I found
testing the setInterval approach required so much mocking that it
wasn't worth it.