SuggestionBase.OnProposalUpdatedAsync 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
(文字緩衝區) 中造成提案變更的一些變更。
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
參數
- session
- SuggestionSessionBase
- originalProposal
- ProposalBase
- currentProposal
- ProposalBase
- reason
- ReasonForUpdate
- caret
- VirtualSnapshotPoint
- completionState
- CompletionState
- cancel
- CancellationToken
傳回
備註
這個方法應該會快速傳回。 如果需要完成任何重大工作,則應該在透過 DisplayProposalAsync(ProposalBase, CancellationToken)變更提案的異步工作中完成。
建議服務會嘗試以使用者所做的任何變更來對建議的編輯進行偵察。 例如,假設原始提案是插入 「red」 而使用者輸入 「r」。 在此情況下,編輯將會更新為在使用者輸入 「r」 之後插入 「ed」。 如果變更無法與使用者的變更協調,則會傳回最新的提案版本,並reason
Diverged設定旗標。
請注意, originalProposal
和 currentProposal
可能是 Null。 如果使用者的動作導致快速連續的狀態變更 (例如捲動 IntelliSense 清單) ,就會發生這種情況。 在此情況下,第一項變更可能會導致建議提供者清除其提案 -- 將其設定為 null ,如此一來,當第二個狀態變更發生時,您會收到該 Null 提案的 ProposalUpdated 事件。