共用方式為


SuggestionBase.OnProposalUpdatedAsync 方法

定義

(文字緩衝區) 中造成提案變更的一些變更。

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

參數

originalProposal
ProposalBase
currentProposal
ProposalBase
completionState
CompletionState

傳回

備註

這個方法應該會快速傳回。 如果需要完成任何重大工作,則應該在透過 DisplayProposalAsync(ProposalBase, CancellationToken)變更提案的異步工作中完成。

建議服務會嘗試以使用者所做的任何變更來對建議的編輯進行偵察。 例如,假設原始提案是插入 「red」 而使用者輸入 「r」。 在此情況下,編輯將會更新為在使用者輸入 「r」 之後插入 「ed」。 如果變更無法與使用者的變更協調,則會傳回最新的提案版本,並reasonDiverged設定旗標。

請注意, originalProposalcurrentProposal 可能是 Null。 如果使用者的動作導致快速連續的狀態變更 (例如捲動 IntelliSense 清單) ,就會發生這種情況。 在此情況下,第一項變更可能會導致建議提供者清除其提案 -- 將其設定為 null ,如此一來,當第二個狀態變更發生時,您會收到該 Null 提案的 ProposalUpdated 事件。

適用於