private void AddMembersOfStruct(List<string> autoCompleteList, List<ScriptStruct> scriptStructs, bool staticOnly, bool isThis)
{
Dictionary<string, object> alreadyAdded = new Dictionary<string, object>();
foreach (ScriptStruct scriptStruct in scriptStructs)
{
foreach (ScriptFunction sf in scriptStruct.Functions)
{
if (((sf.IsStatic) || (!staticOnly)) &&
((!sf.IsStaticOnly) || (staticOnly)) &&
((!sf.IsProtected) || (isThis)) &&
ShouldShowThis(sf, null) &&
!alreadyAdded.ContainsKey(sf.FunctionName))
{
int imageIndex = IMAGE_INDEX_METHOD;
if (sf.IsStatic)
{
imageIndex = IMAGE_INDEX_STATIC_METHOD;
}
else if (sf.IsExtenderMethod)
{
imageIndex = IMAGE_INDEX_EXTENDER_METHOD;
}
autoCompleteList.Add(sf.FunctionName + "?" + imageIndex);
alreadyAdded.Add(sf.FunctionName, null);
}
}
foreach (ScriptVariable sv in scriptStruct.Variables)
{
if (((sv.IsStatic) || (!staticOnly)) &&
((!sv.IsStaticOnly) || (staticOnly)) &&
((!sv.IsProtected) || (isThis)) &&
ShouldShowThis(sv, null))
{
autoCompleteList.Add(sv.VariableName + "?" + (sv.IsStatic ? IMAGE_INDEX_STATIC_PROPERTY : IMAGE_INDEX_PROPERTY));
}
}
}
}