Condividi tramite


SuggestionBase.OnProposalUpdatedAsync Metodo

Definizione

È stata apportata una modifica (in genere una modifica nel buffer di testo) che ha causato una modifica nella proposta.

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

Parametri

originalProposal
ProposalBase
currentProposal
ProposalBase
completionState
CompletionState

Restituisce

Commenti

Questo metodo deve restituire rapidamente. Se è necessario eseguire un lavoro sostanziale, deve essere eseguito in un'attività asincrona che modifica la proposta tramite DisplayProposalAsync(ProposalBase, CancellationToken).

Il servizio di suggerimenti tenterà di riconciliare le modifiche proposte con eventuali modifiche apportate dall'utente. Si supponga, ad esempio, che la proposta originale sia quella di inserire "rosso" e i tipi di utente "r". In tal caso, la modifica verrà aggiornata in modo da inserire "ed" dopo che l'utente ha digitato "r". Se la modifica non può essere riconciliata con la modifica dell'utente, la versione più recente della proposta verrà restituita e reason avrà il Diverged flag impostato.

Si noti che originalProposal e currentProposal possono essere Null. Ciò può verificarsi se le azioni degli utenti causano una rapida successione di modifiche di stato (ad esempio, scorrere l'elenco IntelliSense). In questo caso, la prima modifica potrebbe causare la cancellazione della proposta da parte del provider di suggerimenti, impostandola su null, in modo che, quando si verifica la seconda modifica dello stato, si otterrà un evento ProposalUpdated per tale proposta Null.

Si applica a