static private CheckForKeyWords ( string searchString, SearchFilter filter, int quote1, int quote2 ) : bool | ||
searchString | string | |
filter | SearchFilter | |
quote1 | int | |
quote2 | int | |
return | bool |
internal static bool CheckForKeyWords(string searchString, SearchFilter filter, int quote1, int quote2)
{
bool flag = false;
int index = searchString.IndexOf("t:");
if (index == 0)
{
string str = searchString.Substring(index + 2);
filter.classNames = new List<string>(filter.classNames) { str }.ToArray();
flag = true;
}
index = searchString.IndexOf("l:");
if (index == 0)
{
string str2 = searchString.Substring(index + 2);
filter.assetLabels = new List<string>(filter.assetLabels) { str2 }.ToArray();
flag = true;
}
if (UnityConnect.instance.userInfo.whitelisted && Collab.instance.collabInfo.whitelisted)
{
index = searchString.IndexOf("v:");
if (index >= 0)
{
string str3 = searchString.Substring(index + 2);
filter.versionControlStates = new List<string>(filter.versionControlStates) { str3 }.ToArray();
flag = true;
}
}
index = searchString.IndexOf("b:");
if (index == 0)
{
string str4 = searchString.Substring(index + 2);
filter.assetBundleNames = new List<string>(filter.assetBundleNames) { str4 }.ToArray();
flag = true;
}
index = searchString.IndexOf("ref:");
if (index != 0)
{
return flag;
}
int instanceID = 0;
int num3 = index + 3;
int num4 = searchString.IndexOf(':', num3 + 1);
if (num4 >= 0)
{
int num5;
if (int.TryParse(searchString.Substring(num3 + 1, (num4 - num3) - 1), out num5))
{
instanceID = num5;
}
}
else
{
string str6;
if ((quote1 != -1) && (quote2 != -1))
{
int startIndex = quote1 + 1;
int length = (quote2 - quote1) - 1;
if ((length < 0) || (quote2 == -1))
{
length = searchString.Length - startIndex;
}
str6 = "Assets/" + searchString.Substring(startIndex, length);
}
else
{
str6 = "Assets/" + searchString.Substring(num3 + 1);
}
Object obj2 = AssetDatabase.LoadMainAssetAtPath(str6);
if (obj2 != null)
{
instanceID = obj2.GetInstanceID();
}
}
filter.referencingInstanceIDs = new int[] { instanceID };
return true;
}
internal static bool ParseSearchString(string searchText, SearchFilter filter) { bool result; if (string.IsNullOrEmpty(searchText)) { result = false; } else { filter.ClearSearch(); string text = string.Copy(searchText); SearchUtility.RemoveUnwantedWhitespaces(ref text); bool flag = false; int i = SearchUtility.FindFirstPositionNotOf(text, " \t,*?"); if (i == -1) { i = 0; } while (i < text.Length) { int num = text.IndexOfAny(" \t,*?".ToCharArray(), i); int num2 = text.IndexOf('"', i); int num3 = -1; if (num2 != -1) { num3 = text.IndexOf('"', num2 + 1); if (num3 != -1) { num = text.IndexOfAny(" \t,*?".ToCharArray(), num3); } else { num = -1; } } if (num == -1) { num = text.Length; } if (num > i) { string text2 = text.Substring(i, num - i); if (SearchUtility.CheckForKeyWords(text2, filter, num2, num3)) { flag = true; } else { filter.nameFilter = filter.nameFilter + ((!string.IsNullOrEmpty(filter.nameFilter)) ? " " : "") + text2; } } i = num + 1; } result = flag; } return(result); }