Skip to content

Commit

Permalink
jsdoc for #67872
Browse files Browse the repository at this point in the history
  • Loading branch information
jrieken committed Mar 12, 2019
1 parent 52a923c commit a2f6ec6
Showing 1 changed file with 41 additions and 4 deletions.
45 changes: 41 additions & 4 deletions src/vs/vscode.proposed.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,24 +84,61 @@ declare module 'vscode' {

//#region Joh - selection range provider

/**
* A selection range represents a part of a selection hierarchy. A selection range
* may have a parent selection range that contains it.
*/
export class SelectionRange {

/**
* The [range](#Range) of this selection range.
*/
range: Range;

/**
* The parent selection range containing this range.
*/
parent?: SelectionRange;

/**
* Creates a new selection range.
*
* @param range The range of the selection range.
* @param parent The parent of the selection range.
*/
constructor(range: Range, parent?: SelectionRange);
}

export interface SelectionRangeProvider {
/**
* Provide selection ranges for the given positions. Selection ranges should be computed individually and
* independend for each postion. The editor will merge and deduplicate ranges but providers must return sequences
* of ranges (per position) where a range must [contain](#Range.contains) and subsequent ranges.
* Provide selection ranges for the given positions.
*
* Selection ranges should be computed individually and independend for each postion. The editor will merge
* and deduplicate ranges but providers must return hierarchies of selection ranges so that a range
* is [contained](#Range.contains) by its parent.
*
* todo@joh
* @param document The document in which the command was invoked.
* @param positions The positions at which the command was invoked.
* @param token A cancellation token.
* @return Selection ranges or a thenable that resolves to such. The lack of a result can be
* signaled by returning `undefined` or `null`.
*/
provideSelectionRanges(document: TextDocument, positions: Position[], token: CancellationToken): ProviderResult<SelectionRange[]>;
}

export namespace languages {

/**
* Register a selection range provider.
*
* Multiple providers can be registered for a language. In that case providers are asked in
* parallel and the results are merged. A failing provider (rejected promise or exception) will
* not cause a failure of the whole operation.
*
* @param selector A selector that defines the documents this provider is applicable to.
* @param provider A selection range provider.
* @return A [disposable](#Disposable) that unregisters this provider when being disposed.
*/
export function registerSelectionRangeProvider(selector: DocumentSelector, provider: SelectionRangeProvider): Disposable;
}

Expand Down

0 comments on commit a2f6ec6

Please # to comment.