mirror of
https://github.com/twbs/bootstrap.git
synced 2025-08-12 08:34:08 +02:00
Merge pull request #11761 from twbs/jscs
add JavaScript Code Style checker integration
This commit is contained in:
20
Gruntfile.js
20
Gruntfile.js
@@ -1,6 +1,6 @@
|
|||||||
/* jshint node: true */
|
/* jshint node: true */
|
||||||
|
|
||||||
module.exports = function(grunt) {
|
module.exports = function (grunt) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
// Force use of Unix newlines
|
// Force use of Unix newlines
|
||||||
@@ -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: {
|
concat: {
|
||||||
options: {
|
options: {
|
||||||
banner: '<%= banner %><%= jqueryCheck %>',
|
banner: '<%= banner %><%= jqueryCheck %>',
|
||||||
@@ -288,6 +303,7 @@ module.exports = function(grunt) {
|
|||||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||||
grunt.loadNpmTasks('grunt-html-validation');
|
grunt.loadNpmTasks('grunt-html-validation');
|
||||||
grunt.loadNpmTasks('grunt-jekyll');
|
grunt.loadNpmTasks('grunt-jekyll');
|
||||||
|
grunt.loadNpmTasks('grunt-jscs-checker');
|
||||||
grunt.loadNpmTasks('grunt-recess');
|
grunt.loadNpmTasks('grunt-recess');
|
||||||
grunt.loadNpmTasks('grunt-saucelabs');
|
grunt.loadNpmTasks('grunt-saucelabs');
|
||||||
grunt.loadNpmTasks('grunt-sed');
|
grunt.loadNpmTasks('grunt-sed');
|
||||||
@@ -296,7 +312,7 @@ module.exports = function(grunt) {
|
|||||||
grunt.registerTask('validate-html', ['jekyll', 'validation']);
|
grunt.registerTask('validate-html', ['jekyll', 'validation']);
|
||||||
|
|
||||||
// Test task.
|
// 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
|
// Only run Sauce Labs tests if there's a Sauce access key
|
||||||
if (typeof process.env.SAUCE_ACCESS_KEY !== 'undefined') {
|
if (typeof process.env.SAUCE_ACCESS_KEY !== 'undefined') {
|
||||||
testSubtasks.push('connect');
|
testSubtasks.push('connect');
|
||||||
|
14
js/.jscs.json
Normal file
14
js/.jscs.json
Normal file
@@ -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
|
||||||
|
}
|
@@ -85,7 +85,7 @@
|
|||||||
|
|
||||||
if (e.keyCode == 38 && index > 0) index-- // up
|
if (e.keyCode == 38 && index > 0) index-- // up
|
||||||
if (e.keyCode == 40 && index < $items.length - 1) index++ // down
|
if (e.keyCode == 40 && index < $items.length - 1) index++ // down
|
||||||
if (!~index) index=0
|
if (!~index) index = 0
|
||||||
|
|
||||||
$items.eq(index).focus()
|
$items.eq(index).focus()
|
||||||
}
|
}
|
||||||
|
@@ -180,7 +180,7 @@
|
|||||||
} else if (!this.isShown && this.$backdrop) {
|
} else if (!this.isShown && this.$backdrop) {
|
||||||
this.$backdrop.removeClass('in')
|
this.$backdrop.removeClass('in')
|
||||||
|
|
||||||
$.support.transition && this.$element.hasClass('fade')?
|
$.support.transition && this.$element.hasClass('fade') ?
|
||||||
this.$backdrop
|
this.$backdrop
|
||||||
.one($.support.transition.end, callback)
|
.one($.support.transition.end, callback)
|
||||||
.emulateTransitionEnd(150) :
|
.emulateTransitionEnd(150) :
|
||||||
|
@@ -19,7 +19,7 @@ $(function () {
|
|||||||
test("should switch active class on scroll", function () {
|
test("should switch active class on scroll", function () {
|
||||||
var sectionHTML = '<div id="masthead"></div>'
|
var sectionHTML = '<div id="masthead"></div>'
|
||||||
, $section = $(sectionHTML).append('#qunit-fixture')
|
, $section = $(sectionHTML).append('#qunit-fixture')
|
||||||
, topbarHTML ='<div class="topbar">'
|
, topbarHTML = '<div class="topbar">'
|
||||||
+ '<div class="topbar-inner">'
|
+ '<div class="topbar-inner">'
|
||||||
+ '<div class="container">'
|
+ '<div class="container">'
|
||||||
+ '<h3><a href="#">Bootstrap</a></h3>'
|
+ '<h3><a href="#">Bootstrap</a></h3>'
|
||||||
|
@@ -290,7 +290,7 @@ $(function () {
|
|||||||
test("should place tooltips inside the body", function () {
|
test("should place tooltips inside the body", function () {
|
||||||
var tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"></a>')
|
var tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"></a>')
|
||||||
.appendTo('#qunit-fixture')
|
.appendTo('#qunit-fixture')
|
||||||
.tooltip({container:'body'})
|
.tooltip({container: 'body'})
|
||||||
.tooltip('show')
|
.tooltip('show')
|
||||||
ok($("body > .tooltip").length, 'inside the body')
|
ok($("body > .tooltip").length, 'inside the body')
|
||||||
ok(!$("#qunit-fixture > .tooltip").length, 'not found in parent')
|
ok(!$("#qunit-fixture > .tooltip").length, 'not found in parent')
|
||||||
@@ -301,7 +301,7 @@ $(function () {
|
|||||||
var container = $("<div />").appendTo("body")
|
var container = $("<div />").appendTo("body")
|
||||||
.css({position: "absolute", width: 200, height: 200, bottom: 0, left: 0})
|
.css({position: "absolute", width: 200, height: 200, bottom: 0, left: 0})
|
||||||
, tooltip = $("<a href='#' title='Very very very very very very very very long tooltip'>Hover me</a>")
|
, tooltip = $("<a href='#' title='Very very very very very very very very long tooltip'>Hover me</a>")
|
||||||
.css({position: "absolute", top:0, left: 0})
|
.css({position: "absolute", top: 0, left: 0})
|
||||||
.appendTo(container)
|
.appendTo(container)
|
||||||
.tooltip({placement: "top", animate: false})
|
.tooltip({placement: "top", animate: false})
|
||||||
.tooltip("show")
|
.tooltip("show")
|
||||||
@@ -347,7 +347,7 @@ $(function () {
|
|||||||
.tooltip('show')
|
.tooltip('show')
|
||||||
, tooltip = container.find(".tooltip")
|
, tooltip = container.find(".tooltip")
|
||||||
|
|
||||||
ok( Math.round(target.offset().top + target[0].offsetHeight/2 - tooltip[0].offsetHeight/2) === Math.round(tooltip.offset().top) )
|
ok( Math.round(target.offset().top + (target[0].offsetHeight / 2) - (tooltip[0].offsetHeight / 2)) === Math.round(tooltip.offset().top) )
|
||||||
target.tooltip('hide')
|
target.tooltip('hide')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@@ -133,7 +133,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
Tooltip.prototype.show = function () {
|
Tooltip.prototype.show = function () {
|
||||||
var e = $.Event('show.bs.'+ this.type)
|
var e = $.Event('show.bs.' + this.type)
|
||||||
|
|
||||||
if (this.hasContent() && this.enabled) {
|
if (this.hasContent() && this.enabled) {
|
||||||
this.$element.trigger(e)
|
this.$element.trigger(e)
|
||||||
|
@@ -32,6 +32,7 @@
|
|||||||
, "grunt-contrib-watch": "~0.5.3"
|
, "grunt-contrib-watch": "~0.5.3"
|
||||||
, "grunt-html-validation": "~0.1.6"
|
, "grunt-html-validation": "~0.1.6"
|
||||||
, "grunt-jekyll": "~0.4.0"
|
, "grunt-jekyll": "~0.4.0"
|
||||||
|
, "grunt-jscs-checker": "~0.2.5"
|
||||||
, "grunt-recess": "~0.5.0"
|
, "grunt-recess": "~0.5.0"
|
||||||
, "grunt-saucelabs": "~4.1.2"
|
, "grunt-saucelabs": "~4.1.2"
|
||||||
, "grunt-sed": "~0.1.1"
|
, "grunt-sed": "~0.1.1"
|
||||||
|
Reference in New Issue
Block a user