SuggestionBase.OnProposalUpdatedAsync Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- session
- SuggestionSessionBase
- originalProposal
- ProposalBase
- currentProposal
- ProposalBase
- reason
- ReasonForUpdate
- caret
- VirtualSnapshotPoint
- completionState
- CompletionState
- cancel
- CancellationToken
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.