<commit_before>module.exports = {
    'parser': 'babel-eslint',
    'parserOptions': {
        'ecmaVersion': 6,
        'sourceType': 'module',
        'ecmaFeatures': {
            'experimentalObjectRestSpread': true,
            'jsx': true
        },
    },
    settings: {
        'import/extensions': ['.js', '.jsx'],
    },
    'extends': ['eslint:recommended'],
    'plugins': [
        'eslint-plugin-react',
        'eslint-plugin-filenames',
        'eslint-plugin-import'
    ],
    'globals': {
        'jQuery': false,
        '$': true,
        'Focus': true,
        'FocusComponents': true,
        'require': true,
        'Backbone': true,
        'React': true,
        'Fmk': true,
        '_': true,
        'Promise': true,
        'module': true
    },
    'env': {
        'browser': true,
        'node': true
    },
    'rules': {
        /* Import Plugin (recommended conf)*/
        // analysis/correctness
        'import/no-unresolved': 'error',
        'import/named': 'error',
        'import/namespace': 'error',
        'import/default': 'error',
        'import/export': 'error',
        // red flags (thus, warnings)
        'import/no-named-as-default': 'warn',
        'import/no-named-as-default-member': 'warn',
        'import/no-duplicates': 'warn',
        'import/unambiguous': 'warn',
        /* Filename Plugin */
        'filenames/match-regex': ['error', '^[a-z\-]+$'],
        //'filenames/match-exported': ['error', 'kebab'],
        //'filenames/no-index': 'error', // Could be a good idea
        /* React Plugin */
        'react/display-name': 'error',
        'react/jsx-boolean-value': 'error',
        'react/jsx-closing-bracket-location': 'error',
        'react/jsx-curly-spacing': 'error',
        'react/jsx-indent': 'error',
        'react/jsx-indent-props': 'error',
        'react/jsx-max-props-per-line': ['error', { 'maximum': 4 }],
        'react/jsx-no-duplicate-props': 'error',
        'react/jsx-no-literals': 'error',
        'react/jsx-no-undef': 'error',
        // 'react/jsx-sort-prop-types': 'error',
        // 'react/jsx-sort-props': 'error',
        'react/jsx-uses-react': 'error',
        'react/jsx-uses-vars': 'error',
        'react/jsx-pascal-case': 'error',
        'react/jsx-wrap-multilines': 'error',
        'react/no-danger': 'error',
        'react/no-did-mount-set-state': ['warn', 'disallow-in-func'],
        'react/no-did-update-set-state': ['error', 'disallow-in-func'],
        'react/no-direct-mutation-state': 'error',
        'react/react-in-jsx-scope': 'error',
        'react/require-default-props': 'error',
        'react/prefer-stateless-function': ['error', { 'ignorePureComponents': true }],
        'react/no-multi-comp': ['error', { 'ignoreStateless': true }],
        'react/no-unknown-property': 'error',
        'react/prop-types': 'error',
        'react/require-render-return': 'error',
        'react/react-in-jsx-scope': 'error',
        'react/self-closing-comp': 'error',
        'react/sort-comp': 'error',
        /* Comments */
        'require-jsdoc': ['error', {
            'require': {
                'FunctionDeclaration': true,
                'MethodDefinition': true,
                'ClassDeclaration': true,
                'ArrowFunctionExpression': true
            }
        }],
        'valid-jsdoc': [
            'error',
            {
                'requireParamDescription': true,
                'requireReturn': false
            }
        ],
        /* General */
        'quotes': ['error', 'single', 'avoid-escape'],
        'eqeqeq': 'error',
        'strict': 'error',
        'camelcase': 'error',
        'no-underscore-dangle': 'off',
        'new-cap': 'error',
        'jsx-quotes': ['error', 'prefer-single'],
        'comma-dangle': 'error',
        'no-var': 'error',
        'indent': ['error', 4, { 'SwitchCase': 1 }],
        'brace-style': ['error', '1tbs', { 'allowSingleLine': true }],
        'comma-style': ['error', 'last'],
        'func-names': 'error',
        'key-spacing': ['error', { 'beforeColon': false, 'afterColon': true }],
        'max-nested-callbacks': ['error', 3],
        'no-multiple-empty-lines': 'error',
        'quote-props': ['error', 'as-needed'],
        'no-use-before-define': 'error',
        'default-case': 'error',
        'dot-notation': 'error',
        'no-alert': 'error',
        'no-console': 'off',
        'no-eval': 'error',
        'no-lone-blocks': 'error',
        'no-multi-spaces': 'error',
        'no-native-reassign': 'error',
        'no-multi-str': 'error',
        'no-new-wrappers': 'error',
        'no-redeclare': 'error',
        'no-return-assign': 'error',
        'no-self-compare': 'error',
        'no-throw-literal': 'error',
        'no-unused-expressions': 'error',
        'no-warning-comments': ['warn', { 'terms': ['todo', 'fixme'], 'location': 'anywhere' }],
        'radix': 'error',
        'wrap-iife': 'error',
        'no-constant-condition': 'error',
        'no-dupe-args': 'error',
        'no-dupe-keys': 'error',
        'no-duplicate-case': 'error',
        'no-empty': 'error',
        'no-extra-semi': 'error',
        'no-func-assign': 'error',
        'no-sparse-arrays': 'error',
        'no-unreachable': 'error',
        'use-isnan': 'error',
        'valid-typeof': 'error',
        'space-before-blocks': 'error',
        'arrow-spacing': 'error'
    }
};
<commit_msg>Adding global vars, making missing comments warning<commit_after>module.exports = {
    'parser': 'babel-eslint',
    'parserOptions': {
        'ecmaVersion': 6,
        'sourceType': 'module',
        'ecmaFeatures': {
            'experimentalObjectRestSpread': true,
            'jsx': true
        },
    },
    settings: {
        'import/extensions': ['.js', '.jsx'],
        'import/resolver': {
            node: {
                // Note: will not complain if only _one_ of these files exists.
                extensions: ['.js', '.jsx']
            }
        }
    },
    'extends': ['eslint:recommended'],
    'plugins': [
        'eslint-plugin-react',
        'eslint-plugin-filenames',
        'eslint-plugin-import'
    ],
    'globals': {
        '__API_ROOT__': false,
        '__LEGACY_SEARCH_API__': false,
        '__BASE_URL__': false,
        '__DEV__': false,
        '__ANCHOR_CLASS__': false,
        '__PACKAGE_JSON_PATH__': false,
        '__USER__': false,
        '__PROJECT__': false,
        'jQuery': false,
        '$': true,
        'Focus': true,
        'FocusComponents': true,
        'require': true,
        'Backbone': true,
        'React': true,
        'Fmk': true,
        '_': true,
        'Promise': true,
        'module': true
    },
    'env': {
        'browser': true,
        'node': true
    },
    'rules': {
        /* Import Plugin (recommended conf)*/
        // analysis/correctness
        'import/no-unresolved': 'error',
        'import/named': 'error',
        'import/namespace': 'error',
        'import/default': 'error',
        'import/export': 'error',
        // red flags (thus, warnings)
        'import/no-named-as-default': 'warn',
        'import/no-named-as-default-member': 'warn',
        'import/no-duplicates': 'warn',
        'import/unambiguous': 'warn',
        /* Filename Plugin */
        'filenames/match-regex': ['error', '^[a-z\-]+$'],
        //'filenames/match-exported': ['error', 'kebab'],
        //'filenames/no-index': 'error', // Could be a good idea
        /* React Plugin */
        'react/display-name': 'error',
        'react/jsx-boolean-value': 'error',
        'react/jsx-closing-bracket-location': 'error',
        'react/jsx-curly-spacing': 'error',
        'react/jsx-indent': 'error',
        'react/jsx-indent-props': 'error',
        'react/jsx-max-props-per-line': ['error', { 'maximum': 4 }],
        'react/jsx-no-duplicate-props': 'error',
        'react/jsx-no-literals': 'error',
        'react/jsx-no-undef': 'error',
        // 'react/jsx-sort-prop-types': 'error',
        // 'react/jsx-sort-props': 'error',
        'react/jsx-uses-react': 'error',
        'react/jsx-uses-vars': 'error',
        'react/jsx-pascal-case': 'error',
        'react/jsx-wrap-multilines': 'error',
        'react/no-danger': 'error',
        'react/no-did-mount-set-state': ['warn', 'disallow-in-func'],
        'react/no-did-update-set-state': ['error', 'disallow-in-func'],
        'react/no-direct-mutation-state': 'error',
        'react/react-in-jsx-scope': 'error',
        'react/require-default-props': 'error',
        'react/prefer-stateless-function': ['error', { 'ignorePureComponents': true }],
        'react/no-multi-comp': ['error', { 'ignoreStateless': true }],
        'react/no-unknown-property': 'error',
        'react/prop-types': 'error',
        'react/require-render-return': 'error',
        'react/react-in-jsx-scope': 'error',
        'react/self-closing-comp': 'error',
        'react/sort-comp': 'error',
        /* Comments */
        'require-jsdoc': ['warn', {
            'require': {
                'FunctionDeclaration': true,
                'MethodDefinition': true,
                'ClassDeclaration': true,
                'ArrowFunctionExpression': true
            }
        }],
        'valid-jsdoc': [
            'warn',
            {
                'requireParamDescription': true,
                'requireReturn': false
            }
        ],
        /* General */
        'quotes': ['error', 'single', 'avoid-escape'],
        'eqeqeq': 'error',
        'strict': 'error',
        'camelcase': 'error',
        'no-underscore-dangle': 'off',
        'new-cap': 'error',
        'jsx-quotes': ['error', 'prefer-single'],
        'comma-dangle': 'error',
        'no-var': 'error',
        'indent': ['error', 4, { 'SwitchCase': 1 }],
        'brace-style': ['error', '1tbs', { 'allowSingleLine': true }],
        'comma-style': ['error', 'last'],
        'func-names': 'error',
        'key-spacing': ['error', { 'beforeColon': false, 'afterColon': true }],
        'max-nested-callbacks': ['error', 3],
        'no-multiple-empty-lines': 'error',
        'quote-props': ['error', 'as-needed'],
        'no-use-before-define': 'error',
        'default-case': 'error',
        'dot-notation': 'error',
        'no-alert': 'error',
        'no-console': 'off',
        'no-eval': 'error',
        'no-lone-blocks': 'error',
        'no-multi-spaces': 'error',
        'no-native-reassign': 'error',
        'no-multi-str': 'error',
        'no-new-wrappers': 'error',
        'no-redeclare': 'error',
        'no-return-assign': 'error',
        'no-self-compare': 'error',
        'no-throw-literal': 'error',
        'no-unused-expressions': 'error',
        'no-warning-comments': ['warn', { 'terms': ['todo', 'fixme'], 'location': 'anywhere' }],
        'radix': 'error',
        'wrap-iife': 'error',
        'no-constant-condition': 'error',
        'no-dupe-args': 'error',
        'no-dupe-keys': 'error',
        'no-duplicate-case': 'error',
        'no-empty': 'error',
        'no-extra-semi': 'error',
        'no-func-assign': 'error',
        'no-sparse-arrays': 'error',
        'no-unreachable': 'error',
        'use-isnan': 'error',
        'valid-typeof': 'error',
        'space-before-blocks': 'error',
        'arrow-spacing': 'error'
    }
};

{'fraction_non_alphanumeric': 0.20255619215513443, 'fraction_numerical': 0.0010577346848832084, 'mean_word_length': 1.9795168067226891, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2662704', 'n_tokens_mistral': 3719, 'n_tokens_neox': 3658, 'n_words': 638}