November 9th, 2016
Changes
- Reverted back to ESlint v2.x to prevent a breaking change in Node < v4
Fixes
- Fixed an exception for partial idents in
space-around-operator
#940 - Fixed an issue with negative numbers in
space-around-operator
#945
November 7th, 2016
Fixes
- Fixed an issue with the
--no-exit
-q
flag not being respected and unhandled errors/exceptions being thrown by the CLI - Fixed an issue with variable declarations showing as properties in the
no-duplicate-properties
rule #937 - Fixed an issue with variable declarations showing as properties in the
declarations-before-nesting
rule #937
November 6th, 2016
The 'you can ignore those bad habits again' update
** 🎉 DISABLE LINTERS 🎉 ** The ability to enable and disable linters on the fly has finally(!) been added #677 docs
A massive thank you to everyone who commented/contributed/reported and tested this feature this was very much a community effort here. An extra special thank you to
For his initial hard work in getting this off the ground. There were lots of others who have fixed everything from test issues to AST issues to make this possible afterwards, so thanks to you too!
New Features
max-warnings
which is available with the sass-lint CLI is now available as an option in your config file too #857- New Rule
no-url-domains
rule #846 docs - New Rule
max-line-length
rule was added #840 docs - New Rule
max-file-line-count
rule was added #842 docs - New Rule
declarations-before-nesting
rule was added #866 docs
Fixes
- Fixed an issue with an un handled error being thrown in certain circumstances for the
space-before-colon
rule #894 - Operators in variable names are now handled correctly for the
variable-name-format
rule #903 - Fixed an issue with string values in the
shorthand-values
rule #848 - Fixed an issue with valid strict BEM producing an error in the
*-name-format
rules #892 - Fixed an issue with non-string user conventions in the
border-zero
rule #913 - Fixed an issue where BOM markers in files were causing parse errors or random errors/warnings #893
- Fixed an issue with interpolates properties in the
no-duplicate-properties
rule #915 - Fixed a possible error with invalid user conventions in the
border-zero
rule #926
Changes
- Node 0.10 and 0.12 are no longer officially supported by sass-lint. We've not deliberately broken these builds but we will no longer be testing against them either #896 & #924
- In future the
no-url-protocols
rule will not lint domains in URL's for now a new flag is added to mimic this behaviour. The newno-url-domains
rule can be used instead #813 - Front matter such as those present in Jekyll templates will now be ignored in all files before passing to the AST / Linting 897
- Running the tests no longer required sass-lint development to be
npm-link
ed or globally installed. #911 - The concentric property list in
property-sort-order
was updated to reflect the latest release #922
Updates
- AST fixes have arrived with version 3.4.7 of gonzales-pe #906
- Updated to the latest versions of many other packages
Documentation
- The documentation around configuring a rule was tidied up and made clearer #910
Special thanks to
August 25, 2016
Fixes
- Fixed an issue with nth selectors in the
no-mergeable-selectors
rule #834 - Fixed an issue with atrule arguments containing functions in the
no-mergeable-selectors
rule #826 - Fixed an issue with hex colors being ignored in the
shorthand-values
rule #836
August 18, 2016
Fixes
- Fixed an issue with the indentation rule when it encountered at-rules with no block immediately preceding a map #779 #783
- Fixed an issue in
single-lint-per-selector
where inline comments were seen as selectors #789 - Fixed an issue with interpolation in placeholders within the
bem-depth
rule #782 - Removed duplicated code from
no-mergeable-selectors
to helper methods
Documentation
- Fixed typos in no-vendor-prefixes rule documentation #787
- Added link to Visual Studio extension #815
New Rules
- Added the
no-color-hex
rule to disallow all hexadecimal colour definitions #754
Updates
- Gonzales-pe updated to version 3.4.4 which fixes a lot of longstanding issues see the Changelog
June 23, 2016
Unfortunately it seems a reversion snuck into gonzales-pe's latest version so we're pinning it back where it was until it's fixed. Sorry..
June 23, 2016
Parser patching
Gonzales-pe had a few important updates so we chose to do a patch release to make sure everyone gets to benefit from less parse errors as soon as possible!
Fixes
- Fixed an issue in
shorthand-values
where values within parenthesis would be ignored #748 - Corrected the documentation for
property-units
#740 - Fixed an issue where config files were not being recursively searched for #756
Updates
- Gonzales-pe updated to version 3.3.5 see changelog #746
June 17, 2016
We're gonna need a bigger boat
Indentation
A lot of work on the indentation rule is present in 1.8 including the following:
- Tabs are now supported and can be used as a valid option in your config #592
- LF and CRLF are now supported for both spaces and tabs.
.sass
support is now included (Could be a little buggy due to some discrepancies in the AST) #611- Mixed spaces and tabs warnings are now correctly informing you if you've specified that you'll use spaces and it detects tabs. #382
- Indenting of multiline properties in media queries etc is now supported #426
Fixes
- Fixed an issue with interpolated properties in the
shorthand-values
rule #669 - Corrected the name of the
pseudo-element
rule #682 - Corrected the name of the
no-empty-rulesets
rule #684 - Corrected the name of the
no-trailing-zero
rule #685 - Fixed an issue where partially matching rules affected each others severity levels #687
- Fixed an issue with nested properties in the
no-misspelled-properties
#352 - Fixed an issue with interpolated properties in the
no-misspelled-properties
#679 - Fixed an issue with interpolated selectors in the
no-mergeable-selectors
#703 - Added the absolute path module to fix an issue with Node 0.10 #706
- Added a new method and updated gulp-sass-lint to fix an config files and ignored files not working correctly #452
- Fixed an issue with the
!important
flag raising a lint warning within thevariable-for-property
rule #714 - Fixed an issue where sass-lint would try to lint a directory with a .scss or .sass extension, now sass-lint will only attempt to lint files 🎉 #719 & #555
- Fixed an issue where Sass color functions would raise lint warnings in the
no-color-keywords
rule #717 - Fixed an unhandled error with the
pseudo-element
rule #671
Changes
- Added flexbox and outline properties to the recess order preset #666
- Added missing pseudo classes to our pseudo class master list #675
- Added pascal case format to all name format rules #678
- Included files in your config file can now be an array similar to the ignored files option #668
- Added PR and issue templates #692
- Now testing on Node v6 #699
- Added the
ignore-non-standard
option to theno-vendor-prefixes
rule. This allows you to blanket ignore the vendor prefixes on any non standard properties #702 - The
url-quotes
rule now highlights the beginning of the detect rather than the end #712 - All helper tests have been split and rearranged for ease of use when developing #322
- Moved away from our Gonzales-pe-sl fork back to gonzales-pe as we've made changes to the main AST now #722
New Rules
- Added
pseudo-element
rule to enforce the use of single colons in pseudo classes and double colons in pseudo elements. #662 - Added
no-universal-selectors
rule to warn against the use of universal selectors (*) #694 - Added
no-attribute-selectors
rule to warn against the use of attribute selectors #694 - Added
no-combinators
rule to warn against the use of combinators #694 - Added
attribute-quotes
rule to enforce the use of the use of quotes in attribute values #707 - Added
no-disallowed-properties
rule to warn against the use of certain properties. #546
April 27, 2016
You wait months for one release and then four come along in a week!
Fixes
- Fixed an issue with final newline not registering correctly for
.sass
syntax #627 & #630. - Fixed an issue with
placeholder-name-format
generating warnings on variables used as placeholder names. - Fixed the
empty-args
rule being wrongly labeled asno-empty-args
in lint warnings/errors #625 - Fixed an issue with
no-color-literals
incorrectly flagging variable names and map identifiers that shared their names with color literals #538 - CLI examples corrected thanks to alxndr - #649
Changes
no-color-literals
now includes two extra optionsallow-map-identifiers
andallow-variable-identifiers
which allow you to fine tune your use of color literals in map identifiers/variables on top of the existing functionality see the docs- Updated to
gonzales-pe-sl
v3.2.8
April 22, 2016
Fixes
- Fix
brace-style
rule incorrectly flagging@imports
as single-line statements #634 - Fix
brace-style
rule not allowing multiline parameters #632 no-misspelled-properties
now correctly ignores vendor prefixes #606- Now correctly strips double-barreled vendor prefixes such as
-moz-osx-
The update that time forgot
- Issues publishing to npm
April 21, 2016
The long lost 1.6 update
WARNING
- We've moved to the latest version of gonzales-pe and then onto our own fork in which we've fixed our issues with CRLF etc. All of our tests are passing but there may be unforeseen regressions in gonzales that we will aim to fix. If you find a problem like this please report it to us and we'll investigate further. You can then decide to keep your sass-lint dependency to 1.5.1 if you so choose.
Changes
- Updated all rules to work with the new Gonzales-pe 3.2.x release #495
No breaking changes in the sense that all the rules are the same and pass the same tests or more BUT many did involve a complete re write.
- Now using gonzales-pe-sl 3.2.7 fork
- Update the no-mergeable-selectors rule to ignore certain situations and work a little more reliably across codebases
- Added BEM conventions to all naming rules #614
- Added Appveyor CI for testing against CRLF line endings on Windows
CLI
- Add max warnings option to the CLI --max-warnings #568
New Rules
no-trailing-whitespace
rule added #605
Fixes
- Fixed parsing error when using interpolated values #44, #184, #210, #222, #321, #486,
- Fixed parsing error when using the
!global
flag #56 - Having
-
within a class name will no longer return a parse error #229 - Fixed parsing error when using extrapolated variable as extend name #313
- Fixed an un-handled error thrown from the indentation rule #389
- Fixed an issue with final newline rule for sass #445
- Updated indentation rule to work with CRLF (indentation is mainly scss for the moment) #524
- Fixed parsing error when using nested maps #531
- Fixed parsing error when using variables for placeholder name #532
- Fixed issue with dots in filenames #541
- Fixed use of modulo operator in SCSS syntax #565
- Fixed an issue with space-around-operator and unicode #620
- Fixed an issue with CRLF line endings in the no-trailing-whitespace rule #623
A big thank you to everyone who reported issues or contributed to the discussion around issues and also for everyone bearing with us while we go this monster update ready for you.
February 26, 2016
Hotfix
Fixes
- Fix lodash dependancy issue #549
January 28, 2016
New year blues
Changes
- AST parse errors will now be returned to the user as
Fatal
lint errors this prevents un-handled errors breaking builds #459 - Sass-lint plugin for Brackets added to the README #470
- Sass-lint plugin for IntelliJ IDEA, RubyMine, WebStorm, PhpStorm, PyCharm, added to the README #484
CLI
- Updated error codes, whenever errors are present even when cli is using the
--no-exit
flag a error code of 1 will be output #221
Fixes
- Fixed an issue where an error of
next is undefined
would be thrown in thespace-after-colon
rule #468 - Fixed an issue with negative z-index values in the
space-around-operator
rule #454 - Fixed another minor issue with
space-around-operator
to prevent a possible crash #483
December 10, 2015
The long overdue update!
Changes
- The config file can now be cached for a small performance boost #279
- Added an
ignore-custom-properties
option to the property sort order rule, allowing you to ignore/include non standard properties in your property sort orders #302 - Streamlined the
force-pseudo-nesting
,force-element-nesting
andforce-attribute-nesting
rules #323 - Improved the testing of our config handling #403
- Corrected the naming of the
no-misspelled-properties
tests #405 - Updated some of our dependencies to their latest versions #428
no-trailing-zero
now acts similar to theno-unnecessary-mantissa
rule of scss-lint in that it warns about unnecessary decimals #438
CLI
- [-s --syntax] Syntax flag allows you to specify syntax of the file(s) you wish to lint #381
New Rules
Fixes
- Pre emptive fix for
space-around-operator
with negative values #394 - Pre emptive fix for
space-around-operator
with percentage values #425 no-trailing-zero
now works as expected with 0 values after a decimal #439- Percentage values are now correctly handled and reported in the
shorthand-values
rule #435 function-name-format
no longer incorrectly reports on valid default CSS & Sass functions #442- Corrected a typo in config file documentation #384
Brought to you by
A big thankyou to everyone who reported issues or contributed to the discussion around issues
November 16, 2015
Changes
- Added coveralls code coverage tool, updated relevant tests #351
Fixes
- Added missing
background-clip
property to the SMACCS sort order #366 - Fixed an issue with negative values in the
shorthand-values
rule #375 - Fixed an issue where
mixin-name-format
was attempting to lint extends #396
October 28, 2015
Changes
- Add tests for ignored files when using the CLI #72
Fixes
- Ignored files passed in using the
-i
flag are now correctly ignored #129 - Fixed an issue where the
no-url-protocols
rule would ignore the users' config #335 - The
hex-length
rule now correctly handles short hexes #341 - The
no-url-protocols
rule no longer incorrectly issues warnings for data-urls #340 - The
trailing-semicolon
rule no longer incorrectly issues warnings for nested properties #359 - The
space-before-brace
rule no longer incorrectly issues warnings for nested properties #361
October 17, 2015
Changes
- Added the missing rules
function-name-format
,mixin-name-format
,placeholder-name-format
andvariable-name-format
to the default config #315
Fixes
- Corrected an issue with the rule
brace-style
that would crash sass-lint #301 - Fixed an issue where user configs and options were being ignored or overwritten by default rules #309
October 12, 2015
Lint all the things!
1.3.0 introduces a whole raft of changes, fixes and new rules. Enjoy!
Changes
- Now testing against Node 4 #145
no-duplicate-properties
now accepts an exclusion whitelist #156- IDE integrations added to README (Atom & Sublime Text) #163
- Output is now silenced on no errors #141
- Option
config-file
will tell Sass Lint the path to a custom config file. #226 - All rules except indentation now working correctly with
.sass
syntax #258 space-between-parens
rule now allows multiline arguments #260empty-line-between-blocks
rule now optionally allows single line rulesets #282- The
no-duplicate-properties
rule exclusion whitelist only works for properties directly after one another. #280
CLI
- -f --format Format flag allows you to specify output format #127
- -o --output Output flag allows you to specify a file to output to #127
Rules
- brace-style
- force-attribute-nesting
- force-element-nesting
- force-pseudo-nesting
- function-name-format
- mixin-name-format
- no-mergeable-selectors
- no-misspelled-properties
- no-qualifying-elements
- no-trailing-zero
- no-transition-all
- no-url-protocols
- no-vendor-prefixes
- placeholder-name-format
- shorthand-values
- url-quotes
- variable-name-format
Fixes
- Capitalised all warning messages #137
- Line endings should now be consistently working cross platform #154
- Fixed issue with non resetting test prefixes #182
- Fixed resetting of test defaults #186
- Documentation fixes #235
- Absolute config paths being converted to relative all the time #223
- Multiple fixes for
.sass
syntax #258 - Fixed an issue with the warning message for
no-qualifying-elements
#262 - Fixed a bug in
no-shorthand-values
rule #263 indentation
rule now works with maps and multiline arguments also fixes a few edge cases #104 260
Brought to you by..
- Sam Richard
- Ben Griffith
- Dan Purdy
- Ben Rothman
- Michael Vendivel
- Joshua Clanton
- Kenneth Skovhus
- Nick
- Anders Olsen Sandvik
- Nicolas Fortin
- Alan Souza
A big thankyou to everyone who reported issues or contributed to the discussion around issues
October 5, 2015
Changes
- Lock AST to known good version (#245)
Fixes
- Top level mixins now don't raise an incorrect
mixins before declarations
warning (#227) - Fix an issue with
final-newline
for the.sass
syntax (#207) - The
placeholder-in-extend
rule now works for the.sass
syntax (#199) - The
clean-import-paths
rule now works for the.sass
syntax (#179) - The
extends-before-mixins
rule now works for the.sass
syntax (#193)
September 22, 2015
Fixes
- CLI output formatting now works (#213)
September 19, 2015
Fixes
- Extends rules now work with
.sass
syntax (#189) - Silence output if there are no errors (#170)
- Single line per selector now works with
.sass
syntax (#168) - Custom options no longer overwrite defaults (#159)
- Fix CLI config error (#150)
September 7, 2015
Rockin' Rules and Fixes!
Huge thanks to Ben Griffith and Dan Purdy for their awesome work on getting 1.2.0 out the door and welcome them as collaborators!
Fixes
- Color Keyword with variable names no longer fails (#126)
- Space After Comma rule no longer incorrectly reports end of lines as spaces (#125)
- No longer errors on empty files (#91)
- Update naming of
clean-import-paths
andno-duplicate-properties
(#118) - Fix colons in parens being not parsed for
space-before-colon
(#98) - Fix issue with
space-after-comma
and new lines (#105) - Fix for
space-after-colon
only finding some colons (#98) - Fix
clean-import-path
bug when importing CSS (#95) - Fix EOL issues on Windows (#65)
- Fix issue with
mixins-before-declarations
for strange Gonzales parsing (#80) - Fix typo in
quotes
doc
Changes
New
- Enhance
property-sort-order
with RECESS, SMACSS, and Concentric default sort orders (#20) - Add Sample Sass Lint config file (#57)
- Add tests for CLI (#72, #108)
- Add ability to write output to file and change output formatting (#48)
- Add ability to specify that configured rules override instead of merge with defaults (#58)
Rules
- no-color-keywords
- variable-for-property
- no-color-literals
- no-duplicate-properties
- border-zero
- no-css-comments
- no-invalid-hex
- empty-args
- hex-notation
- hex-length
- zero-unit
- clean-import-paths
August 31, 2015
CLI Goodness
New
- Add Command Line Interface usage for Sass Lint! (#42)
- Add ability to define custom config path (#47)
- Add ability for config to be found recursively up the directory tree to a user's home directory
Fixes
- Empty line between root-level blocks (#54)
- Bang whitespace include
!default
flag (#53) - One declaration per line inside arguments (#51)
- Leading zero non-decimal issues (#49)
- Indentation rule with parenthesis (#46)
August 29, 2015
Initial Release!
Rules
- extends-before-mixins
- extends-before-declarations
- placeholder-in-extend
- mixins-before-declarations
- one-declaration-per-line
- empty-line-between-blocks
- single-line-per-selector
- no-empty-rulesets
- no-extends
- no-ids
- no-important
- indentation
- leading-zero
- nesting-depth
- property-sort-order
- space-after-comma
- space-before-colon
- space-after-colon
- space-before-brace
- space-before-bang
- space-after-bang
- space-between-parens
- trailing-semicolon
- final-newline
- no-debug
- no-warn
- quotes