aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Minar2014-01-30 10:51:10 -0800
committerIgor Minar2014-01-30 11:39:53 -0800
commit7f4edaff6e50bdfc524e7dc70ed96663fd7dcea2 (patch)
treefe2be224551a6554c18a7f496a9e348ad983de70
parent6dcfccb32c79019f16a2c97ad50cbcc81f61095c (diff)
downloadangular.js-7f4edaff6e50bdfc524e7dc70ed96663fd7dcea2.tar.bz2
chore(build): add jscs code style check to our build
Closes #6062
-rw-r--r--.jscs.json3
-rw-r--r--.jscs.json.todo22
-rw-r--r--Gruntfile.js10
-rw-r--r--package.json5
4 files changed, 37 insertions, 3 deletions
diff --git a/.jscs.json b/.jscs.json
new file mode 100644
index 00000000..e2307d16
--- /dev/null
+++ b/.jscs.json
@@ -0,0 +1,3 @@
+{
+ "disallowKeywords": ["with"]
+}
diff --git a/.jscs.json.todo b/.jscs.json.todo
new file mode 100644
index 00000000..6f6f0416
--- /dev/null
+++ b/.jscs.json.todo
@@ -0,0 +1,22 @@
+// This is an incomplete TODO list of checks we want to start enforcing
+//
+// The goal is to enable these checks one by one by moving them to .jscs.json along with commits
+// that correct the existing code base issues and make the new check pass.
+
+{
+ "requireCurlyBraces": ["if", "else", "for", "while", "do", "try", "catch"],
+ "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch"],
+ "disallowLeftStickedOperators": ["?", "+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="],
+ "disallowRightStickedOperators": ["?", "+", "/", "*", ":", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="],
+ "requireRightStickedOperators": ["!"],
+ "requireLeftStickedOperators": [","],
+ "disallowImplicitTypeConversion": ["string"],
+ "disallowMultipleLineBreaks": true,
+ "disallowKeywordsOnNewLine": ["else"],
+ "disallowTrailingWhitespace": true,
+ "requireLineFeedAtFileEnd": true,
+ "validateJSDoc": {
+ "checkParamNames": true,
+ "requireParamTypes": true
+ }
+}
diff --git a/Gruntfile.js b/Gruntfile.js
index 721bc16e..d66f6620 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -12,6 +12,7 @@ module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-ddescribe-iit');
grunt.loadNpmTasks('grunt-jasmine-node');
+ grunt.loadNpmTasks("grunt-jscs-checker");
grunt.loadNpmTasks('grunt-merge-conflict');
grunt.loadNpmTasks('grunt-parallel');
grunt.loadNpmTasks('grunt-shell');
@@ -145,6 +146,13 @@ module.exports = function(grunt) {
}
},
+ jscs: {
+ src: ['src/**/*.js', 'test/**/*.js'],
+ options: {
+ config: ".jscs.json"
+ }
+ },
+
build: {
scenario: {
dest: 'build/angular-scenario.js',
@@ -301,6 +309,6 @@ module.exports = function(grunt) {
grunt.registerTask('webserver', ['connect:devserver']);
grunt.registerTask('package', ['bower','clean', 'buildall', 'minall', 'collect-errors', 'docs', 'copy', 'write', 'compress']);
grunt.registerTask('package-without-bower', ['clean', 'buildall', 'minall', 'collect-errors', 'docs', 'copy', 'write', 'compress']);
- grunt.registerTask('ci-checks', ['ddescribe-iit', 'merge-conflict', 'jshint']);
+ grunt.registerTask('ci-checks', ['ddescribe-iit', 'merge-conflict', 'jshint', 'jscs']);
grunt.registerTask('default', ['package']);
};
diff --git a/package.json b/package.json
index eeec930e..7a505c81 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,7 @@
"url": "https://github.com/angular/angular.js.git"
},
"devDependencies": {
- "grunt": "~0.4.1",
+ "grunt": "~0.4.2",
"bower": "~1.2.2",
"grunt-bump": "~0.0.13",
"grunt-contrib-clean": "~0.5.0",
@@ -41,7 +41,8 @@
"grunt-shell": "~0.4.0",
"semver": "~2.1.0",
"lodash": "~2.1.0",
- "browserstacktunnel-wrapper": "~1.1.1"
+ "browserstacktunnel-wrapper": "~1.1.1",
+ "grunt-jscs-checker": "~0.3.2"
},
"licenses": [
{