Поделиться через


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).

Служба предложений попытается примирить предлагаемые изменения с любыми изменениями, которые вносит пользователь. Например, предположим, что исходное предложение было вставлять "красный", а пользователь вводит "r". В этом случае изменение будет обновлено для вставки "ed" после введенного пользователем "r". Если изменение не может быть согласовано с изменением пользователя, будет возвращена последняя версия предложения с reason установленным флагом Diverged .

Обратите внимание, что originalProposal и currentProposal может иметь значение NULL. Это может произойти, если действия пользователей приводят к быстрому изменению состояния (например, прокрутка списка IntelliSense). В этом случае первое изменение может привести к тому, что поставщик предложений очистит свое предложение ( присвойте ему значение NULL), чтобы при изменении второго состояния вы получите событие ProposalUpdated для этого предложения null.

Применяется к