public async Task<List<CodeCompletionData>> CodeCompleteAtAsync(ISourceFile sourceFile, int line, int column, List<UnsavedFile> unsavedFiles, string filter)
{
var result = new List<CodeCompletionData>();
var dataAssociation = GetAssociatedData(sourceFile);
var response = await dataAssociation.Solution.Server.AutoComplete(sourceFile.FilePath, unsavedFiles.FirstOrDefault()?.Contents, line, column);
if (response != null)
{
foreach (var completion in response)
{
var newCompletion = new CodeCompletionData()
{
Suggestion = completion.CompletionText,
Priority = 1,
Hint = completion.DisplayText,
BriefComment = completion.Description?.Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries).FirstOrDefault(),
Kind = FromOmniSharpKind(completion.Kind)
};
if (filter == string.Empty || completion.CompletionText.StartsWith(filter))
{
result.Add(newCompletion);
}
}
}
return result;
}