Skip to content

Instantly share code, notes, and snippets.

@ntwb

ntwb/.jscsrc Secret

Last active April 17, 2016 08:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ntwb/76f2962406b9e86e0056ca0c1504e8e9 to your computer and use it in GitHub Desktop.
Save ntwb/76f2962406b9e86e0056ca0c1504e8e9 to your computer and use it in GitHub Desktop.
WordPress .jscsrc file: Expanded rules from WordPress which extends jQuery JSCS presets https://github.com/jscs-dev/node-jscs/blame/master/presets/
{
"disallowKeywords": [ "with" ],
"disallowKeywordsOnNewLine": [ "else" ],
"disallowMixedSpacesAndTabs": "smart",
"disallowMultipleLineBreaks": true,
"disallowMultipleLineStrings": true,
"disallowSpaceAfterObjectKeys": true,
"disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~"],
"disallowSpaceBeforeBinaryOperators": [ ",", ":" ],
"disallowSpaceBeforeComma": true,
"disallowSpaceBeforePostfixUnaryOperators": true,
"disallowSpacesInAnonymousFunctionExpression": {
"beforeOpeningRoundBrace": true
},
"disallowSpacesInCallExpression": true,
"disallowSpacesInFunctionExpression": {
"beforeOpeningRoundBrace": true
},
"disallowSpacesInNamedFunctionExpression": {
"beforeOpeningRoundBrace": true
},
"disallowTrailingComma": true,
"disallowTrailingWhitespace": true,
"requireBlocksOnNewline": true,
"requireCamelCaseOrUpperCaseIdentifiers": "ignoreProperties",
"requireCapitalizedComments": {
"allExcept": ["global", "exported", "jshint", "eslint", "jslint"]
},
"requireCommaBeforeLineBreak": true,
"requireCurlyBraces": [
"if",
"else",
"for",
"while",
"do",
"try",
"catch"
],
"requireDotNotation": {
"allExcept": ["snake_case", "keywords"]
},
"requireLineFeedAtFileEnd": true,
"requireOperatorBeforeLineBreak": true,
"requirePaddingNewLinesBeforeLineComments": true,
"requireParenthesesAroundIIFE": true,
"requireSemicolons": true,
"requireSpaceAfterBinaryOperators": true,
"requireSpaceAfterComma": true,
"requireSpaceAfterKeywords": [
"if",
"else",
"for",
"while",
"do",
"switch",
"return",
"try",
"catch"
],
"requireSpaceAfterPrefixUnaryOperators": ["!"],
"requireSpaceBeforeBinaryOperators": [
"=", "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=",
"&=", "|=", "^=", "+=",
"+", "-", "*", "/", "%", "<<", ">>", ">>>", "&",
"|", "^", "&&", "||", "===", "==", ">=",
"<=", "<", ">", "!=", "!=="
],
"requireSpaceBeforeBlockStatements": true,
"requireSpaceBetweenArguments": true,
"requireSpacesInAnonymousFunctionExpression": {
"beforeOpeningCurlyBrace": true
},
"requireSpacesInConditionalExpression": true,
"requireSpacesInForStatement": true,
"requireSpacesInFunctionExpression": {
"beforeOpeningCurlyBrace": true
},
"requireSpacesInNamedFunctionExpression": {
"beforeOpeningCurlyBrace": true
},
"requireSpacesInsideObjectBrackets": "all",
"requireSpacesInsideParentheses": {
"all": true,
"except": [ "{", "}", "[", "]", "function" ]
},
"requireVarDeclFirst": true,
"requireYodaConditions": ["==", "!=", "===", "!=="],
"validateLineBreaks": "LF",
"validateQuoteMarks": "'"
}
@ntwb
Copy link
Author

ntwb commented Apr 17, 2016

https://make.wordpress.org/core/handbook/best-practices/coding-standards/javascript/#spacing

"Lines should usually be no longer than 80 characters, and should not exceed 100 (counting tabs as 4 spaces). This is a “soft” rule, but long lines generally indicate unreadable or disorganized code."

The following should be added, currently it is overridden with null in the JSCS WordPress preset:

"maximumLineLength": {
        "value": 100,
        "tabSize": 4,
    },

Maybe some exceptions will be needed such as jQuery's "allExcept": ["urlComments", "regex"]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment