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)제안을 변경하는 비동기 작업에서 수행해야 합니다.
제안 서비스는 제안된 편집 내용을 사용자가 변경한 내용과 조정하려고 시도합니다. 예를 들어 원래 제안이 "빨간색"을 삽입하고 사용자가 "r"을 입력했다고 가정해 보겠습니다. 이 경우 사용자가 입력한 "r" 뒤에 "ed"를 삽입하도록 편집이 업데이트됩니다. 변경 내용이 사용자의 변경 내용과 조정할 수 없는 경우 제안의 최신 버전이 반환되고 reason
플래그가 Diverged 설정됩니다.
및 currentProposal
는 originalProposal
null일 수 있습니다. 사용자 작업으로 인해 상태 변경이 빠르게 연속되는 경우(예: IntelliSense 목록 스크롤) 이 발생할 수 있습니다. 이 경우 첫 번째 변경으로 인해 제안 공급자가 제안을 지우고 null로 설정하면 두 번째 상태 변경이 발생하면 해당 null 제안에 대한 ProposalUpdated 이벤트가 발생할 수 있습니다.