private static void addProposal(
      Identifier identifier, Collection<ICompletionProposal> proposals, IFile file) {
    String oldIdentifier = identifier.getText();
    int first = oldIdentifier.codePointAt(0);
    int newFirst = isUpperCase(first) ? toLowerCase(first) : toUpperCase(first);
    String newFirstLetter = new String(toChars(newFirst));
    String newIdentifier = newFirstLetter + oldIdentifier.substring(charCount(first));

    TextFileChange change = new TextFileChange("Change initial case of identifier", file);
    change.setEdit(new ReplaceEdit(identifier.getStartIndex(), 1, newFirstLetter));

    ChangeInitialCaseOfIdentifierInDeclaration proposal =
        new ChangeInitialCaseOfIdentifierInDeclaration(newIdentifier, change);
    if (!proposals.contains(proposal)) {
      proposals.add(proposal);
    }
  }