code: function autoHighlight(value, options) {
    var settings = options || {}
    var subset = settings.subset || languageNames
    var prefix = settings.prefix
    var length = subset.length
    var index = -1
    var result
    var secondBest
    var current
    var name
  
    if (prefix === null || prefix === undefined) {
      prefix = defaultPrefix
    }
  
    if (typeof value !== 'string') {
      throw fault('Expected `string` for value, got `%s`', value)
    }
  
    secondBest = normalize({})
    result = normalize({})
  
    while (++index < length) {
      name = subset[index]
  
      if (!getLanguage(name)) {
        continue
      }
  
      current = normalize(coreHighlight(name, value, false, prefix))
  
      current.language = name
  
      if (current.relevance > secondBest.relevance) {
        secondBest = current
      }
  
      if (current.relevance > result.relevance) {
        secondBest = result
        result = current
      }
    }
  
    if (secondBest.language) {
      result.secondBest = secondBest
    }
  
    return result
  }
docs: Highlighting with language detection. Accepts a string with the code to highlight. Returns an object with the following properties:  *   `language` — Detected language *   `relevance` — Integer *   `value` — HAST tree with highlighting markup *   `secondBest` — Object with the same structure for second-best heuristically detected language, may be absent.