docs: function(gulp, tasks, workflows, patternConfig) {
  
          gulp.task('list', function() {
  
              var printTasks = true,
                  printWorkflows = true;
  
              if (args.t) {
                  printWorkflows = false;
              } else if (args.w) {
                  printTasks = false;
              }
  
              if (printTasks) {
  
                  console.log('');
                  console.log('');
                  console.log(chalk.blue.bold('list of tasks:'));
                  console.log(chalk.blue.bold('--------------\n'));
  
                  var allTasks = Object.keys(tasks).sort();
  
                  if (patternConfig && patternConfig.tasks && patternConfig.tasks.ignore.length > 0) {
                      allTasks = allTasks.filter(function(task) {
                          return patternConfig.tasks.ignore.indexOf(task) === -1;
                      });
                  }
  
                  _.each(allTasks, function(name) {
                      console.log(chalk.yellow.bold(name));
                      if (tasks[name].help) {
                          console.log('  ' + chalk.gray(tasks[name].help.message));
                      }
                  });
              }
  
              if (printWorkflows) {
  
                  console.log('');
                  console.log('');
                  console.log(chalk.blue.bold('list of workflows:'));
                  console.log(chalk.blue.bold('------------------\n'));
  
                  var workflowNames = _.xor(Object.keys(workflows), Object.keys(tasks));
                  _.each(workflowNames.sort(), function(name) {
                      console.log(chalk.yellow.bold(name));
                      console.log(chalk.gray(workflows[name].help.message));
  
                      if (workflows[name].dep.length > 0) {
                          var end,
                              deps = ' ';
  
                          _.each(workflows[name].dep, function(dep, i) {
                              end = (workflows[name].dep.length === (i + 1)) ? '.' : ', ';
                              deps = deps + dep + end;
                          });
  
                          console.log(chalk.white.bold('- tasks run:') + chalk.gray(deps));
                      }
  
                      console.log('\n');
                  });
              }
  
              console.log('');
              console.log('');
              return gulp;
          });
      }