protected void reportVariables(ICompletionReporter reporter,
ArrayKeyContext context, String[] variables, String prefix,
boolean removeDollar, int extraObject) throws BadLocationException {
CompletionRequestor requestor = context.getCompletionRequestor();
SourceRange replaceRange = getReplacementRange(context);
for (String variable : variables) {
if (removeDollar) {
variable = variable.substring(1);
}
if (variable.startsWith(prefix)) {