private string ConstructFunctionCalltipText(ScriptFunction func, ScriptStruct owningStruct, int selectedParameter, out int selectionStart, out int selectionEnd)
{
string callTip = func.Type + " ";
if (owningStruct != null)
{
callTip += owningStruct.Name + ".";
}
callTip += func.FunctionName + "(";
selectionStart = 0;
selectionEnd = 0;
string[] paramList = func.ParamList.Split(',');
for (int i = 0; i < paramList.Length; i++)
{
string thisParam = paramList[i].Trim();
if (thisParam.IndexOf('=') > 0)
{
thisParam = "optional " + thisParam.Substring(0, thisParam.IndexOf('='));
}
if (i == selectedParameter)
{
selectionStart = callTip.Length;
selectionEnd = callTip.Length + thisParam.Length;
if (ShowEnumForParameterIfAppropriate(thisParam))
{
// showing enum list rather than calltip
return null;
}
}
callTip += thisParam;
if (i < paramList.Length - 1)
{
callTip += ", ";
}
}
callTip += ")";
return callTip;
}