configure(config) {
    if (typeof config !== 'object')
      // TODO: throw error
      throw new Error();

    this.lint = config.lint;
    this.verbose = config.verbose;
    if (config.exclude)
      this.exclude = config.exclude.map(function(pattern) {
        return new minimatch.Minimatch(pattern);
      });

    if (config.syntax) {
      for (let key in config.syntax) {
        this.syntaxMap.set(key, config.syntax[key]);
      }
    }

    for (let i = 0, l = this.plugins.length; i < l; i++) {
      let plugin = this.plugins[i];
      let name = plugin.name;
      if (!config.hasOwnProperty(name)) continue;

      try {
        plugin.value = config[name];
        this.config[name] = plugin.value;
      } catch (e) {
        // TODO: throw error
      }
    }

    // Chaining.
    return this;
  }
Loads configuration from JSON.

@param {!Object} config
@return {!Comb}