public IList<IntellisenseProviderResult> GetIntellisenseResults(IntellisenseProviderContext context)
{
if (context == null)
{
return new List<IntellisenseProviderResult>();
}
var results = new List<IntellisenseProviderResult>();
if(context.DesiredResultSet == IntellisenseDesiredResultSet.EntireSet)
{
FileSystemQuery.QueryList("");
FileSystemQuery.QueryCollection.ForEach(s => IntellisenseResults.Add(new IntellisenseProviderResult(this, s, string.Empty, string.Empty, false)));
results.AddRange(IntellisenseResults);
}
else
{
if(!InLiteralRegion(context.InputText, context.CaretPosition))
{
IntellisenseResults.Clear();
var regions = context.InputText.Split(' ');
var sum = 0;
string searchText = regions.Select(a => new { a, a.Length }).TakeWhile(a =>
{
sum = sum + context.CaretPosition;
return sum >= context.CaretPosition;
}).Last().a;
FileSystemQuery.QueryList(searchText);
FileSystemQuery.QueryCollection.ForEach(s => IntellisenseResults.Add(new IntellisenseProviderResult(this, s, string.Empty, string.Empty, false)));
results.AddRange(IntellisenseResults);
}
}
return results;
}