This is fine, but seeing it here and below makes me think that this also belongs in the "model" (the preferences system). The most succinct form would be:

```javascript
definePreference("tabSize", "integer", DEFAULT_TAB_SIZE, {
    min: MIN_TAB_SIZE,
    max: MAX_TAB_SIZE
});
```

But, even without going to that extreme, we could still do this:

```javascript
PreferencesManager.definePreference(TAB_SIZE, "number", DEFAULT_TAB_SIZE, {
    validate: function (value) {
        return ValidationUtils.isIntegerInRange(value, MIN_TAB_SIZE, MAX_TAB_SIZE);
    },
    coerce: function (value) {
        return Math.max(Math.min(Math.floor(value), MAX_TAB_SIZE), MIN_TAB_SIZE);
    }
});
```

and have coerce run on `PreferencesSystem.set`. That way, this code would not be duplicated between the status bar and some potential preferences UI (cc @zaggino).