code: function _addSearchResultsForEntries(entries) {
              var fullPaths = [];
              return Async.doInParallel(entries, function (entry) {
                  var addedFiles = [],
                      addedFilePaths = [],
                      deferred = new $.Deferred();
  
                  // gather up added files
                  var visitor = function (child) {
                      // Replicate filtering that getAllFiles() does
                      if (ProjectManager.shouldShow(child)) {
                          if (child.isFile && _isReadableText(child.name)) {
                              // Re-check the filtering that the initial search applied
                              if (_inSearchScope(child)) {
                                  addedFiles.push(child);
                                  addedFilePaths.push(child.fullPath);
                              }
                          }
                          return true;
                      }
                      return false;
                  };
  
                  entry.visit(visitor, function (err) {
                      if (err) {
                          deferred.reject(err);
                          return;
                      }
  
                      //node Search : inform node about the file changes
                      //filesChanged(addedFilePaths);
                      fullPaths = fullPaths.concat(addedFilePaths);
  
                      if (findOrReplaceInProgress) {
                          // find additional matches in all added files
                          Async.doInParallel(addedFiles, function (file) {
                              return _doSearchInOneFile(file)
                                  .done(function (foundMatches) {
                                      resultsChanged = resultsChanged || foundMatches;
                                  });
                          }).always(deferred.resolve);
                      } else {
                          deferred.resolve();
                      }
                  });
  
                  return deferred.promise();
              }).always(function () {
                  // this should be called once with a large array instead of numerous calls with single items
                  filesChanged(fullPaths);
              });
          }
docs: /*
  Add new search results for these entries and all of its children
  @param {Array.<(File|Directory)>} entries
  @return {jQuery.Promise} Resolves when the results have been added