提交 4fbaaf7b 编写于 作者: C CyrusNajmabadi

Merge branch 'simplifyDocumentAcquisition' into lightBulbAsyncGetSelection

......@@ -150,7 +150,7 @@ public bool TryGetTelemetryId(out Guid telemetryId)
using (Logger.LogBlock(FunctionId.SuggestedActions_GetSuggestedActions, cancellationToken))
{
var document = GetMatchingDocumentAsync(range.Snapshot, cancellationToken).WaitAndGetResult(cancellationToken);
var document = range.Snapshot.GetOpenDocumentInCurrentContextWithChanges();
if (document == null)
{
// this is here to fail test and see why it is failed.
......@@ -325,7 +325,7 @@ private bool IsApplicable(CodeAction action, Workspace workspace)
if (!action.PerformFinalApplicabilityCheck)
{
// If we don't even need to perform the final applicability check,
// then the code actoin is applicable.
// then the code action is applicable.
return true;
}
......@@ -625,7 +625,10 @@ private static SuggestedActionSetPriority GetSuggestedActionSetPriority(CodeActi
applicableSpan);
}
public async Task<bool> HasSuggestedActionsAsync(ISuggestedActionCategorySet requestedActionCategories, SnapshotSpan range, CancellationToken cancellationToken)
public async Task<bool> HasSuggestedActionsAsync(
ISuggestedActionCategorySet requestedActionCategories,
SnapshotSpan range,
CancellationToken cancellationToken)
{
var provider = _owner;
......@@ -662,7 +665,7 @@ public async Task<bool> HasSuggestedActionsAsync(ISuggestedActionCategorySet req
}).ConfigureAwait(false);
}
var document = await GetMatchingDocumentAsync(range.Snapshot, cancellationToken).ConfigureAwait(false);
var document = range.Snapshot.GetOpenDocumentInCurrentContextWithChanges();
if (document == null)
{
// this is here to fail test and see why it is failed.
......@@ -766,44 +769,6 @@ public async Task<bool> HasSuggestedActionsAsync(ISuggestedActionCategorySet req
return translatedSpan.Span.ToTextSpan();
}
private static async Task<Document> GetMatchingDocumentAsync(ITextSnapshot givenSnapshot, CancellationToken cancellationToken)
{
var buffer = givenSnapshot.TextBuffer;
if (buffer == null)
{
return null;
}
var workspace = buffer.GetWorkspace();
if (workspace == null)
{
return null;
}
var documentId = workspace.GetDocumentIdInCurrentContext(buffer.AsTextContainer());
if (documentId == null)
{
return null;
}
var document = workspace.CurrentSolution.GetDocument(documentId);
if (document == null)
{
return null;
}
var sourceText = await document.GetTextAsync(cancellationToken).ConfigureAwait(false);
cancellationToken.ThrowIfCancellationRequested();
var snapshot = sourceText.FindCorrespondingEditorTextSnapshot();
if (snapshot == null || snapshot.Version.ReiteratedVersionNumber != givenSnapshot.Version.ReiteratedVersionNumber)
{
return null;
}
return document;
}
private void OnTextViewClosed(object sender, EventArgs e)
{
Dispose();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册