Jforrester has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/243233

Change subject: [WIP] Use grunt-postcss with stylelint instead of csslint
......................................................................

[WIP] Use grunt-postcss with stylelint instead of csslint

Change-Id: I63d3353cfeb6a64d2ee7670223247cc8a188accc
---
A .stylelintrc
M Gruntfile.js
M package.json
3 files changed, 103 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor 
refs/changes/33/243233/1

diff --git a/.stylelintrc b/.stylelintrc
new file mode 100644
index 0000000..6bd8f72
--- /dev/null
+++ b/.stylelintrc
@@ -0,0 +1,71 @@
+{
+       "rules": {
+               "at-rule-empty-line-before": [ 2, "always", {
+                       "except": ["blockless-group"]
+               } ],
+               "at-rule-no-vendor-prefix": 2,
+               "block-closing-brace-newline-after": [ 2, "always" ],
+               "block-closing-brace-newline-before": [ 2, "always-multi-line" 
],
+               "block-closing-brace-space-before": [ 2, "always-single-line" ],
+               "block-no-empty": 2,
+               "block-opening-brace-newline-after": [ 2, "always-multi-line" ],
+               "block-opening-brace-space-after": [ 2, "always-single-line" ],
+               "block-opening-brace-space-before": [ 2, "always" ],
+               "color-hex-case": [ 2, "lower" ],
+               "color-hex-length": [ 2, "short" ],
+               "color-no-invalid-hex": 2,
+               "comment-empty-line-before": [ 2, "always" ],
+               "declaration-bang-space-after": [ 2, "never" ],
+               "declaration-bang-space-before": [ 2, "always" ],
+               "declaration-block-semicolon-newline-after": [ 2, 
"always-multi-line" ],
+               "declaration-block-semicolon-space-after": [ 2, 
"always-single-line" ],
+               "declaration-block-semicolon-space-before": [ 2, "never" ],
+               "declaration-colon-space-after": [ 2, "always" ],
+               "declaration-colon-space-before": [ 2, "never" ],
+               "function-calc-no-unspaced-operator": 2,
+               "function-comma-space-after": [ 2, "always" ],
+               "function-comma-space-before": [ 2, "never" ],
+               "function-parentheses-space-inside": [ 2, "never" ],
+               "function-space-after": [ 2, "always" ],
+               "function-url-quotes": [ 2, "double" ],
+               "indentation": [ 2, "tab" ],
+               "media-feature-colon-space-after": [ 2, "always" ],
+               "media-feature-colon-space-before": [ 2, "never" ],
+               "media-feature-name-no-vendor-prefix": 2,
+               "media-feature-range-operator-space-after": [ 2, "always" ],
+               "media-feature-range-operator-space-before": [ 2, "always" ],
+               "media-query-list-comma-newline-after": [ 2, 
"always-multi-line" ],
+               "media-query-list-comma-space-after": [ 2, "always-single-line" 
],
+               "media-query-list-comma-space-before": [ 2, "never" ],
+               "media-query-parentheses-space-inside": [ 2, "never" ],
+               "nesting-block-opening-brace-newline-before": [ 2, 
"always-multi-line" ],
+               "nesting-block-opening-brace-space-before": [ 2, 
"always-single-line" ],
+               "no-eol-whitespace": 2,
+               "no-missing-eof-newline": 2,
+               "no-multiple-empty-lines": 2,
+               "number-leading-zero": [ 2, "always" ],
+               "number-no-trailing-zeros": 2,
+               "number-zero-length-no-unit": 2,
+               "property-no-vendor-prefix": 2,
+               "rule-nested-empty-line-before": [ 2, "always-multi-line", {
+                       "except": ["first-nested"]
+               } ],
+               "root-no-standard-properties": 2,
+               "rule-no-shorthand-property-overrides": 2,
+               "rule-non-nested-empty-line-before": [ 2, "always-multi-line" ],
+               "rule-properties-order": [ 2, "alphabetical" ],
+               "rule-trailing-semicolon": [ 2, "always" ],
+               "selector-combinator-space-after": [ 2, "always" ],
+               "selector-combinator-space-before": [ 2, "always" ],
+               "selector-list-comma-newline-after": [ 2, "always" ],
+               "selector-list-comma-space-before": [ 2, "never" ],
+               "selector-no-vendor-prefix": 2,
+               "selector-pseudo-element-colon-notation": [ 2, "double" ],
+               "selector-root-no-composition": 2,
+               "string-quotes": [ 2, "double" ],
+               "value-list-comma-newline-after": [ 2, "always-multi-line" ],
+               "value-list-comma-space-after": [ 2, "always-single-line" ],
+               "value-list-comma-space-before": [ 2, "never" ],
+               "value-no-vendor-prefix": 2
+       }
+}
diff --git a/Gruntfile.js b/Gruntfile.js
index d57fec5..a22fabd 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -23,17 +23,19 @@
                                pages[ name ] = path;
                        } );
                        return pages;
