private IEnumerable<ICodeReference> find(string name)
{
var names = name
.Split(new[] {" "}, StringSplitOptions.RemoveEmptyEntries);
return
_codeReferences
.Where(x => {
if (!x.TypeSearch)
return false;
var matchPos = -1;
var full = x.File.ToLower() + x.Signature.ToLower();
foreach (var search in names) {
var pos = full.LastIndexOf(search.ToLower());
if (pos == -1)
return false;
if (pos < matchPos)
return false;
matchPos = pos;
}
return true;
}
)
.OrderBy(x => nameSort(x.Name, x.Signature, x.File, names));
}