code: function extend(language, languagePatterns, inherits) {
  
      // If we extend a language again we shouldn't need to specify the
      // inheritence for it. For example, if you are adding special highlighting
      // for a javascript function that is not in the base javascript rules, you
      // should be able to do
      //
      // Rainbow.extend('javascript', [ … ]);
      //
      // Without specifying a language it should inherit (generic in this case)
      if (!inheritenceMap[language]) {
          inheritenceMap[language] = inherits;
      }
  
      patterns[language] = languagePatterns.concat(patterns[language] || []);
  }
docs: Extends the language pattern matches
  
  @param {string} language            name of language
  @param {object} languagePatterns    object of patterns to add on
  @param {string|undefined} inherits  optional language that this language
  should inherit rules from