JSDoc improvements for vscode.d.ts

This commit is contained in:
Alex Dima 2015-11-16 12:59:50 +01:00
parent 0cdf8ba576
commit 745ad4a520

283
src/vs/vscode.d.ts vendored
View file

@ -3,6 +3,10 @@
* Licensed under the MIT License. See License.txt in the project root for license information. * Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
/*
This is the Type Definition file for VSCode version 0.10.1
*/
/* /*
- comments are marked like this '<<< comment >>>' - comments are marked like this '<<< comment >>>'
@ -43,19 +47,19 @@ declare namespace vscode {
*/ */
export interface Command { export interface Command {
/** /**
* Title of the command, like __save__ * Title of the command, like __save__.
*/ */
title: string; title: string;
/** /**
* The identifier of the actual command handler * The identifier of the actual command handler.
* @see commands.registerCommand * @see [[#commands.registerCommand]].
*/ */
command: string; command: string;
/** /**
* Arguments that the command-handler should be * Arguments that the command-handler should be
* invoked with * invoked with.
*/ */
arguments?: any[]; arguments?: any[];
} }
@ -63,13 +67,13 @@ declare namespace vscode {
/** /**
* Represents a line of text such as a line of source code. * Represents a line of text such as a line of source code.
* *
* TextLine objects are __immutable__. That means that when a [document](#TextDocument) changes * TextLine objects are __immutable__. When a [document](#TextDocument) changes,
* previsouly retrieved lines will not represent the latest state. * previsouly retrieved lines will not represent the latest state.
*/ */
export interface TextLine { export interface TextLine {
/** /**
* The zero-base line number. * The zero-based line number.
* *
* @readonly * @readonly
*/ */
@ -106,7 +110,7 @@ declare namespace vscode {
/** /**
* Whether this line is whitespace only, shorthand * Whether this line is whitespace only, shorthand
* for `#firstNonWhitespaceCharacterIndex === #text.length` * for [[#TextLine.firstNonWhitespaceCharacterIndex]] === [[#TextLine.text.length]]
* *
* @readonly * @readonly
*/ */
@ -130,7 +134,7 @@ declare namespace vscode {
/** /**
* The file system path of the associated resource. Shorthand * The file system path of the associated resource. Shorthand
* notation for `#uri.fsPath`. Independent of the uri scheme. * notation for [[#TextDocument.uri.fsPath]]. Independent of the uri scheme.
* *
* @readonly * @readonly
*/ */
@ -185,8 +189,8 @@ declare namespace vscode {
* that the returned object is *not* live and changes to the * that the returned object is *not* live and changes to the
* document are not reflected. * document are not reflected.
* *
* @param line A line number in (0, lineCount[ * @param line A line number in [0, lineCount).
* @return A line. * @return A [line](#TextLine).
*/ */
lineAt(line: number): TextLine; lineAt(line: number): TextLine;
@ -195,19 +199,29 @@ declare namespace vscode {
* that the returned object is *not* live and changes to the * that the returned object is *not* live and changes to the
* document are not reflected. * document are not reflected.
* *
* @see ()[#lineAt] * The position will be [adjusted](#TextDocument.validatePosition).
* @param position A position which line is in (0, lineCount[ *
* @return A line. * @see [[#TextDocument.lineAt]]
* @param position A position.
* @return A [line](#TextLine).
*/ */
lineAt(position: Position): TextLine; lineAt(position: Position): TextLine;
/** /**
* Converts the position to a zero-based offset. * Converts the position to a zero-based offset.
*
* The position will be [adjusted](#TextDocument.validatePosition).
*
* @param position A position.
* @return A valid zero-based offset.
*/ */
offsetAt(position: Position): number; offsetAt(position: Position): number;
/** /**
* Converts a zero-based offset to a position. * Converts a zero-based offset to a position.
*
* @param offset A zero-based offset.
* @return A valid [position](#Position).
*/ */
positionAt(offset: number): Position; positionAt(offset: number): Position;
@ -216,6 +230,7 @@ declare namespace vscode {
* a range. The range will be [adjusted](#TextDocument.validateRange). * a range. The range will be [adjusted](#TextDocument.validateRange).
* *
* @param range Include only the text included by the range. * @param range Include only the text included by the range.
* @return The text inside the provided range or the entire text.
*/ */
getText(range?: Range): string; getText(range?: Range): string;
@ -224,6 +239,8 @@ declare namespace vscode {
* common separators, like space, -, _, etc. In addition, per languge custom * common separators, like space, -, _, etc. In addition, per languge custom
* [word definitions](#LanguageConfiguration.wordPattern) can be defined. * [word definitions](#LanguageConfiguration.wordPattern) can be defined.
* *
* The position will be [adjusted](#TextDocument.validatePosition).
*
* @param position A position. * @param position A position.
* @return A range spanning a word, or `undefined`. * @return A range spanning a word, or `undefined`.
*/ */
@ -248,7 +265,7 @@ declare namespace vscode {
/** /**
* Represents a line and character position, such as * Represents a line and character position, such as
* the position of the caret. * the position of the cursor.
* *
* Position objects are __immutable__. Use the [with](#Position.with) or * Position objects are __immutable__. Use the [with](#Position.with) or
* [translate](#Position.translate) methods to derive new positions * [translate](#Position.translate) methods to derive new positions
@ -269,49 +286,68 @@ declare namespace vscode {
character: number; character: number;
/** /**
* @param line * @param line A zero-based line value.
* @param character * @param character A zero-based character value.
*/ */
constructor(line: number, character: number); constructor(line: number, character: number);
/** /**
* Check if `other` is before this position.
*
* @param other A position.
* @return `true` if position is on a smaller line * @return `true` if position is on a smaller line
* or smaller character. * or on the same line on a smaller character.
*/ */
isBefore(other: Position): boolean; isBefore(other: Position): boolean;
/** /**
* @return `true` if position is on a smaller or equal line * Check if `other` is before or equal to this position.
* or smaller or equal character. *
* @param other A position.
* @return `true` if position is on a smaller line
* or on the same line on a smaller or equal character.
*/ */
isBeforeOrEqual(other: Position): boolean; isBeforeOrEqual(other: Position): boolean;
/** /**
* Check if `other` is after this position.
*
* @param other A position.
* @return `true` if position is on a greater line * @return `true` if position is on a greater line
* or greater character. * or on the same line on a greater character.
*/ */
isAfter(other: Position): boolean; isAfter(other: Position): boolean;
/** /**
* @return `true` if position is on a greater or equal line * Check if `other` is after or equal to this position.
* or greater or equal character. *
* @param other A position.
* @return `true` if position is on a greater line
* or on the same line on a greater or equal character.
*/ */
isAfterOrEqual(other: Position): boolean; isAfterOrEqual(other: Position): boolean;
/** /**
* Check if `other` equals this position.
*
* @param other A position.
* @return `true` if the line and character of the given position are equal to * @return `true` if the line and character of the given position are equal to
* the line and character of this position. * the line and character of this position.
*/ */
isEqual(other: Position): boolean; isEqual(other: Position): boolean;
/** /**
* @return A number smaller zero if this position is before the given position, * Compare this to `other`.
* a number greater zero if this position is after the given position, or zero when *
* @param other A position.
* @return A number smaller than zero if this position is before the given position,
* a number greater than zero if this position is after the given position, or zero when
* this and the given position are equal. * this and the given position are equal.
*/ */
compareTo(other: Position): number; compareTo(other: Position): number;
/** /**
* Create a new position relative to this position.
* *
* @param lineDelta Delta value for the line value, default is `0`. * @param lineDelta Delta value for the line value, default is `0`.
* @param characterDelta Delta value for the character value, default is `0`. * @param characterDelta Delta value for the character value, default is `0`.
@ -321,15 +357,18 @@ declare namespace vscode {
translate(lineDelta?: number, characterDelta?: number): Position; translate(lineDelta?: number, characterDelta?: number): Position;
/** /**
* Create a new position derived from this position.
*
* @param line Value that should be used as line value, default is the [existing value](#Position.line) * @param line Value that should be used as line value, default is the [existing value](#Position.line)
* @param character Value that should be used as character value, default is the [existing value](#Position.character) * @param character Value that should be used as character value, default is the [existing value](#Position.character)
* @return A position which line and character are replaced by the given values. * @return A position where line and character are replaced by the given values.
*/ */
with(line?: number, character?: number): Position; with(line?: number, character?: number): Position;
} }
/** /**
* A range represents an ordered pair of two positions. * A range represents an ordered pair of two positions.
* It is guaranteed that [start](#Range.start).isBeforeOrEqual([end](#Range.end))
* *
* Range objects are __immutable__. Use the [with](#Range.with), * Range objects are __immutable__. Use the [with](#Range.with),
* [intersection](#Range.intersection), or [union](#Range.union) methods * [intersection](#Range.intersection), or [union](#Range.union) methods
@ -338,20 +377,20 @@ declare namespace vscode {
export class Range { export class Range {
/** /**
* The start position is before or equal to end. * The start position. It is before or equal to [end](#Range.end).
* @readonly * @readonly
*/ */
start: Position; start: Position;
/** /**
* The end position which is after or equal to start. * The end position. it is after or equal to [start](#Range.start).
* @readonly * @readonly
*/ */
end: Position; end: Position;
/** /**
* Create a new range from two position. If `start` is not * Create a new range from two position. If `start` is not
* before or equal to `end` the values will be swapped. * before or equal to `end`, the values will be swapped.
* *
* @param start A position. * @param start A position.
* @param end A position. * @param end A position.
@ -359,13 +398,13 @@ declare namespace vscode {
constructor(start: Position, end: Position); constructor(start: Position, end: Position);
/** /**
* Create a new range from four number. The parameters * Create a new range from number coordinates. It is a shorter equivalent of
* might be swapped so that start is before or equal to end. * using `new Range(new Position(startLine, startCharacter), new Position(endLine, endCharacter))`
* *
* @param startLine A positive number or zero. * @param startLine A zero-based line value.
* @param startCharacter A positive number or zero. * @param startCharacter A zero-based character value.
* @param endLine A positive number or zero. * @param endLine A zero-based line value.
* @param endCharacter A positive number or zero. * @param endCharacter A zero-based character value.
*/ */
constructor(startLine: number, startCharacter: number, endLine: number, endCharacter: number); constructor(startLine: number, startCharacter: number, endLine: number, endCharacter: number);
@ -375,34 +414,49 @@ declare namespace vscode {
isEmpty: boolean; isEmpty: boolean;
/** /**
* `true` iff `start` and `end` are on the same line. * `true` iff `start.line` and `end.line` are equal.
*/ */
isSingleLine: boolean; isSingleLine: boolean;
/** /**
* Check if a position or a range is contained in this range.
*
* @param positionOrRange A position or a range.
* @return `true` iff the position or range is inside or equal * @return `true` iff the position or range is inside or equal
* to this range. * to this range.
*/ */
contains(positionOrRange: Position | Range): boolean; contains(positionOrRange: Position | Range): boolean;
/** /**
* Check if `other` equals this range.
*
* @param other A range.
* @return `true` when start and end are [equal](#Position.isEqual) to * @return `true` when start and end are [equal](#Position.isEqual) to
* start and end of this range * start and end of this range
*/ */
isEqual(other: Range): boolean; isEqual(other: Range): boolean;
/** /**
* Intersect `range` with this range and returns a new range or `undefined`
* if the ranges have no overlap.
*
* @param range A range.
* @return A range of the greater start and smaller end positions. Will * @return A range of the greater start and smaller end positions. Will
* return undefined when there is no overlap. * return undefined when there is no overlap.
*/ */
intersection(range: Range): Range; intersection(range: Range): Range;
/** /**
* Compute the union of `other` with this range.
*
* @param other A range.
* @return A range of smaller start position and the greater end position. * @return A range of smaller start position and the greater end position.
*/ */
union(other: Range): Range; union(other: Range): Range;
/** /**
* Create a new range derived from this range.
*
* @param start A position that should be used as start. The default value is the [current start](#Range.start). * @param start A position that should be used as start. The default value is the [current start](#Range.start).
* @param end A position that should be used as end. The default value is the [current end](#Range.end). * @param end A position that should be used as end. The default value is the [current end](#Range.end).
* @return A range derived from this range with the given start and end position. * @return A range derived from this range with the given start and end position.
@ -418,13 +472,15 @@ declare namespace vscode {
/** /**
* The position at which the selection starts. * The position at which the selection starts.
* This position might be before or after [active](#Selection.active)
*/ */
anchor: Position; // <<< is anchor always start or end of the underlying range? if yes, why not just use a boolean 'reversed'? >>> anchor: Position;
/** /**
* The position of the cursor. * The position of the cursor.
* This position might be before or after [anchor](#Selection.anchor)
*/ */
active: Position; //<<< why is the cursor position called 'active' and not 'cursor'? the comment should explain this >>> active: Position;
/** /**
* Create a selection from two postions. * Create a selection from two postions.
@ -432,39 +488,58 @@ declare namespace vscode {
constructor(anchor: Position, active: Position); constructor(anchor: Position, active: Position);
/** /**
* Create a selection from four points. * Create a selection from four coordinates.
* *
* @param anchorLine A positive number or zero. * @param anchorLine A zero-based line value.
* @param anchorCharacter A positive number or zero. * @param anchorCharacter A zero-based character value.
* @param activeLine A positive number or zero. * @param activeLine A zero-based line value.
* @param activeCharacter A positive number or zero. * @param activeCharacter A zero-based character value.
*/ */
constructor(anchorLine: number, anchorCharacter: number, activeLine: number, activeCharacter: number); constructor(anchorLine: number, anchorCharacter: number, activeLine: number, activeCharacter: number);
/** /**
* A selection is reversed if the [anchor](#Selection.anchor) * A selection is reversed if [active](#Selection.active).isBefore([anchor](#Selection.anchor))
* is equal to [start](#Selection.start) and if [active](#Selection.active)
* is equal to [end](#Selection.end)
*/ */
isReversed: boolean; isReversed: boolean;
} }
/**
* Represents an event describing the change in a [text editor's selections](#TextEditor.selections).
*/
export interface TextEditorSelectionChangeEvent { export interface TextEditorSelectionChangeEvent {
/**
* The [text editor](#TextEditor) for which the selections have changed.
*/
textEditor: TextEditor; textEditor: TextEditor;
/**
* The new value for the [text editor's selections](#TextEditor.selections).
*/
selections: Selection[]; selections: Selection[];
} }
/**
* Represents an event describing the change in a [text editor's options](#TextEditor.options).
*/
export interface TextEditorOptionsChangeEvent { export interface TextEditorOptionsChangeEvent {
/**
* The [text editor](#TextEditor) for which the options have changed.
*/
textEditor: TextEditor; textEditor: TextEditor;
/**
* The new value for the [text editor's options](#TextEditor.options).
*/
options: TextEditorOptions; options: TextEditorOptions;
} }
/** /**
* * Represents a [text editor](#TextEditor)'s [options](#TextEditor.options).
*/ */
export interface TextEditorOptions { export interface TextEditorOptions {
/** /**
* The size in spaces a tab takes * The size in spaces a tab takes. This is used for two purposes:
* - the rendering width of a tab character;
* - the number of spaces to insert when [insertSpaces](#TextEditorOptions.insertSpaces) is true.
*/ */
tabSize: number; tabSize: number;
@ -475,8 +550,8 @@ declare namespace vscode {
} }
/** /**
* A text editor decoration type is a handle to additional styles in * Represents a handle to a set of decorations
* the editor. * sharing the same [styling options](#DecorationRenderOptions) in a [text editor](#TextEditor).
* *
* To get an instance of a `TextEditorDecorationType` use * To get an instance of a `TextEditorDecorationType` use
* [createTextEditorDecorationType](#window.createTextEditorDecorationType). * [createTextEditorDecorationType](#window.createTextEditorDecorationType).
@ -484,19 +559,40 @@ declare namespace vscode {
export interface TextEditorDecorationType { export interface TextEditorDecorationType {
/** /**
* Internal representation of the handle.
* @readonly * @readonly
*/ */
key: string; key: string;
/**
* Remove this decoration type and all decorations on all text editors using it.
*/
dispose(): void; dispose(): void;
} }
/**
* Represents different [reveal](#TextEditor.revealRange) strategies in a text editor.
*/
export enum TextEditorRevealType { export enum TextEditorRevealType {
Default, // <<< what is 'Default'? suggest to make 'Default' an alias for a self-describing value >>> /**
* The range will be revealed with as little scrolling as possible.
*/
Default,
/**
* The range will always be revealed in the center of the viewport.
*/
InCenter, InCenter,
/**
* If the range is outside the viewport, it will be revealed in the center of the viewport.
* Otherwise, it will be revealed with as little scrolling as possible.
*/
InCenterIfOutsideViewport InCenterIfOutsideViewport
} }
/**
* Represents different positions for rendering a decoration in an (overview ruler)[#DecorationRenderOptions.overviewRulerLane].
* The overview ruler supports three lanes.
*/
export enum OverviewRulerLane { export enum OverviewRulerLane {
Left = 1, Left = 1,
Center = 2, Center = 2,
@ -504,6 +600,9 @@ declare namespace vscode {
Full = 7 Full = 7
} }
/**
* Represents theme specific rendering styles for a [text editor decoration](#TextEditorDecorationType).
*/
export interface ThemableDecorationRenderOptions { export interface ThemableDecorationRenderOptions {
/** /**
* Background color of the decoration. Use rgba() and define transparent background colors to play well with other decorations. * Background color of the decoration. Use rgba() and define transparent background colors to play well with other decorations.
@ -566,7 +665,7 @@ declare namespace vscode {
color?: string; color?: string;
/** /**
* A path to an image to be rendered in the gutterIconPath. * An **absolute path** to an image to be rendered in the gutterIconPath.
*/ */
gutterIconPath?: string; gutterIconPath?: string;
@ -576,6 +675,9 @@ declare namespace vscode {
overviewRulerColor?: string; overviewRulerColor?: string;
} }
/**
* Represents rendering styles for a [text editor decoration](#TextEditorDecorationType).
*/
export interface DecorationRenderOptions extends ThemableDecorationRenderOptions { export interface DecorationRenderOptions extends ThemableDecorationRenderOptions {
/** /**
* Should the decoration be rendered also on the whitespace after the line text. * Should the decoration be rendered also on the whitespace after the line text.
@ -599,6 +701,9 @@ declare namespace vscode {
dark?: ThemableDecorationRenderOptions; dark?: ThemableDecorationRenderOptions;
} }
/**
* Represents options for a specific decoration in a [decoration set](#TextEditorDecorationType).
*/
export interface DecorationOptions { export interface DecorationOptions {
/** /**
@ -612,6 +717,9 @@ declare namespace vscode {
hoverMessage: MarkedString | MarkedString[]; hoverMessage: MarkedString | MarkedString[];
} }
/**
* Represents an editor that is attached to a [document](#TextDocument).
*/
export interface TextEditor { export interface TextEditor {
/** /**
@ -642,7 +750,7 @@ declare namespace vscode {
* callback executes. * callback executes.
* *
* @param callback A function which can make edits using an [edit-builder](#TextEditorEdit). * @param callback A function which can make edits using an [edit-builder](#TextEditorEdit).
* @return A promise that resolve when the edits could be applied. * @return A promise that resolves with a value indicating if the edits could be applied.
*/ */
edit(callback: (editBuilder: TextEditorEdit) => void): Thenable<boolean>; edit(callback: (editBuilder: TextEditorEdit) => void): Thenable<boolean>;
@ -650,13 +758,18 @@ declare namespace vscode {
* Adds a set of decorations to the text editor. If a set of decorations already exists with * Adds a set of decorations to the text editor. If a set of decorations already exists with
* the given [decoration type](#TextEditorDecorationType), they will be replaced. * the given [decoration type](#TextEditorDecorationType), they will be replaced.
* *
* See [createTextEditorDecorationType](#window.createTextEditorDecorationType).
*
* @param decorationType A decoration type. * @param decorationType A decoration type.
* @param rangesOrOptions Either [ranges](#Range) or more detailed [options](#DecorationOptions). * @param rangesOrOptions Either [ranges](#Range) or more detailed [options](#DecorationOptions).
*/ */
setDecorations(decorationType: TextEditorDecorationType, rangesOrOptions: Range[] | DecorationOptions[]): void; setDecorations(decorationType: TextEditorDecorationType, rangesOrOptions: Range[] | DecorationOptions[]): void;
/** /**
* Scroll as necessary in order to reveal the given range. * Scroll as indicated by `revealType` in order to reveal the given range.
*
* @param range A range.
* @param revealType The scrolling strategy for revealing `range`.
*/ */
revealRange(range: Range, revealType?: TextEditorRevealType): void; revealRange(range: Range, revealType?: TextEditorRevealType): void;
@ -670,7 +783,6 @@ declare namespace vscode {
show(column?: ViewColumn): void; show(column?: ViewColumn): void;
/** /**
*
* **This method is deprecated.** Use the command 'workbench.action.closeActiveEditor' instead. * **This method is deprecated.** Use the command 'workbench.action.closeActiveEditor' instead.
* This method shows unexpected bahviour and will be removed in the next major update. * This method shows unexpected bahviour and will be removed in the next major update.
* *
@ -683,24 +795,35 @@ declare namespace vscode {
/** /**
* A complex edit that will be applied on a TextEditor. * A complex edit that will be applied in one transaction on a TextEditor.
* This holds a description of the edits and if the edits are valid (i.e. no overlapping regions, etc.) they can be applied on a Document associated with a TextEditor. * This holds a description of the edits and if the edits are valid (i.e. no overlapping regions, document was not changed in the meantime, etc.)
* they can be applied on a [document](#Document) associated with a [text editor](#TextEditor).
* *
* <<< for transactionality would be great of the text editor edit would allow to set the selection at the end of the operation >>>
*/ */
export interface TextEditorEdit { export interface TextEditorEdit {
/** /**
* Replace a certain text region with a new value. <<< what's about line separators in the replacement string? do I have to care? >>> * Replace a certain text region with a new value.
* You can use \r\n or \n in `value` and they will be normalized to the current [document](#Document).
*
* @param location The range this operation should remove.
* @param value The new text this operation should insert after removing `location`.
*/ */
replace(location: Position | Range | Selection, value: string): void; replace(location: Position | Range | Selection, value: string): void;
/** /**
* Insert text at a location <<< what's about line separators in the replacement string? do I have to care? >>> * Insert text at a location.
* You can use \r\n or \n in `value` and they will be normalized to the current [document](#Document).
* Although the equivalent text edit can be made with [replace](#TextEditorEdit.replace), `insert` will produce a different resulting selection (it will get moved).
*
* @param location The position where the new text should be inserted.
* @param value The new text this operation should insert.
*/ */
insert(location: Position, value: string): void; insert(location: Position, value: string): void;
/** /**
* Delete a certain text region. * Delete a certain text region.
*
* @param location The range this operation should remove.
*/ */
delete(location: Range | Selection): void; delete(location: Range | Selection): void;
@ -771,7 +894,7 @@ declare namespace vscode {
* operation to request cancellation, like cancelling a request * operation to request cancellation, like cancelling a request
* for completion items because the user continued to type. * for completion items because the user continued to type.
* *
* A cancallation token can only cancel once. That means it * A cancellation token can only cancel once. That means it
* signaled cancellation it will do so forever <<< don't understand this >>> * signaled cancellation it will do so forever <<< don't understand this >>>
*/ */
export interface CancellationToken { export interface CancellationToken {
@ -972,8 +1095,8 @@ declare namespace vscode {
/** /**
* A document filter denotes a document by different properties like * A document filter denotes a document by different properties like
* the [language](#TextDocument.languageId), the (scheme)[#Uri.scheme] of * the [language](#TextDocument.languageId), the [scheme](#Uri.scheme) of
* it's resource, or a glob-pattern that is applied to the (path)[#TextDocument.fileName] * it's resource, or a glob-pattern that is applied to the [path](#TextDocument.fileName)
* *
* A language filter that applies to typescript files on disk would be this: * A language filter that applies to typescript files on disk would be this:
* ``` * ```
@ -1004,7 +1127,7 @@ declare namespace vscode {
/** /**
* A language selector is the combination of one or many language identifiers * A language selector is the combination of one or many language identifiers
* and (language filters)[#LanguageFilter]. Samples are * and [language filters](#LanguageFilter). Samples are
* `let sel:DocumentSelector = 'typescript`, or * `let sel:DocumentSelector = 'typescript`, or
* `let sel:DocumentSelector = ['typescript', { language: 'json', pattern: '**\tsconfig.json' }]` * `let sel:DocumentSelector = ['typescript', { language: 'json', pattern: '**\tsconfig.json' }]`
*/ */
@ -1339,7 +1462,8 @@ declare namespace vscode {
onEnterRules?: OnEnterRule[]; onEnterRules?: OnEnterRule[];
/** /**
* Deprecated * **Deprecated**.
* @deprecated
*/ */
__electricCharacterSupport?: { __electricCharacterSupport?: {
brackets: { brackets: {
@ -1357,7 +1481,8 @@ declare namespace vscode {
}; };
/** /**
* Deprecated * **Deprecated**.
* @deprecated
*/ */
__characterPairSupport?: { __characterPairSupport?: {
autoClosingPairs: { autoClosingPairs: {
@ -1664,8 +1789,7 @@ declare namespace vscode {
/** /**
* Represents an extension. * Represents an extension.
* *
* To get an instance of an `Extension` use * To get an instance of an `Extension` use [getExtension](#extensions.getExtension).
* [getExtension](#extensions.getExtension).
*/ */
export interface Extension<T> { export interface Extension<T> {
@ -1690,7 +1814,7 @@ declare namespace vscode {
packageJSON: any; packageJSON: any;
/** /**
* The public API exported by this extension. It is an invalid * The public API exported by this extension. It is an invalid action
* to access this field before this extension has been activated. * to access this field before this extension has been activated.
*/ */
exports: T; exports: T;
@ -1736,7 +1860,10 @@ declare namespace vscode {
extensionPath: string; extensionPath: string;
/** /**
* Get the absolute path of a resource contained inside the extension. * Get the absolute path of a resource contained in the extension.
*
* @param relativePath A relative path to a resource contained in the extension.
* @return The absolute path of the resource.
*/ */
asAbsolutePath(relativePath: string): string; asAbsolutePath(relativePath: string): string;
} }
@ -1959,7 +2086,7 @@ declare namespace vscode {
} }
/** /**
* An event describing a change in the text of a model. * An event describing an individual change in the text of a [document](#TextDocument).
*/ */
export interface TextDocumentContentChangeEvent { export interface TextDocumentContentChangeEvent {
/** /**
@ -1977,7 +2104,7 @@ declare namespace vscode {
} }
/** /**
* An event describing a document change event. * An event describing a transactional [document](#TextDocument) change.
*/ */
export interface TextDocumentChangeEvent { export interface TextDocumentChangeEvent {
@ -2029,7 +2156,7 @@ declare namespace vscode {
export function saveAll(includeUntitled?: boolean): Thenable<boolean>; export function saveAll(includeUntitled?: boolean): Thenable<boolean>;
/** /**
* Apply the provided (workspace edit)[#WorkspaceEdit]. * Apply the provided [workspace edit](#WorkspaceEdit).
*/ */
export function applyEdit(edit: WorkspaceEdit): Thenable<boolean>; export function applyEdit(edit: WorkspaceEdit): Thenable<boolean>;
@ -2058,12 +2185,24 @@ declare namespace vscode {
*/ */
export function openTextDocument(fileName: string): Thenable<TextDocument>; export function openTextDocument(fileName: string): Thenable<TextDocument>;
/**
* An event that is emitted when a [text document](#TextDocument) is created.
*/
export const onDidOpenTextDocument: Event<TextDocument>; export const onDidOpenTextDocument: Event<TextDocument>;
/**
* An event that is emitted when a [text document](#TextDocument) is disposed.
*/
export const onDidCloseTextDocument: Event<TextDocument>; export const onDidCloseTextDocument: Event<TextDocument>;
/**
* An event that is emitted when a [text document](#TextDocument) is changed.
*/
export const onDidChangeTextDocument: Event<TextDocumentChangeEvent>; export const onDidChangeTextDocument: Event<TextDocumentChangeEvent>;
/**
* An event that is emitted when a [text document](#TextDocument) is saved to disk.
*/
export const onDidSaveTextDocument: Event<TextDocument>; export const onDidSaveTextDocument: Event<TextDocument>;
/** /**