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
Параметры
- session
- SuggestionSessionBase
- originalProposal
- ProposalBase
- currentProposal
- ProposalBase
- reason
- ReasonForUpdate
- caret
- VirtualSnapshotPoint
- completionState
- CompletionState
- cancel
- CancellationToken
Возвращаемое значение
Комментарии
Этот метод должен быстро возвращать. Если требуется выполнить какую-либо существенную работу, она должна выполняться в асинхронной задаче, которая изменяет предложение с помощью DisplayProposalAsync(ProposalBase, CancellationToken).
Служба предложений попытается примирить предлагаемые изменения с любыми изменениями, которые вносит пользователь. Например, предположим, что исходное предложение было вставлять "красный", а пользователь вводит "r". В этом случае изменение будет обновлено для вставки "ed" после введенного пользователем "r". Если изменение не может быть согласовано с изменением пользователя, будет возвращена последняя версия предложения с reason
установленным флагом Diverged .
Обратите внимание, что originalProposal
и currentProposal
может иметь значение NULL. Это может произойти, если действия пользователей приводят к быстрому изменению состояния (например, прокрутка списка IntelliSense). В этом случае первое изменение может привести к тому, что поставщик предложений очистит свое предложение ( присвойте ему значение NULL), чтобы при изменении второго состояния вы получите событие ProposalUpdated для этого предложения null.