reporters/stylish.js
function reportFile (filepath, data) {
    var lines = []

    // Filename
    lines.push(colors.magenta.underline(path.relative(appRoot.path, filepath)))

    // Loop file specific error/warning messages
    data.results.forEach(function (file) {
      file.messages.forEach(function (msg) {
        var context = colors.yellow((options.showFilePath ? filepath + ':' : 'line ') + msg.line + ':' + msg.column)
        var message = colors.cyan(msg.message + (options.showRuleNames ? ' (' + msg.ruleId + ')' : ''))
        lines.push(context + '\t' + message)
      })
    })

    // Error/Warning count
    lines.push(logSymbols.error + ' ' + colors.red(data.errorCount + ' error' + (data.errorCount === 1 ? 's' : '')) + '\t' + logSymbols.warning + ' ' + colors.yellow(data.warningCount + ' warning' + (data.errorCount === 1 ? 's' : '')))

    return lines.join('\n') + '\n'
  }
function reportFile (filepath, data) {
    var lines = []

    // Filename
    lines.push(colors.magenta.underline(path.relative(appRoot.path, filepath)))

    // Loop file specific error/warning messages
    data.results.forEach(function (file) {
      file.messages.forEach(function (msg) {
        var context = colors.yellow((options.showFilePath ? filepath + ':' : 'line ') + msg.line + ':' + msg.column)
        var message = colors.cyan(msg.message + (options.showRuleNames ? ' (' + msg.ruleId + ')' : ''))
        lines.push(context + '\t' + message)
      })
    })

    // Error/Warning count
    lines.push(logSymbols.error + ' ' + colors.red(data.errorCount + ' error' + (data.errorCount === 1 ? 's' : '')) + '\t' + logSymbols.warning + ' ' + colors.yellow(data.warningCount + ' warning' + (data.errorCount === 1 ? 's' : '')))

    return lines.join('\n') + '\n'
  }
function reportFile ( filepath , data ) { var lines = [ ] // Filename lines . push ( colors . magenta . underline ( path . relative ( appRoot . path , filepath ) ) ) // Loop file specific error/warning messages data . results . forEach ( function ( file ) { file . messages . forEach ( function ( msg ) { var context = colors . yellow ( ( options . showFilePath ? filepath + ':' : 'line ' ) + msg . line + ':' + msg . column ) var message = colors . cyan ( msg . message + ( options . showRuleNames ? ' (' + msg . ruleId + ')' : '' ) ) lines . push ( context + '\t' + message ) } ) } ) // Error/Warning count lines . push ( logSymbols . error + ' ' + colors . red ( data . errorCount + ' error' + ( data . errorCount === 1 ? 's' : '' ) ) + '\t' + logSymbols . warning + ' ' + colors . yellow ( data . warningCount + ' warning' + ( data . errorCount === 1 ? 's' : '' ) ) ) return lines . join ( '\n' ) + '\n' }
File specific reporter
File specific reporter