Default to 80 when editor.preferredLineLength <= 0

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 commit is contained in:
Kevin Sawicki 2013-04-30 22:29:48 -07:00
parent 6077cf2389
commit 986e5f9c7a
4 changed files with 31 additions and 2 deletions

View File

@ -17,6 +17,17 @@ describe "Config", ->
expect(config.save).toHaveBeenCalled()
expect(observeHandler).toHaveBeenCalledWith 42
describe ".getPositiveInt(keyPath, defaultValue)", ->
it "returns the proper current or default value", ->
config.set('editor.preferredLineLength', 0)
expect(config.getPositiveInt('editor.preferredLineLength', 80)).toBe 80
config.set('editor.preferredLineLength', -1234)
expect(config.getPositiveInt('editor.preferredLineLength', 80)).toBe 80
config.set('editor.preferredLineLength', 'abcd')
expect(config.getPositiveInt('editor.preferredLineLength', 80)).toBe 80
config.set('editor.preferredLineLength', null)
expect(config.getPositiveInt('editor.preferredLineLength', 80)).toBe 80
describe ".save()", ->
beforeEach ->
spyOn(fsUtils, 'write')

View File

@ -100,6 +100,24 @@ class Config
_.valueForKeyPath(@settings, keyPath) ?
_.valueForKeyPath(@defaultSettings, keyPath)
# Public: Retrieves the setting for the given key as an integer number.
#
# keyPath - The {String} name of the key to retrieve
# Returns the value from Atom's default settings, the user's configuration file,
# or `NaN` if the key doesn't exist in either.
getInt: (keyPath, defaultValueWhenFalsy) ->
parseInt(@get(keyPath))
# Public: Retrieves the setting for the given key as a positive integer number.
#
# keyPath - The {String} name of the key to retrieve
# defaultValue - The integer {Number} to fall back to if the value isn't
# positive
# Returns the value from Atom's default settings, the user's configuration file,
# or `defaultValue` if the key value isn't greater than zero.
getPositiveInt: (keyPath, defaultValue) ->
Math.max(@getInt(keyPath), 0) or defaultValue
# Public: Sets the value for a configuration setting.
#
# This value is stored in Atom's internal configuration file.

View File

@ -8,7 +8,7 @@ module.exports =
editor.getBuffer().change(range, @reflow(editor.getTextInRange(range)))
reflow: (text) ->
wrapColumn = config.get('editor.preferredLineLength') ? 80
wrapColumn = config.getPositiveInt('editor.preferredLineLength', 80)
lines = []
currentLine = []

View File

@ -19,7 +19,7 @@ class WrapGuideView extends View
@subscribe $(window), 'resize', => @updateGuide()
getDefaultColumn: ->
config.get('editor.preferredLineLength') ? 80
config.getPositiveInt('editor.preferredLineLength', 80)
getGuideColumn: (path) ->
customColumns = config.get('wrapGuide.columns')