-               } )();
+               } )(),
+               fs = require( 'fs' ),
+               stylelintConfig = JSON.parse( fs.readFileSync( '.stylelintrc', 
'utf8' ) );
 
        grunt.loadNpmTasks( 'grunt-jsonlint' );
        grunt.loadNpmTasks( 'grunt-banana-checker' );
        grunt.loadNpmTasks( 'grunt-contrib-clean' );
        grunt.loadNpmTasks( 'grunt-contrib-concat' );
        grunt.loadNpmTasks( 'grunt-contrib-copy' );
-       grunt.loadNpmTasks( 'grunt-contrib-csslint' );
        grunt.loadNpmTasks( 'grunt-contrib-jshint' );
        grunt.loadNpmTasks( 'grunt-contrib-watch' );
        grunt.loadNpmTasks( 'grunt-css-url-embed' );
+       grunt.loadNpmTasks( 'grunt-postcss' );
        grunt.loadNpmTasks( 'grunt-cssjanus' );
        grunt.loadNpmTasks( 'grunt-jscs' );
        grunt.loadNpmTasks( 'grunt-karma' );
@@ -265,6 +267,26 @@
                        },
                        all: '{.jsduck,build,demos,src,tests}/**/*.css'
                },
+               postcss: {
+                       options: {
+                               map: false,
+                               processors: [
+                                       require( 'stylelint' )( stylelintConfig 
)
+                               ]
+                       },
+                       code: [ {
+                               expand: true,
+                               flatten: true,
+                               src: [ 'src/**/*.css' ],
+                               dest: 'src/'
+                       } ],
+                       demos: [ {
+                               expand: true,
+                               flatten: true,
+                               src: [ 'demos/**/*.css' ],
+                               dest: 'demos/'
+                       } ]
+               },
                jsonlint: {
                        all: [
                                '**/*.json',
@@ -340,7 +362,7 @@
        } );
 
        grunt.registerTask( 'build', [ 'clean', 'concat', 'cssjanus', 
'cssUrlEmbed', 'copy', 'buildloader' ] );
-       grunt.registerTask( 'lint', [ 'jshint', 'jscs:main', 'csslint', 
'jsonlint', 'banana' ] );
+       grunt.registerTask( 'lint', [ 'jshint', 'jscs:main', 'postcss', 
'jsonlint', 'banana' ] );
        grunt.registerTask( 'unit', [ 'karma:main' ] );
        grunt.registerTask( 'fix', [ 'jscs:fix' ] );
        grunt.registerTask( '_test', [ 'lint', 'git-build', 'build', 'unit' ] );
diff --git a/package.json b/package.json
index a3b0dc5..632c7a6 100644
--- a/package.json
+++ b/package.json
@@ -19,26 +19,27 @@
     }
   ],
   "devDependencies": {
-    "grunt": "0.4.5",
-    "grunt-cli": "0.1.13",
     "grunt-banana-checker": "0.3.0",
+    "grunt-cli": "0.1.13",
     "grunt-contrib-clean": "0.6.0",
     "grunt-contrib-concat": "0.5.1",
     "grunt-contrib-copy": "0.8.1",
-    "grunt-contrib-csslint": "0.5.0",
     "grunt-contrib-jshint": "0.11.3",
-    "grunt-jsonlint": "1.0.4",
     "grunt-contrib-watch": "0.6.1",
     "grunt-css-url-embed": "1.6.1",
     "grunt-cssjanus": "0.2.4",
     "grunt-jscs": "2.1.0",
+    "grunt-jsonlint": "1.0.4",
     "grunt-karma": "0.12.1",
-    "karma": "0.13.10",
+    "grunt-postcss": "0.6.0",
+    "grunt": "0.4.5",
     "karma-chrome-launcher": "0.2.0",
     "karma-coverage": "0.5.2",
     "karma-firefox-launcher": "0.1.6",
     "karma-qunit": "0.1.5",
     "karma-sauce-launcher": "0.2.14",
-    "qunitjs": "1.18.0"
+    "karma": "0.13.10",
+    "qunitjs": "1.18.0",
+    "stylelint": "1.1.0"
   }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/243233
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I63d3353cfeb6a64d2ee7670223247cc8a188accc
Gerrit-PatchSet: 1
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Jforrester <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to