diff --git a/Gruntfile.js b/Gruntfile.js index 9c8cc854bc..4e713d7c85 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -40,6 +40,21 @@ module.exports = function (grunt) { } }, + jscs: { + options: { + config: 'js/.jscs.json', + }, + gruntfile: { + src: ['Gruntfile.js'] + }, + src: { + src: ['js/*.js'] + }, + test: { + src: ['js/tests/unit/*.js'] + } + }, + concat: { options: { banner: '<%= banner %><%= jqueryCheck %>', @@ -288,6 +303,7 @@ module.exports = function (grunt) { grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-html-validation'); grunt.loadNpmTasks('grunt-jekyll'); + grunt.loadNpmTasks('grunt-jscs-checker'); grunt.loadNpmTasks('grunt-recess'); grunt.loadNpmTasks('grunt-saucelabs'); grunt.loadNpmTasks('grunt-sed'); @@ -296,7 +312,7 @@ module.exports = function (grunt) { grunt.registerTask('validate-html', ['jekyll', 'validation']); // Test task. - var testSubtasks = ['dist-css', 'jshint', 'qunit', 'validate-html']; + var testSubtasks = ['dist-css', 'jshint', 'jscs', 'qunit', 'validate-html']; // Only run Sauce Labs tests if there's a Sauce access key if (typeof process.env.SAUCE_ACCESS_KEY !== 'undefined') { testSubtasks.push('connect'); diff --git a/js/.jscs.json b/js/.jscs.json new file mode 100644 index 0000000000..2f04d9cd61 --- /dev/null +++ b/js/.jscs.json @@ -0,0 +1,14 @@ +{ + "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return"], + "requireSpacesInFunctionExpression": { "beforeOpeningCurlyBrace": true }, + "disallowLeftStickedOperators": ["?", "+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="], + "requireRightStickedOperators": ["!"], + "disallowRightStickedOperators": ["?", "/", "*", ":", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="], + "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"], + "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], + "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], + "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], + "disallowKeywords": ["with"], + "validateLineBreaks": "LF", + "requireLineFeedAtFileEnd": true +} diff --git a/package.json b/package.json index 813cf1d135..3c9fd7fe66 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ , "grunt-contrib-watch": "~0.5.3" , "grunt-html-validation": "~0.1.6" , "grunt-jekyll": "~0.4.0" + , "grunt-jscs-checker": "~0.2.5" , "grunt-recess": "~0.5.0" , "grunt-saucelabs": "~4.1.2" , "grunt-sed": "~0.1.1"