.eslintrc 2.15 KB
{
    "rules": {
        "curly": ["error", "multi-line"],
        "eol-last": ["error"],
        "indent": [
            "error", 2,  # Blockly/Google use 2-space indents
            # Blockly/Google uses +4 space indents for line continuations.
            {
                "SwitchCase": 1,
                "MemberExpression": 2,
                "ObjectExpression": 1,
                "FunctionDeclaration": {
                    "body": 1,
                    "parameters": 2
                },
                "FunctionExpression": {
                    "body": 1,
                    "parameters": 2
                },
                "CallExpression": {
                    "arguments": 2
                },
                # Ignore default rules for ternary expressions.
                "ignoredNodes": ["ConditionalExpression"]
            }
        ],
        "linebreak-style": ["error", "unix"],
        "max-len": ["error", 120, 4],
        "no-trailing-spaces": ["error", { "skipBlankLines": true }],
        "no-unused-vars": [
            "error",
            {
                "args": "after-used",
                # Ignore vars starting with an underscore.
                "varsIgnorePattern": "^_",
                # Ignore arguments starting with an underscore.
                "argsIgnorePattern": "^_"
            }
        ],
        "no-use-before-define": ["error"],
        "quotes": ["off"], # Blockly mixes single and double quotes
        "semi": ["error", "always"],
        "space-before-function-paren": ["error", "never"], # Blockly doesn't have space before function paren
        "space-infix-ops": ["error"],
        "strict": ["off"], # Blockly uses 'use strict' in files
        "no-cond-assign": ["off"], # Blockly often uses cond-assignment in loops
        "no-redeclare": ["off"], # Closure style allows redeclarations
        "valid-jsdoc": ["error", {"requireReturn": false}],
        "no-console": ["off"],
        "no-constant-condition": ["off"]
    },
    "env": {
        "browser": true
    },
    "globals": {
        "Blockly": true, # Blockly global
        "goog": true, # goog closure libraries/includes
    },
    "extends": "eslint:recommended"
}