int replacementLength = 0;
if (prefix != null) {
replacementOffset = cursorOffset - prefix.length();
replacementLength = prefix.length();
}
TMLScriptCompletionProposal proposal = new TMLScriptCompletionProposal(replacement.toString(), replacementOffset, replacementLength, cursorAfterProposal, display.toString());
proposal.enableLRU(_classname);
proposals.add(proposal);
}
}
if (prefix == null || methodName.toLowerCase().startsWith(prefix.toLowerCase())) {
//build completion proposal
int cursorAfterProposal = -1;
int selectionOffset = -1;
int selectionLength = -1;
StringBuffer display = new StringBuffer();
StringBuffer replacement = new StringBuffer();
display.append(methodName);
replacement.append(methodName);
display.append("(");
replacement.append("(");
List<TMLScriptMethodParameter> params = getParameters();
for (int i=0; i < params.size(); i++) {
TMLScriptMethodParameter param = params.get(i);
String paramType = param.getType();
paramType = ReflectionManager.buildSimpleClassname(paramType);
display.append(paramType);
display.append(" ");
String paramName = param.getName();
if (param.isVararg()) {
paramName += "[1..n]";
}
display.append(paramName);
replacement.append(paramName);
if (i == 0) {
cursorAfterProposal = replacement.length();
selectionOffset = cursorAfterProposal - paramName.length();
selectionLength = paramName.length();
}
if (i < (params.size() - 1)) {
display.append(", ");
replacement.append(", ");
}
}
display.append(")");
replacement.append(")");
if (cursorAfterProposal == -1) {
cursorAfterProposal = replacement.length();
}
display.append(" : " + ReflectionManager.buildSimpleClassname(getType()));
int replacementOffset = 0;
int replacementLength = 0;
if (prefix != null) {
replacementOffset = cursorOffset - prefix.length();
replacementLength = prefix.length();
}
TMLScriptCompletionProposal proposal = new TMLScriptCompletionProposal(replacement.toString(), replacementOffset, replacementLength, cursorAfterProposal, display.toString());
proposal.enableLRU(_classname);
if (selectionLength != -1 && selectionOffset != -1) {
proposal.setSelection(selectionOffset, selectionLength);
}
proposals.add(proposal);
}
}
}