From a2f6ec675d4f62dff825902ceebe7471b4c8d234 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Tue, 12 Mar 2019 10:13:39 +0100 Subject: [PATCH] jsdoc for #67872 --- src/vs/vscode.proposed.d.ts | 45 +++++++++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index e67cf1512f217..22732054feb38 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -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; } 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; }