public String getPresentation(CypherInvocation ci, @NotNull ParameterInfoUIContext context) {
if (ci == null) {
context.setUIComponentEnabled(false);
return null;
}
String signature = ci.resolve().stream()
.findFirst()
.map(InvokableInformation::getSignature)
.orElse(null);
int current = context.getCurrentParameterIndex();
int start = 0;
int end = 0;
if (signature == null) {
String message = "unknown parameters";
return context.setupUIComponentPresentation(message, start, end, false, false, false, JBColor.RED);
}
if (Objects.equals(signature, "()")) {
String message = "no parameters";
return context.setupUIComponentPresentation(message, start, end, false, false, false, JBColor.RED);
}
String stripped = signature.substring(1, signature.length() - 1) + ",";
int from = StringUtils.ordinalIndexOf(stripped, ",", current) + 2;
int to = StringUtils.ordinalIndexOf(stripped, ",", current + 1) + 1;
return context.setupUIComponentPresentation(
signature,
from, to,
false, false, false,
context.getDefaultParameterColor());
}