<commit_before>const Handlebars = require('handlebars');
const defaultRules = require('./rules');

class Linter {
    constructor(_options) {
        const options = _options || {};

        this.options = options;
        this.partials = [];
        this.helpers = [];
        this.constructor = Linter;
    }

    buildScanner(config) {
        const nodeHandlers = [];

        for (const ruleName in config.rules) {
            let Rule = config.rules[ruleName];
            let rule = new Rule({<commit_msg>Added JSDoc for AST linter constructore<commit_after>const Handlebars = require('handlebars');
const defaultRules = require('./rules');

class Linter {
    /**
     *
     * @param {Object} [options]
     * @param {String[]} options.partials - list of known theme partial names in ['mypartial', 'logo'] format
     * @param {String[]} options.helpers - list of registered theme helper names in ['is', 'has'] format
     */
    constructor(options = {partials: [], helpers: []}) {
        this.options = options;

        this.partials = [];
        this.helpers = [];
        this.constructor = Linter;
    }

    buildScanner(config) {
        const nodeHandlers = [];

        for (const ruleName in config.rules) {
            let Rule = config.rules[ruleName];
            let rule = new Rule({
{'fraction_non_alphanumeric': 0.13129770992366413, 'fraction_numerical': 0.0, 'mean_word_length': 2.440944881889764, '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': '481607', 'n_tokens_mistral': 362, 'n_tokens_neox': 355, 'n_words': 98}