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; }