public static List<DeclarationWithProximity> getSortedProposedValues(
     Scope scope, Unit unit, final String exactName) {
   Map<String, DeclarationWithProximity> map = scope.getMatchingDeclarations(unit, "", 0, null);
   if (exactName != null) {
     for (DeclarationWithProximity dwp : new ArrayList<DeclarationWithProximity>(map.values())) {
       if (!dwp.isUnimported() && !dwp.isAlias() && isNameMatching(dwp.getName(), exactName)) {
         map.put(dwp.getName(), new DeclarationWithProximity(dwp.getDeclaration(), -5));
       }
     }
   }
   List<DeclarationWithProximity> results = new ArrayList<DeclarationWithProximity>(map.values());
   Collections.sort(results, new ArgumentProposalComparator(exactName));
   return results;
 }