Sdílet prostřednictvím


SuggestionBase.OnProposalUpdatedAsync Metoda

Definice

Došlo k určité změně (obvykle změna v textové vyrovnávací paměti), která způsobila změnu v návrhu.

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

Parametry

originalProposal
ProposalBase
currentProposal
ProposalBase
completionState
CompletionState

Návraty

Poznámky

Tato metoda by se měla rychle vrátit. Pokud je potřeba provést nějakou zásadní práci, měla by být provedena v asynchronním úkolu, který změní návrh prostřednictvím DisplayProposalAsync(ProposalBase, CancellationToken).

Služba návrhů se pokusí znovu skoncilovat navrhované úpravy se všemi změnami, které uživatel provede. Předpokládejme například, že původní návrh měl vložit "red" a uživatel zadá "r". V takovém případě bude úprava aktualizována tak, aby se za typ "r" uživatele vložil "ed". Pokud změnu nelze sladit se změnou uživatele, vrátí se nejnovější verze návrhu a reason bude mít Diverged nastavený příznak.

Všimněte si, že originalProposal a currentProposal může být null. K tomu může dojít v případě, že akce uživatelů způsobí rychlé sledy změn stavu (např. procházení seznamu IntelliSense). V tomto případě může první změna způsobit, že poskytovatel návrhu vymaže svůj návrh – nastaví ho na hodnotu null – takže když dojde ke druhé změně stavu, zobrazí se událost ProposalUpdated pro tento návrh s hodnotou null.

Platí pro