anchor.diff:  /// Only one list of item must be specified
   _setAutoSuggestList({List<String> owners, List<Repository> repositories,
       List<Issue> issues}) {
  +
  +  // Since we'll delete all children and re-create them we save what element had
  +  // the focus to re-apply it.
     String selectedElementText;
     if (document.activeElement.parent == dropDown) {
       selectedElementText = document.activeElement.attributes["value"];
     }
  +
  +  // Naive implementation for now we just delete all children and re-create all
  +  // new children.
     dropDown.children.clear();
     if(owners != null) {
       owners.forEach((String owner) {
         String info = "... repositories";
  -      if (repositoriesList[owner] != null) {
  +      if (repositoriesList[owner].length != 0) {
           info = "${repositoriesList[owner].length} repositories";
         }
  -      LIElement elem = _createDropDownElement("$owner/", info,
  +      LIElement elem = _createDropDownElement(
  +          owner + (mode == OWNER_MODE ? "" : "/"),
  +          info,
             isFinalValue: mode == OWNER_MODE);
         dropDown.children.add(elem);
       });
  
positive.code:   // User is typing the issue number.
    } else {
      // Fetch Issues of the typed repo.
      GitHubUrl url = GitHubUrl.parse(input);
      List<Issue> issues = issuesCache["${url.ownerName}/${url.repoName}"];
      if (issues == null) {
        issues  = new List<Issue>();
        issuesCache["${url.ownerName}/${url.repoName}"] = issues;
          Stream<Issue> issuesStream = gitHub.issues.listByRepo(
              new RepositorySlug(url.ownerName, url.repoName));
          issuesStream.listen((Issue issue){
            if (!issue.htmlUrl.contains("\/pull\/")) {
              issues.add(issue);
              List<Issue> matchingIssues = new List<Issue>()
                ..addAll(issues)
                ..retainWhere((Issue issue) =>"${issue.number}".startsWith(
                    url.issueNumber == null ? "" : url.issueNumber));
              _setAutoSuggestList(issues: matchingIssues);
            }
          });
      }
      List<Issue> matchingIssues = new List<Issue>()
               ..addAll(issues)
  
negative.code: /// Refreshes the list of suggestions based on the user input and what's in the
  /// cache.
  refreshAutoSuggest([e]) {
    // Don't refresh if the focus is not inside the drop down or the input
    // elements.
    if(document.activeElement.parent != dropDown
        && document.activeElement != activeInput) {
      return false;
    }
  
    // Make sure the Drop down is visible.
    displayDropDown();
  
    // If the key press is the down arrow (vs. typing a new letter) we move the
    // focus to the first element of the drop down and do not refresh.
    if(e != null && e is KeyboardEvent && e.keyCode == KeyCode.DOWN) {
      (dropDown.firstChild as LIElement).focus();
      // don't display errors for the issue since moving the focus out of the
      // input may trigger on onChange event.
      querySelector("#issueError").style.display = "none";
      return false;
    }
  
    String inputValue = activeInput.value;
  
    // User is typing the owner name.
    if(!inputValue.contains("/")) {
      // Filter owner based on prefix.
      List<String> matchingOwner = new List<String>()
          ..addAll(repositoriesList.keys)
          ..retainWhere((String owner) => owner.startsWith(inputValue));
      _setAutoSuggestList(owners: matchingOwner..sort());
  
    // User is typing the repo name.
    } else if(!inputValue.contains("#")) {
      // Filter repo based on prefix and if the repo has any issues.
      List<Repository> ownerRepositories = repositoriesList[inputValue.split("/")[0]];
      if(ownerRepositories != null) {
        List<Repository> matchingRepositories = new List<Repository>()
            ..addAll(ownerRepositories)
            ..retainWhere((Repository repo) => repo.fullName.startsWith(inputValue)
                && repo.hasIssues
                && (repo.openIssuesCount > 0 || mode == REPO_MODE));
        _setAutoSuggestList(repositories: matchingRepositories);
      } else {
        dropDown.children.clear();
        stopAutoSuggest();
  