提交 0b160c3a 编写于 作者: C CyrusNajmabadi 提交者: GitHub

Merge pull request #18927 from CyrusNajmabadi/asyncContext

Make all of FindUsagesContext async.
......@@ -22,7 +22,8 @@ internal abstract partial class AbstractFindUsagesService : IFindUsagesService
document, position, cancellationToken).ConfigureAwait(false);
if (tuple == null)
{
context.ReportMessage(EditorFeaturesResources.Cannot_navigate_to_the_symbol_under_the_caret);
await context.ReportMessageAsync(
EditorFeaturesResources.Cannot_navigate_to_the_symbol_under_the_caret).ConfigureAwait(false);
return;
}
......@@ -30,12 +31,13 @@ internal abstract partial class AbstractFindUsagesService : IFindUsagesService
if (message != null)
{
context.ReportMessage(message);
await context.ReportMessageAsync(message).ConfigureAwait(false);
return;
}
context.SetSearchTitle(string.Format(EditorFeaturesResources._0_implementations,
FindUsagesHelpers.GetDisplayName(tuple.Value.symbol)));
await context.SetSearchTitleAsync(
string.Format(EditorFeaturesResources._0_implementations,
FindUsagesHelpers.GetDisplayName(tuple.Value.symbol))).ConfigureAwait(false);
var project = tuple.Value.project;
foreach (var implementation in tuple.Value.implementations)
......@@ -127,9 +129,8 @@ internal abstract partial class AbstractFindUsagesService : IFindUsagesService
public static async Task FindSymbolReferencesAsync(
IFindUsagesContext context, ISymbol symbol, Project project, CancellationToken cancellationToken)
{
context.SetSearchTitle(string.Format(EditorFeaturesResources._0_references,
FindUsagesHelpers.GetDisplayName(symbol)));
await context.SetSearchTitleAsync(string.Format(EditorFeaturesResources._0_references,
FindUsagesHelpers.GetDisplayName(symbol))).ConfigureAwait(false);
var progressAdapter = new FindReferencesProgressAdapter(project.Solution, context);
// Now call into the underlying FAR engine to find reference. The FAR
......@@ -195,7 +196,7 @@ internal abstract partial class AbstractFindUsagesService : IFindUsagesService
}
var searchTitle = string.Format(EditorFeaturesResources._0_references, title);
context.SetSearchTitle(searchTitle);
await context.SetSearchTitleAsync(searchTitle).ConfigureAwait(false);
var solution = document.Project.Solution;
......
......@@ -15,13 +15,9 @@ protected FindUsagesContext()
{
}
public virtual void ReportMessage(string message)
{
}
public virtual Task ReportMessageAsync(string message) => SpecializedTasks.EmptyTask;
public virtual void SetSearchTitle(string title)
{
}
public virtual Task SetSearchTitleAsync(string title) => SpecializedTasks.EmptyTask;
public virtual Task OnCompletedAsync() => SpecializedTasks.EmptyTask;
......
......@@ -12,12 +12,12 @@ internal interface IFindUsagesContext
/// <summary>
/// Report a message to be displayed to the user.
/// </summary>
void ReportMessage(string message);
Task ReportMessageAsync(string message);
/// <summary>
/// Set the title of the window that results are displayed in.
/// </summary>
void SetSearchTitle(string title);
Task SetSearchTitleAsync(string title);
Task OnDefinitionFoundAsync(DefinitionItem definition);
Task OnReferenceFoundAsync(SourceReferenceItem reference);
......
......@@ -31,11 +31,17 @@ public SimpleFindUsagesContext(CancellationToken cancellationToken)
public string Message { get; private set; }
public string SearchTitle { get; private set; }
public override void ReportMessage(string message)
=> Message = message;
public override Task ReportMessageAsync(string message)
{
Message = message;
return SpecializedTasks.EmptyTask;
}
public override void SetSearchTitle(string title)
=> SearchTitle = title;
public override Task SetSearchTitleAsync(string title)
{
SearchTitle = title;
return SpecializedTasks.EmptyTask;
}
public ImmutableArray<DefinitionItem> GetDefinitions()
{
......
......@@ -218,8 +218,12 @@ public IDisposable Subscribe(ITableDataSink sink)
#region FindUsagesContext overrides.
public sealed override void SetSearchTitle(string title)
=> _findReferencesWindow.Title = title;
public sealed override Task SetSearchTitleAsync(string title)
{
// Note: IFindAllReferenceWindow.Title is safe to set from any thread.
_findReferencesWindow.Title = title;
return SpecializedTasks.EmptyTask;
}
public sealed override async Task OnCompletedAsync()
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册