Freigeben über


SuggestionBase.OnProposalUpdatedAsync Methode

Definition

Es gab einige Änderungen (in der Regel eine Änderung im Textpuffer), die zu einer Änderung des Vorschlags geführt haben.

public abstract System.Threading.Tasks.Task OnProposalUpdatedAsync (Microsoft.VisualStudio.Language.Suggestions.SuggestionSessionBase session, Microsoft.VisualStudio.Language.Proposals.ProposalBase? originalProposal, Microsoft.VisualStudio.Language.Proposals.ProposalBase? currentProposal, Microsoft.VisualStudio.Language.Suggestions.ReasonForUpdate reason, Microsoft.VisualStudio.Text.VirtualSnapshotPoint caret, Microsoft.VisualStudio.Language.Proposals.CompletionState? completionState, System.Threading.CancellationToken cancel);
abstract member OnProposalUpdatedAsync : Microsoft.VisualStudio.Language.Suggestions.SuggestionSessionBase * Microsoft.VisualStudio.Language.Proposals.ProposalBase * Microsoft.VisualStudio.Language.Proposals.ProposalBase * Microsoft.VisualStudio.Language.Suggestions.ReasonForUpdate * Microsoft.VisualStudio.Text.VirtualSnapshotPoint * Microsoft.VisualStudio.Language.Proposals.CompletionState * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public MustOverride Function OnProposalUpdatedAsync (session As SuggestionSessionBase, originalProposal As ProposalBase, currentProposal As ProposalBase, reason As ReasonForUpdate, caret As VirtualSnapshotPoint, completionState As CompletionState, cancel As CancellationToken) As Task

Parameter

originalProposal
ProposalBase
currentProposal
ProposalBase
completionState
CompletionState

Gibt zurück

Hinweise

Diese Methode sollte schnell zurückgegeben werden. Wenn wesentliche Arbeiten ausgeführt werden müssen, sollte dies in einer asynchronen Aufgabe erfolgen, die den Vorschlag über DisplayProposalAsync(ProposalBase, CancellationToken)ändert.

Der Vorschlagsdienst versucht, die vorgeschlagenen Änderungen mit allen Änderungen abzugleichen, die der Benutzer vornimmt. Angenommen, der ursprüngliche Vorschlag sollte "rot" und der Benutzer "r" eingeben. In diesem Fall wird die Bearbeitung aktualisiert, um "ed" nach dem eingegebenen "r" des Benutzers einzufügen. Wenn die Änderung nicht mit der Änderung des Benutzers abgeglichen werden kann, wird die neueste Version des Vorschlags zurückgegeben und reason das Diverged Flag festgelegt.

Beachten Sie, dass originalProposal und currentProposal null sein können. Dies kann passieren, wenn Benutzeraktionen eine schnelle Abfolge von Zustandsänderungen verursachen (z. B. Scrollen durch die IntelliSense-Liste). In diesem Fall kann die erste Änderung dazu führen, dass der Vorschlagsanbieter seinen Vorschlag löscht –- auf NULL festlegen -- sodass sie bei der zweiten Zustandsänderung ein ProposalUpdated-Ereignis für diesen NULL-Vorschlag erhalten.

Gilt für: