Set up node-jscs via Grunt (and pass it)
authorTimo Tijhof <krinklemail@gmail.com>
Fri, 31 Jan 2014 02:03:11 +0000 (18:03 -0800)
committerKrinkle <krinklemail@gmail.com>
Mon, 24 Mar 2014 23:41:17 +0000 (23:41 +0000)
commit4ec6b0cce19a93a2e9b8aca4b0911539d67b4534
tree3c822983913b88ebe4a3f799caeaecad00e5dbfb
parenteba9eb1e501dd892df0c45830f7f7d17a4a4bac8
Set up node-jscs via Grunt (and pass it)

* Set up Grunt via package.json (run `npm install` in mediawiki-core)
* Add grunt task for node-jscs (NEW)
  This is a style checker (as opposed to jshint, which is for
  code quality). There are a few small style-related things that
  JSHint can check (camelcase, onevar etc.) but those are being
  deprecated in JSHint v3, people should use more sophisticated
  tools like node-jscs for this instead. As such this commit
  removes moves of those options from our jshint configuration.
  See: http://jshint.com/blog/jshint-3-plans/
* Add grunt task for jshint
  This will use the same jshint configuration as we use on
  Jenkins but makes it easier to run locally from the command
  line by being part of the same `$ grunt test` task list.

Also:
* Changed jshintignore to use "dir/**"" instead of "/dir" or "dir"
  because the latter is not compatible with Grunt for some reason.
  See also https://github.com/gruntjs/grunt-contrib-jshint/issues/126.

Examples of coding style rules that were being violated that we
can now catch in node-jscs:
* Operator "," should stick to preceding expression
* Missing space after "if" keyword
* Multiple line break
* Empty block (in jquery.textSelection and mediawiki.language)

Bug: 54218
Change-Id: Ib9d7eab9f0d5cea5fb33f0b9f82e5554897fdfe0
52 files changed:
.jscsrc [new file with mode: 0644]
.jshintignore
.jshintrc
resources/jquery/jquery.autoEllipsis.js
resources/jquery/jquery.byteLimit.js
resources/jquery/jquery.colorUtil.js
resources/jquery/jquery.highlightText.js
resources/jquery/jquery.localize.js
resources/jquery/jquery.placeholder.js
resources/jquery/jquery.qunit.completenessTest.js
resources/jquery/jquery.suggestions.js
resources/jquery/jquery.tablesorter.js
resources/jquery/jquery.textSelection.js
resources/mediawiki.action/mediawiki.action.edit.editWarning.js
resources/mediawiki.action/mediawiki.action.edit.js
resources/mediawiki.action/mediawiki.action.history.js
resources/mediawiki.action/mediawiki.action.view.metadata.js
resources/mediawiki.api/mediawiki.api.category.js
resources/mediawiki.language/languages/fi.js
resources/mediawiki.language/languages/hy.js
resources/mediawiki.language/languages/la.js
resources/mediawiki.language/languages/os.js
resources/mediawiki.language/languages/uk.js
resources/mediawiki.language/mediawiki.language.js
resources/mediawiki.page/mediawiki.page.gallery.js
resources/mediawiki.page/mediawiki.page.image.pagination.js
resources/mediawiki.special/mediawiki.special.block.js
resources/mediawiki.special/mediawiki.special.javaScriptTest.js
resources/mediawiki.special/mediawiki.special.preferences.js
resources/mediawiki.special/mediawiki.special.upload.js
resources/mediawiki/mediawiki.Title.js
resources/mediawiki/mediawiki.debug.js
resources/mediawiki/mediawiki.feedback.js
resources/mediawiki/mediawiki.jqueryMsg.js
skins/common/IEFixes.js
skins/common/ajax.js
skins/common/config.js
skins/common/upload.js
skins/common/wikibits.js
skins/vector/vector.js
tests/frontend/Gruntfile.js [new file with mode: 0644]
tests/frontend/package.json [new file with mode: 0644]
tests/qunit/data/generateJqueryMsgData.php
tests/qunit/data/mediawiki.jqueryMsg.data.js
tests/qunit/suites/resources/jquery/jquery.color.test.js
tests/qunit/suites/resources/jquery/jquery.makeCollapsible.test.js
tests/qunit/suites/resources/jquery/jquery.placeholder.test.js
tests/qunit/suites/resources/jquery/jquery.textSelection.test.js
tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.test.js