Skip to content
This repository has been archived by the owner on Mar 23, 2024. It is now read-only.

3.0.0

Compare
Choose a tag to compare
@markelog markelog released this 14 Apr 17:38
· 65 commits to master since this release

Version 3.0.0 (2016-04-14):

Hell yeah! 3.0 is here. First and foremost we rewrote every... single... rule. We fixed a plentiful amount of bugs (most of which were found during refactoring those rules using CST). This provides us the opportunity to include autofix for complicated rules like the brand new disallowUnusedVariables rule (see below).

Breaking Changes

If you aren't a plugin writer or support build extensions (like grunt or gulp), etc you don't have to worry about anything.

We didn't rename/remove any rules. All you should have to do to update is just bump the jscs version in your package version to 3.0.0 and be done with it.

Configuration

These following config options have been replaced in 3.0:

  • --esnext (-e) // enabled by default
  • --esprima (-s) and --esprimaOptions // babylon is the underlying CST parser
  • --verbose // also enabled by default to show rule name when there is an error

One thing to notice: the yandex preset was removed. Since Yandex doesn't have official code style (don't look at the https://github.com/ymaps/codestyle), we were requested to remove it

One drawback from all these changes is that JSCS might be a little, just a little slower, so if you find any issues related to that - don't hesitate to drop us a line, or just drop us a line since we are all friendly :).

New rules

Since this release is about rewrite of internal design, we adding only four new rules (all of them were added by our contributors!).

[disallowUnusedVariables](http://jscs.info/rule/disallowUnusedVariables) by Brian Schemp

That rule useful when you have var x = <whatever> and you don't export that x and don't use it. This rule will highlight that and remove it if you want.

[disallowSpacesInsideImportedObjectBraces](http://jscs.info/rule/disallowSpacesInsideImportedObjectBraces) and [requireSpacesInsideImportedObjectBraces](http://jscs.info/rule/requireSpacesInsideImportedObjectBraces) by Maks Sadowsky

When you need or don't need additional parentheses -

import /*–>*/{foo, bar}/*<–*/ from 'foo-bar';

[requireUseStrict](http://jscs.info/rule/requireUseStrict) Erik Vold

Short and cool - ask you to use "use strict" pragma on top of the file if you so desire.

[requireImportsAlphabetized](http://jscs.info/rule/requireImportsAlphabetized) by Ray Hammond

Keeps your imports alphabetized, pretty handy way to keep your dependency in tidy state.

Presets

  • Preset: allow URLs inside comments for airbnb (andreyvolokitin)
  • Preset: add requireSpaceBeforeObjectValues rule to airbnb preset (Oleg Gaidarenko)
  • Preset: add requireSpacesInsideImportedObjectBraces to airbnb (Maks Sadowsky)
  • Preset: Add 'requireSpaceBetweenArguments' to google preset (Jon Merrifield)

Internal

There are a lot of internal changes but we like to keep this changelog short and tidy. We will continue to update this shortly.