ProposalBrokerBase.RequestProposals Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Request proposals from all of the applicable ProposalSourceBases given caret
and completionState
.
Allow groupingDelay
to pass from the first ProposalSourceBase to complete before giving up on the other sources.
public abstract Microsoft.VisualStudio.Threading.AsyncQueue<Microsoft.VisualStudio.Language.Proposals.ProposalCollectionBase> RequestProposals(Microsoft.VisualStudio.Text.VirtualSnapshotPoint caret, Microsoft.VisualStudio.Language.Proposals.CompletionState? completionState, Microsoft.VisualStudio.Language.Proposals.ProposalScenario scenario, char triggeringCharacter, TimeSpan groupingDelay, System.Threading.CancellationToken cancel);
abstract member RequestProposals : Microsoft.VisualStudio.Text.VirtualSnapshotPoint * Microsoft.VisualStudio.Language.Proposals.CompletionState * Microsoft.VisualStudio.Language.Proposals.ProposalScenario * char * TimeSpan * System.Threading.CancellationToken -> Microsoft.VisualStudio.Threading.AsyncQueue<Microsoft.VisualStudio.Language.Proposals.ProposalCollectionBase>
Public MustOverride Function RequestProposals (caret As VirtualSnapshotPoint, completionState As CompletionState, scenario As ProposalScenario, triggeringCharacter As Char, groupingDelay As TimeSpan, cancel As CancellationToken) As AsyncQueue(Of ProposalCollectionBase)
Parameters
- caret
- VirtualSnapshotPoint
- completionState
- CompletionState
- scenario
- ProposalScenario
- triggeringCharacter
- Char
- groupingDelay
- TimeSpan
- cancel
- CancellationToken
Returns
An AsyncQueue<T> of ProposalCollectionBases. Complete() will be called on the queue when all ProposalSourceBases have completed.
Remarks
The algorithm for enqueuing proposals is as follows:
1. Call <xref data-throw-if-not-resolved="true" uid="Microsoft.VisualStudio.Language.Proposals.ProposalSourceBase.RequestProposalsAsync(Microsoft.VisualStudio.Text.VirtualSnapshotPoint,Microsoft.VisualStudio.Language.Proposals.CompletionState,Microsoft.VisualStudio.Language.Proposals.ProposalScenario,System.Char,System.Threading.CancellationToken)"></xref> for each source.
2. Wait until one source returns with a non-null/empty result.
3. Wait an additional <code data-dev-comment-type="paramref">groupingDelay</code> to allow other sources to generate results.
4. Enqueue all sources that generated results using the ordering specified by their <xref data-throw-if-not-resolved="true" uid="Microsoft.VisualStudio.Language.Proposals.ProposalSourceProviderBase"></xref>.
5. Enqueue remaining results in their order of completion.