SuggestionBase.OnProposalUpdatedAsync Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- session
- SuggestionSessionBase
- originalProposal
- ProposalBase
- currentProposal
- ProposalBase
- reason
- ReasonForUpdate
- caret
- VirtualSnapshotPoint
- completionState
- CompletionState
- cancel
- CancellationToken
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.