@theia/plugin 1.30.0-next.0 → 1.30.0-next.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/theia.d.ts CHANGED
@@ -67,7 +67,7 @@ export module '@theia/plugin' {
67
67
  /**
68
68
  * Represents an plugin.
69
69
  *
70
- * To get an instance of an `Plugin` use [getPlugin](#plugins.getPlugin).
70
+ * To get an instance of an `Plugin` use {@link plugins.getPlugin getPlugin}.
71
71
  */
72
72
  export interface Plugin<T> {
73
73
 
@@ -195,22 +195,30 @@ export module '@theia/plugin' {
195
195
  */
196
196
  iconClass?: string;
197
197
  }
198
+
198
199
  /**
199
- * Command represents a particular invocation of a registered command.
200
+ * Represents a reference to a command. Provides a title which
201
+ * will be used to represent a command in the UI and, optionally,
202
+ * an array of arguments which will be passed to the command handler
203
+ * function when invoked.
200
204
  */
201
205
  export interface Command {
202
206
  /**
203
- * The identifier of the actual command handler.
207
+ * Title of the command, like `save`.
204
208
  */
205
- command: string;
209
+ title: string;
210
+
206
211
  /**
207
- * Title of the command invocation, like "Add local variable 'foo'".
212
+ * The identifier of the actual command handler.
213
+ * @see {@link commands.registerCommand}
208
214
  */
209
- title?: string;
215
+ command: string;
216
+
210
217
  /**
211
- * A tooltip for for command, when represented in the UI.
218
+ * A tooltip for the command, when represented in the UI.
212
219
  */
213
220
  tooltip?: string;
221
+
214
222
  /**
215
223
  * Arguments that the command handler should be
216
224
  * invoked with.
@@ -312,8 +320,8 @@ export module '@theia/plugin' {
312
320
  /**
313
321
  * Create a new position derived from this position.
314
322
  *
315
- * @param line Value that should be used as line value, default is the [existing value](#Position.line)
316
- * @param character Value that should be used as character value, default is the [existing value](#Position.character)
323
+ * @param line Value that should be used as line value, default is the {@link Position.line existing value}
324
+ * @param character Value that should be used as character value, default is the {@link Position.character existing value}
317
325
  * @return A position where line and character are replaced by the given values.
318
326
  */
319
327
  with(line?: number, character?: number): Position;
@@ -539,64 +547,72 @@ export module '@theia/plugin' {
539
547
  }
540
548
 
541
549
  /**
542
- * Represents an event describing the change in text editor selections.
550
+ * Represents an event describing the change in a {@link TextEditor.selections text editor's selections}.
543
551
  */
544
552
  export interface TextEditorSelectionChangeEvent {
545
553
  /**
546
- * The text editor for which the selections have changed.
554
+ * The {@link TextEditor text editor} for which the selections have changed.
547
555
  */
548
- textEditor: TextEditor;
556
+ readonly textEditor: TextEditor;
549
557
  /**
550
- * The new text editor selections
558
+ * The new value for the {@link TextEditor.selections text editor's selections}.
551
559
  */
552
- selections: Selection[];
553
-
554
- kind?: TextEditorSelectionChangeKind;
560
+ readonly selections: readonly Selection[];
561
+ /**
562
+ * The {@link TextEditorSelectionChangeKind change kind} which has triggered this
563
+ * event. Can be `undefined`.
564
+ */
565
+ readonly kind: TextEditorSelectionChangeKind | undefined;
555
566
  }
556
567
 
557
568
  /**
558
- * Represents an event the change in a text editor's options
569
+ * Represents an event describing the change in a {@link TextEditor.options text editor's options}.
559
570
  */
560
571
  export interface TextEditorOptionsChangeEvent {
561
- textEditor: TextEditor;
562
-
563
- options: TextEditorOptions;
572
+ /**
573
+ * The {@link TextEditor text editor} for which the options have changed.
574
+ */
575
+ readonly textEditor: TextEditor;
576
+ /**
577
+ * The new value for the {@link TextEditor.options text editor's options}.
578
+ */
579
+ readonly options: TextEditorOptions;
564
580
  }
565
581
 
566
582
  /**
567
- * Represents an event the change in a text editor's visible ranges
583
+ * Represents an event describing the change in a {@link TextEditor.visibleRanges text editor's visible ranges}.
568
584
  */
569
585
  export interface TextEditorVisibleRangesChangeEvent {
570
586
  /**
571
- * The text editor for which the visible ranges have changes.
587
+ * The {@link TextEditor text editor} for which the visible ranges have changed.
572
588
  */
573
- textEditor: TextEditor;
589
+ readonly textEditor: TextEditor;
574
590
  /**
575
- * The new text editor visible ranges.
591
+ * The new value for the {@link TextEditor.visibleRanges text editor's visible ranges}.
576
592
  */
577
- visibleRanges: Range[];
593
+ readonly visibleRanges: readonly Range[];
578
594
  }
579
595
 
580
596
  /**
581
- * Represents an event describing the change of a text editor's view column.
597
+ * Represents an event describing the change of a {@link TextEditor.viewColumn text editor's view column}.
582
598
  */
583
599
  export interface TextEditorViewColumnChangeEvent {
584
600
  /**
585
- * The text editor for which the options have changed.
601
+ * The {@link TextEditor text editor} for which the view column has changed.
586
602
  */
587
- textEditor: TextEditor;
603
+ readonly textEditor: TextEditor;
588
604
  /**
589
- * The new value for the text editor's view column.
605
+ * The new value for the {@link TextEditor.viewColumn text editor's view column}.
590
606
  */
591
- viewColumn: ViewColumn;
607
+ readonly viewColumn: ViewColumn;
592
608
  }
593
609
 
594
610
  /**
595
611
  * Represents a handle to a set of decorations
596
- * sharing the same [styling options](#DecorationRenderOptions) in a [text editor](#TextEditor).
612
+ * sharing the same {@link DecorationRenderOptions styling options} in a {@link TextEditor text editor}.
597
613
  *
598
614
  * To get an instance of a `TextEditorDecorationType` use
599
- * [createTextEditorDecorationType](#window.createTextEditorDecorationType).
615
+ * {@link window.createTextEditorDecorationType createTextEditorDecorationType}.
600
616
  */
601
617
  export interface TextEditorDecorationType {
602
618
 
@@ -614,7 +630,7 @@ export module '@theia/plugin' {
614
630
  /**
615
631
  * Information about where a symbol is defined.
616
632
  *
617
- * Provides additional metadata over normal [location](#Location) definitions, including the range of
633
+ * Provides additional metadata over normal {@link Location location} definitions, including the range of
618
634
  * the defining symbol
619
635
  */
620
636
  export interface LocationLink {
@@ -647,7 +663,7 @@ export module '@theia/plugin' {
647
663
  }
648
664
 
649
665
  /**
650
- * The definition of a symbol represented as one or many [locations](#Location).
666
+ * The definition of a symbol represented as one or many {@link Location locations}.
651
667
  * For most programming languages there is only one location at which a symbol is
652
668
  * defined.
653
669
  */
@@ -803,7 +819,7 @@ export module '@theia/plugin' {
803
819
  /**
804
820
  * Appends the given string as codeblock using the provided language.
805
821
  * @param value A code snippet.
806
- * @param language An optional [language identifier](#languages.getLanguages).
822
+ * @param language An optional {@link languages.getLanguages language identifier}.
807
823
  */
808
824
  appendCodeblock(value: string, language?: string): MarkdownString;
809
825
  }
@@ -815,7 +831,7 @@ export module '@theia/plugin' {
815
831
  *
816
832
  * @deprecated This type is deprecated, please use [`MarkdownString`](#MarkdownString) instead.
817
833
  */
818
- export type MarkedString = MarkdownString | string | { language: string; value: string }; // keep for compatibility reason
834
+ export type MarkedString = string | { language: string; value: string }; // keep for compatibility reason
819
835
 
820
836
  export interface ThemableDecorationAttachmentRenderOptions {
821
837
  /**
@@ -894,7 +910,7 @@ export module '@theia/plugin' {
894
910
  }
895
911
 
896
912
  /**
897
- * Represents options for a specific decoration in a [decoration set](#TextEditorDecorationType).
913
+ * Represents options for a specific decoration in a {@link TextEditorDecorationType decoration set}.
898
914
  */
899
915
  export interface DecorationOptions {
900
916
 
@@ -906,7 +922,7 @@ export module '@theia/plugin' {
906
922
  /**
907
923
  * A message that should be rendered when hovering over the decoration.
908
924
  */
909
- hoverMessage?: MarkedString | MarkedString[];
925
+ hoverMessage?: MarkdownString | MarkedString | Array<MarkdownString | MarkedString>;
910
926
 
911
927
  /**
912
928
  * Render options applied to the current decoration. For performance reasons, keep the
@@ -916,12 +932,12 @@ export module '@theia/plugin' {
916
932
  }
917
933
 
918
934
  /**
919
- * Represents theme specific rendering styles for a [text editor decoration](#TextEditorDecorationType).
935
+ * Represents theme specific rendering styles for a {@link TextEditorDecorationType text editor decoration}.
920
936
  */
921
937
  export interface ThemableDecorationRenderOptions {
922
938
  /**
923
939
  * Background color of the decoration. Use rgba() and define transparent background colors to play well with other decorations.
924
- * Alternatively a color from the color registry can be [referenced](#ThemeColor).
940
+ * Alternatively a color from the color registry can be {@link ThemeColor referenced}.
925
941
  */
926
942
  backgroundColor?: string | ThemeColor;
927
943
 
@@ -1069,7 +1085,7 @@ export module '@theia/plugin' {
1069
1085
  }
1070
1086
 
1071
1087
  /**
1072
- * Represents different positions for rendering a decoration in an [overview ruler](#DecorationRenderOptions.overviewRulerLane).
1088
+ * Represents different positions for rendering a decoration in an {@link DecorationRenderOptions.overviewRulerLane overview ruler}.
1073
1089
  * The overview ruler supports three lanes.
1074
1090
  */
1075
1091
  export enum OverviewRulerLane {
@@ -1080,7 +1096,7 @@ export module '@theia/plugin' {
1080
1096
  }
1081
1097
 
1082
1098
  /**
1083
- * Represents rendering styles for a [text editor decoration](#TextEditorDecorationType).
1099
+ * Represents rendering styles for a {@link TextEditorDecorationType text editor decoration}.
1084
1100
  */
1085
1101
  export interface DecorationRenderOptions extends ThemableDecorationRenderOptions {
1086
1102
  /**
@@ -1112,7 +1128,7 @@ export module '@theia/plugin' {
1112
1128
  }
1113
1129
 
1114
1130
  /**
1115
- * Represents different [reveal](#TextEditor.revealRange) strategies in a text editor.
1131
+ * Represents different {@link TextEditor.revealRange reveal} strategies in a text editor.
1116
1132
  */
1117
1133
  export enum TextEditorRevealType {
1118
1134
  /**
@@ -1152,13 +1168,13 @@ export module '@theia/plugin' {
1152
1168
  /**
1153
1169
  * The selections in this text editor. The primary selection is always at index 0.
1154
1170
  */
1155
- selections: Selection[];
1171
+ selections: readonly Selection[];
1156
1172
 
1157
1173
  /**
1158
1174
  * The current visible ranges in the editor (vertically).
1159
1175
  * This accounts only for vertical scrolling, and not for horizontal scrolling.
1160
1176
  */
1161
- readonly visibleRanges: Range[];
1177
+ readonly visibleRanges: readonly Range[];
1162
1178
 
1163
1179
  /**
1164
1180
  * Text editor options.
@@ -1167,9 +1183,10 @@ export module '@theia/plugin' {
1167
1183
 
1168
1184
  /**
1169
1185
  * The column in which this editor shows. Will be `undefined` in case this
1170
- * isn't one of the three main editors, e.g an embedded editor.
1186
+ * isn't one of the main editors, e.g. an embedded editor, or when the editor
1187
+ * column is larger than three.
1171
1188
  */
1172
- viewColumn?: ViewColumn;
1189
+ readonly viewColumn: ViewColumn | undefined;
1173
1190
 
1174
1191
  /**
1175
1192
  * Perform an edit on the document associated with this text editor.
@@ -1185,7 +1202,7 @@ export module '@theia/plugin' {
1185
1202
  edit(callback: (editBuilder: TextEditorEdit) => void, options?: { undoStopBefore: boolean; undoStopAfter: boolean; }): Thenable<boolean>;
1186
1203
 
1187
1204
  /**
1188
- * Insert a [snippet](#SnippetString) and put the editor into snippet mode. "Snippet mode"
1205
+ * Insert a {@link SnippetString snippet} and put the editor into snippet mode. "Snippet mode"
1189
1206
  * means the editor adds placeholders and additional cursors so that the user can complete
1190
1207
  * or accept the snippet.
1191
1208
  *
@@ -1199,12 +1216,12 @@ export module '@theia/plugin' {
1199
1216
 
1200
1217
  /**
1201
1218
  * Adds a set of decorations to the text editor. If a set of decorations already exists with
1202
- * the given [decoration type](#TextEditorDecorationType), they will be replaced.
1219
+ * the given {@link TextEditorDecorationType decoration type}, they will be replaced.
1203
1220
  *
1204
- * @see [createTextEditorDecorationType](#window.createTextEditorDecorationType).
1221
+ * @see {@link window.createTextEditorDecorationType createTextEditorDecorationType}.
1205
1222
  *
1206
1223
  * @param decorationType A decoration type.
1207
- * @param rangesOrOptions Either [ranges](#Range) or more detailed [options](#DecorationOptions).
1224
+ * @param rangesOrOptions Either {@link Range ranges} or more detailed {@link DecorationOptions options}.
1208
1225
  */
1209
1226
  setDecorations(decorationType: TextEditorDecorationType, rangesOrOptions: Range[] | DecorationOptions[]): void;
1210
1227
 
@@ -1217,11 +1234,11 @@ export module '@theia/plugin' {
1217
1234
  revealRange(range: Range, revealType?: TextEditorRevealType): void;
1218
1235
 
1219
1236
  /**
1220
- * Shows this text editor. A [column](#ViewColumn) can be provided to control where the editor is being shown. Might change the [active editor](#window.activeTextEditor).
1237
+ * Shows this text editor. A {@link ViewColumn column} can be provided to control where the editor is being shown. Might change the {@link window.activeTextEditor active editor}.
1221
1238
  *
1222
1239
  * @deprecated use [window.showTextDocument](#Window.showTextDocument) instead.
1223
1240
  *
1224
- * @param column A [view column](#ViewColumn) in which this editor should be shown.
1241
+ * @param column A {@link ViewColumn view column} in which this editor should be shown.
1225
1242
  */
1226
1243
  show(column?: ViewColumn): void;
1227
1244
 
@@ -1239,7 +1256,7 @@ export module '@theia/plugin' {
1239
1256
  export interface TextEditorEdit {
1240
1257
  /**
1241
1258
  * Replace a certain text region with a new value.
1242
- * You can use \r\n or \n in `value` and they will be normalized to the current [document](#TextDocument).
1259
+ * You can use \r\n or \n in `value` and they will be normalized to the current {@link TextDocument document}.
1243
1260
  *
1244
1261
  * @param location The range this operation should remove.
1245
1262
  * @param value The new text this operation should insert after removing `location`.
@@ -1248,8 +1265,8 @@ export module '@theia/plugin' {
1248
1265
 
1249
1266
  /**
1250
1267
  * Insert text at a location.
1251
- * You can use \r\n or \n in `value` and they will be normalized to the current [document](#TextDocument).
1252
- * Although the equivalent text edit can be made with [replace](#TextEditorEdit.replace), `insert` will produce a different resulting selection (it will get moved).
1268
+ * You can use \r\n or \n in `value` and they will be normalized to the current {@link TextDocument document}.
1269
+ * Although the equivalent text edit can be made with {@link TextEditorEdit.replace replace}, `insert` will produce a different resulting selection (it will get moved).
1253
1270
  *
1254
1271
  * @param location The position where the new text should be inserted.
1255
1272
  * @param value The new text this operation should insert.
@@ -1266,7 +1283,7 @@ export module '@theia/plugin' {
1266
1283
  /**
1267
1284
  * Set the end of line sequence.
1268
1285
  *
1269
- * @param endOfLine The new end of line for the [document](#TextDocument).
1286
+ * @param endOfLine The new end of line for the {@link TextDocument document}.
1270
1287
  */
1271
1288
  setEndOfLine(endOfLine: EndOfLine): void;
1272
1289
  }
@@ -1274,7 +1291,7 @@ export module '@theia/plugin' {
1274
1291
  /**
1275
1292
  * Represents a line of text, such as a line of source code.
1276
1293
  *
1277
- * TextLine objects are __immutable__. When a [document](#TextDocument) changes,
1294
+ * TextLine objects are __immutable__. When a {@link TextDocument document} changes,
1278
1295
  * previously retrieved lines will not represent the latest state.
1279
1296
  */
1280
1297
  export interface TextLine {
@@ -1312,7 +1329,7 @@ export module '@theia/plugin' {
1312
1329
  }
1313
1330
 
1314
1331
  /**
1315
- * Represents an end of line character sequence in a [document](#TextDocument).
1332
+ * Represents an end of line character sequence in a {@link TextDocument document}.
1316
1333
  */
1317
1334
  export enum EndOfLine {
1318
1335
  /**
@@ -1332,7 +1349,7 @@ export module '@theia/plugin' {
1332
1349
  export class Uri {
1333
1350
 
1334
1351
  /**
1335
- * Create an URI from a file system path. The [scheme](#Uri.scheme)
1352
+ * Create an URI from a file system path. The {@link Uri.scheme scheme}
1336
1353
  * will be `file`.
1337
1354
  *
1338
1355
  * @param path A file system or UNC path.
@@ -1359,7 +1376,7 @@ export module '@theia/plugin' {
1359
1376
  * @param pathSegments One more more path fragments
1360
1377
  * @returns A new uri which path is joined with the given fragments
1361
1378
  */
1362
- static joinPath(uri: URI, ...pathSegments: string[]): URI;
1379
+ static joinPath(uri: Uri, ...pathSegments: string[]): Uri;
1363
1380
 
1364
1381
  /**
1365
1382
  * Create an URI from a string. Will throw if the given value is not
@@ -1457,7 +1474,7 @@ export module '@theia/plugin' {
1457
1474
 
1458
1475
  /**
1459
1476
  * Represents a text document, such as a source file. Text documents have
1460
- * [lines](#TextLine) and knowledge about an underlying resource like a file.
1477
+ * {@link TextLine lines} and knowledge about an underlying resource like a file.
1461
1478
  */
1462
1479
  export interface TextDocument {
1463
1480
  /**
@@ -1466,8 +1483,8 @@ export module '@theia/plugin' {
1466
1483
  * *Note* that most documents use the `file`-scheme, which means they are files on disk. However, **not** all documents are
1467
1484
  * saved on disk and therefore the `scheme` must be checked before trying to access the underlying file or siblings on disk.
1468
1485
  *
1469
- * @see [FileSystemProvider](#FileSystemProvider)
1470
- * @see [TextDocumentContentProvider](#TextDocumentContentProvider)
1486
+ * @see {@link FileSystemProvider FileSystemProvider}
1487
+ * @see {@link TextDocumentContentProvider TextDocumentContentProvider}
1471
1488
  */
1472
1489
  readonly uri: Uri;
1473
1490
 
@@ -1480,7 +1497,7 @@ export module '@theia/plugin' {
1480
1497
  /**
1481
1498
  * Is this document representing an untitled file which has never been saved yet. *Note* that
1482
1499
  * this does not mean the document will be saved to disk, use [`uri.scheme`](#Uri.scheme)
1483
- * to figure out where a document will be [saved](#FileSystemProvider), e.g. `file`, `ftp` etc.
1500
+ * to figure out where a document will be {@link FileSystemProvider saved}, e.g. `file`, `ftp` etc.
1484
1501
  */
1485
1502
  readonly isUntitled: boolean;
1486
1503
 
@@ -1513,10 +1530,10 @@ export module '@theia/plugin' {
1513
1530
  * has been saved. If the file was not dirty or the save failed,
1514
1531
  * will return false.
1515
1532
  */
1516
- save(): Promise<boolean>;
1533
+ save(): Thenable<boolean>;
1517
1534
 
1518
1535
  /**
1519
- * The [end of line](#EndOfLine) sequence that is predominately
1536
+ * The {@link EndOfLine end of line} sequence that is predominately
1520
1537
  * used in this document.
1521
1538
  */
1522
1539
  readonly eol: EndOfLine;
@@ -1532,7 +1549,7 @@ export module '@theia/plugin' {
1532
1549
  * document are not reflected.
1533
1550
  *
1534
1551
  * @param line A line number in [0, lineCount).
1535
- * @return A [line](#TextLine).
1552
+ * @return A {@link TextLine line}.
1536
1553
  */
1537
1554
  lineAt(line: number): TextLine;
1538
1555
 
@@ -1541,18 +1558,18 @@ export module '@theia/plugin' {
1541
1558
  * that the returned object is *not* live and changes to the
1542
1559
  * document are not reflected.
1543
1560
  *
1544
- * The position will be [adjusted](#TextDocument.validatePosition).
1561
+ * The position will be {@link TextDocument.validatePosition adjusted}.
1545
1562
  *
1546
1563
  * @see [TextDocument.lineAt](#TextDocument.lineAt)
1547
1564
  * @param position A position.
1548
- * @return A [line](#TextLine).
1565
+ * @return A {@link TextLine line}.
1549
1566
  */
1550
1567
  lineAt(position: Position): TextLine;
1551
1568
 
1552
1569
  /**
1553
1570
  * Converts the position to a zero-based offset.
1554
1571
  *
1555
- * The position will be [adjusted](#TextDocument.validatePosition).
1572
+ * The position will be {@link TextDocument.validatePosition adjusted}.
1556
1573
  *
1557
1574
  * @param position A position.
1558
1575
  * @return A valid zero-based offset.
@@ -1563,13 +1580,13 @@ export module '@theia/plugin' {
1563
1580
  * Converts a zero-based offset to a position.
1564
1581
  *
1565
1582
  * @param offset A zero-based offset.
1566
- * @return A valid [position](#Position).
1583
+ * @return A valid {@link Position position}.
1567
1584
  */
1568
1585
  positionAt(offset: number): Position;
1569
1586
 
1570
1587
  /**
1571
1588
  * Get the text of this document. A substring can be retrieved by providing
1572
- * a range. The range will be [adjusted](#TextDocument.validateRange).
1589
+ * a range. The range will be {@link TextDocument.validateRange adjusted}.
1573
1590
  *
1574
1591
  * @param range Include only the text included by the range.
1575
1592
  * @return The text inside the provided range or the entire text.
@@ -1579,7 +1596,7 @@ export module '@theia/plugin' {
1579
1596
  /**
1580
1597
  * Get a word-range at the given position. By default words are defined by
1581
1598
  * common separators, like space, -, _, etc. In addition, per language custom
1582
- * [word definitions](#LanguageConfiguration.wordPattern) can be defined. It
1599
+ * {@link LanguageConfiguration.wordPattern word definitions} can be defined. It
1583
1600
  * is also possible to provide a custom regular expression.
1584
1601
  *
1585
1602
  * * *Note 1:* A custom regular expression must not match the empty string and
@@ -1588,7 +1605,7 @@ export module '@theia/plugin' {
1588
1605
  * and in the name of speed regular expressions should not match words with
1589
1606
  * spaces. Use [`TextLine.text`](#TextLine.text) for more complex, non-wordy, scenarios.
1590
1607
  *
1591
- * The position will be [adjusted](#TextDocument.validatePosition).
1608
+ * The position will be {@link TextDocument.validatePosition adjusted}.
1592
1609
  *
1593
1610
  * @param position A position.
1594
1611
  * @param regex Optional regular expression that describes what a word is.
@@ -1636,11 +1653,11 @@ export module '@theia/plugin' {
1636
1653
  }
1637
1654
 
1638
1655
  /**
1639
- * An event that is fired when a [document](#TextDocument) will be saved.
1656
+ * An event that is fired when a {@link TextDocument document} will be saved.
1640
1657
  *
1641
1658
  * To make modifications to the document before it is being saved, call the
1642
1659
  * [`waitUntil`](#TextDocumentWillSaveEvent.waitUntil)-function with a thenable
1643
- * that resolves to an array of [text edits](#TextEdit).
1660
+ * that resolves to an array of {@link TextEdit text edits}.
1644
1661
  */
1645
1662
  export interface TextDocumentWillSaveEvent {
1646
1663
 
@@ -1691,7 +1708,7 @@ export module '@theia/plugin' {
1691
1708
  *
1692
1709
  * To make modifications to the workspace before the files are created,
1693
1710
  * call the [`waitUntil](#FileWillCreateEvent.waitUntil)-function with a
1694
- * thenable that resolves to a [workspace edit](#WorkspaceEdit).
1711
+ * thenable that resolves to a {@link WorkspaceEdit workspace edit}.
1695
1712
  */
1696
1713
  export interface FileWillCreateEvent {
1697
1714
 
@@ -1701,7 +1718,7 @@ export module '@theia/plugin' {
1701
1718
  readonly files: ReadonlyArray<Uri>;
1702
1719
 
1703
1720
  /**
1704
- * Allows to pause the event and to apply a [workspace edit](#WorkspaceEdit).
1721
+ * Allows to pause the event and to apply a {@link WorkspaceEdit workspace edit}.
1705
1722
  *
1706
1723
  * *Note:* This function can only be called during event dispatch and not
1707
1724
  * in an asynchronous manner:
@@ -1746,7 +1763,7 @@ export module '@theia/plugin' {
1746
1763
  *
1747
1764
  * To make modifications to the workspace before the files are deleted,
1748
1765
  * call the [`waitUntil](#FileWillCreateEvent.waitUntil)-function with a
1749
- * thenable that resolves to a [workspace edit](#WorkspaceEdit).
1766
+ * thenable that resolves to a {@link WorkspaceEdit workspace edit}.
1750
1767
  */
1751
1768
  export interface FileWillDeleteEvent {
1752
1769
 
@@ -1756,7 +1773,7 @@ export module '@theia/plugin' {
1756
1773
  readonly files: ReadonlyArray<Uri>;
1757
1774
 
1758
1775
  /**
1759
- * Allows to pause the event and to apply a [workspace edit](#WorkspaceEdit).
1776
+ * Allows to pause the event and to apply a {@link WorkspaceEdit workspace edit}.
1760
1777
  *
1761
1778
  * *Note:* This function can only be called during event dispatch and not
1762
1779
  * in an asynchronous manner:
@@ -1801,7 +1818,7 @@ export module '@theia/plugin' {
1801
1818
  *
1802
1819
  * To make modifications to the workspace before the files are renamed,
1803
1820
  * call the [`waitUntil](#FileWillCreateEvent.waitUntil)-function with a
1804
- * thenable that resolves to a [workspace edit](#WorkspaceEdit).
1821
+ * thenable that resolves to a {@link WorkspaceEdit workspace edit}.
1805
1822
  */
1806
1823
  export interface FileWillRenameEvent {
1807
1824
 
@@ -1811,7 +1828,7 @@ export module '@theia/plugin' {
1811
1828
  readonly files: ReadonlyArray<{ oldUri: Uri, newUri: Uri }>;
1812
1829
 
1813
1830
  /**
1814
- * Allows to pause the event and to apply a [workspace edit](#WorkspaceEdit).
1831
+ * Allows to pause the event and to apply a {@link WorkspaceEdit workspace edit}.
1815
1832
  *
1816
1833
  * *Note:* This function can only be called during event dispatch and not
1817
1834
  * in an asynchronous manner:
@@ -1944,7 +1961,7 @@ export module '@theia/plugin' {
1944
1961
  /**
1945
1962
  * The size in spaces a tab takes. This is used for two purposes:
1946
1963
  * - the rendering width of a tab character;
1947
- * - the number of spaces to insert when [insertSpaces](#TextEditorOptions.insertSpaces) is true.
1964
+ * - the number of spaces to insert when {@link TextEditorOptions.insertSpaces insertSpaces} is true.
1948
1965
  *
1949
1966
  * When getting a text editor's options, this property will always be a number (resolved).
1950
1967
  * When setting a text editor's options, this property is optional and it can be a number or `"auto"`.
@@ -1952,7 +1969,7 @@ export module '@theia/plugin' {
1952
1969
  tabSize?: number | string;
1953
1970
 
1954
1971
  /**
1955
- * When pressing Tab insert [n](#TextEditorOptions.tabSize) spaces.
1972
+ * When pressing Tab insert {@link TextEditorOptions.tabSize n} spaces.
1956
1973
  * When getting a text editor's options, this property will always be a boolean (resolved).
1957
1974
  * When setting a text editor's options, this property is optional and it can be a boolean or `"auto"`.
1958
1975
  */
@@ -1981,13 +1998,13 @@ export module '@theia/plugin' {
1981
1998
  export enum ViewColumn {
1982
1999
  /**
1983
2000
  * A *symbolic* editor column representing the currently active column. This value
1984
- * can be used when opening editors, but the *resolved* [viewColumn](#TextEditor.viewColumn)-value
2001
+ * can be used when opening editors, but the *resolved* {@link TextEditor.viewColumn viewColumn}-value
1985
2002
  * of editors will always be `One`, `Two`, `Three`,... or `undefined` but never `Active`.
1986
2003
  */
1987
2004
  Active = -1,
1988
2005
  /**
1989
2006
  * A *symbolic* editor column representing the column to the side of the active one. This value
1990
- * can be used when opening editors, but the *resolved* [viewColumn](#TextEditor.viewColumn)-value
2007
+ * can be used when opening editors, but the *resolved* {@link TextEditor.viewColumn viewColumn}-value
1991
2008
  * of editors will always be `One`, `Two`, `Three`,... or `undefined` but never `Beside`.
1992
2009
  */
1993
2010
  Beside = -2,
@@ -2045,7 +2062,7 @@ export module '@theia/plugin' {
2045
2062
  }
2046
2063
 
2047
2064
  /**
2048
- * An event emitter used to create and fire an [event](#Event) or to subscribe to.
2065
+ * An event emitter used to create and fire an {@link Event event} or to subscribe to.
2049
2066
  */
2050
2067
  export class EventEmitter<T> {
2051
2068
  /**
@@ -2057,7 +2074,7 @@ export module '@theia/plugin' {
2057
2074
  * Fire the event and pass data object
2058
2075
  * @param data
2059
2076
  */
2060
- fire(data?: T): void;
2077
+ fire(data: T): void;
2061
2078
 
2062
2079
  /**
2063
2080
  * Dispose this object
@@ -2070,7 +2087,7 @@ export module '@theia/plugin' {
2070
2087
  * on disk.
2071
2088
  *
2072
2089
  * To get an instance of a `FileSystemWatcher` use
2073
- * [createFileSystemWatcher](#workspace.createFileSystemWatcher).
2090
+ * {@link workspace.createFileSystemWatcher createFileSystemWatcher}.
2074
2091
  */
2075
2092
  export interface FileSystemWatcher extends Disposable {
2076
2093
 
@@ -2127,7 +2144,7 @@ export module '@theia/plugin' {
2127
2144
  }
2128
2145
 
2129
2146
  /**
2130
- * A cancellation token source create and manage a [cancellation token](#CancellationToken)
2147
+ * A cancellation token source create and manage a {@link CancellationToken cancellation token}
2131
2148
  */
2132
2149
  export class CancellationTokenSource {
2133
2150
  token: CancellationToken;
@@ -2139,9 +2156,9 @@ export module '@theia/plugin' {
2139
2156
  * A text document content provider allows to add readonly documents
2140
2157
  * to the editor, such as source from a dll or generated html from md.
2141
2158
  *
2142
- * Content providers are [registered](#workspace.registerTextDocumentContentProvider)
2159
+ * Content providers are {@link workspace.registerTextDocumentContentProvider registered}
2143
2160
  * for a [uri-scheme](#Uri.scheme). When a uri with that scheme is to
2144
- * be [loaded](#workspace.openTextDocument) the content provider is
2161
+ * be {@link workspace.openTextDocument loaded} the content provider is
2145
2162
  * asked.
2146
2163
  */
2147
2164
  export interface TextDocumentContentProvider {
@@ -2155,10 +2172,10 @@ export module '@theia/plugin' {
2155
2172
  * Provide textual content for a given uri.
2156
2173
  *
2157
2174
  * The editor will use the returned string-content to create a readonly
2158
- * [document](#TextDocument). Resources allocated should be released when
2159
- * the corresponding document has been [closed](#workspace.onDidCloseTextDocument).
2175
+ * {@link TextDocument document}. Resources allocated should be released when
2176
+ * the corresponding document has been {@link workspace.onDidCloseTextDocument closed}.
2160
2177
  *
2161
- * @param uri An uri which scheme matches the scheme this provider was [registered](#workspace.registerTextDocumentContentProvider) for.
2178
+ * @param uri An uri which scheme matches the scheme this provider was {@link workspace.registerTextDocumentContentProvider registered} for.
2162
2179
  * @param token A cancellation token.
2163
2180
  * @return A string or a thenable that resolves to such.
2164
2181
  */
@@ -2209,9 +2226,9 @@ export module '@theia/plugin' {
2209
2226
  }
2210
2227
 
2211
2228
  /**
2212
- * A concrete [QuickInput](#QuickInput) to let the user pick an item from a
2229
+ * A concrete {@link QuickInput QuickInput} to let the user pick an item from a
2213
2230
  * list of items of type T. The items can be filtered through a filter text field and
2214
- * there is an option [canSelectMany](#QuickPick.canSelectMany) to allow for
2231
+ * there is an option {@link QuickPick.canSelectMany canSelectMany} to allow for
2215
2232
  * selecting multiple items.
2216
2233
  *
2217
2234
  * Note that in many cases the more convenient [window.showQuickPick](#window.showQuickPick)
@@ -2253,7 +2270,7 @@ export module '@theia/plugin' {
2253
2270
  /**
2254
2271
  * Items to pick from.
2255
2272
  */
2256
- items: ReadonlyArray<T>;
2273
+ items: readonly T[];
2257
2274
 
2258
2275
  /**
2259
2276
  * If multiple items can be selected at the same time. Defaults to false.
@@ -2278,22 +2295,22 @@ export module '@theia/plugin' {
2278
2295
  /**
2279
2296
  * Active items. This can be read and updated by the extension.
2280
2297
  */
2281
- activeItems: ReadonlyArray<T>;
2298
+ activeItems: readonly T[];
2282
2299
 
2283
2300
  /**
2284
2301
  * An event signaling when the active items have changed.
2285
2302
  */
2286
- readonly onDidChangeActive: Event<T[]>;
2303
+ readonly onDidChangeActive: Event<readonly T[]>;
2287
2304
 
2288
2305
  /**
2289
2306
  * Selected items. This can be read and updated by the extension.
2290
2307
  */
2291
- selectedItems: ReadonlyArray<T>;
2308
+ selectedItems: readonly T[];
2292
2309
 
2293
2310
  /**
2294
2311
  * An event signaling when the selected items have changed.
2295
2312
  */
2296
- readonly onDidChangeSelection: Event<T[]>;
2313
+ readonly onDidChangeSelection: Event<readonly T[]>;
2297
2314
  }
2298
2315
 
2299
2316
  /**
@@ -2338,7 +2355,7 @@ export module '@theia/plugin' {
2338
2355
  }
2339
2356
 
2340
2357
  /**
2341
- * Options to configure the behaviour of the [workspace folder](#WorkspaceFolder) pick UI.
2358
+ * Options to configure the behaviour of the {@link WorkspaceFolder workspace folder} pick UI.
2342
2359
  */
2343
2360
  export interface WorkspaceFolderPickOptions {
2344
2361
 
@@ -2430,7 +2447,8 @@ export module '@theia/plugin' {
2430
2447
  * @return Either a human-readable string which is presented as an error message or an {@link InputBoxValidationMessage}
2431
2448
  * which can provide a specific message severity. Return `undefined`, `null`, or the empty string when 'value' is valid.
2432
2449
  */
2433
- validateInput?: (input: string) => Promise<string | InputBoxValidationMessage | null | undefined> | undefined;
2450
+ validateInput?(value: string): string | InputBoxValidationMessage | undefined | null |
2451
+ Thenable<string | InputBoxValidationMessage | undefined | null>;
2434
2452
 
2435
2453
  /**
2436
2454
  * An optional function that will be called on Enter key.
@@ -2442,13 +2460,13 @@ export module '@theia/plugin' {
2442
2460
  * Namespace for dealing with commands. In short, a command is a function with a
2443
2461
  * unique identifier. The function is sometimes also called _command handler_.
2444
2462
  *
2445
- * Commands can be added using the [registerCommand](#commands.registerCommand) and
2446
- * [registerTextEditorCommand](#commands.registerTextEditorCommand) functions.
2463
+ * Commands can be added using the {@link commands.registerCommand registerCommand} and
2464
+ * {@link commands.registerTextEditorCommand registerTextEditorCommand} functions.
2447
2465
  * Registration can be split in two step: first register command without handler,
2448
2466
  * second register handler by command id.
2449
2467
  *
2450
2468
  * Any contributed command are available to any plugin, command can be invoked
2451
- * by [executeCommand](#commands.executeCommand) function.
2469
+ * by {@link commands.executeCommand executeCommand} function.
2452
2470
  *
2453
2471
  * Simple example that register command:
2454
2472
  * ```javascript
@@ -2485,13 +2503,13 @@ export module '@theia/plugin' {
2485
2503
  * Registers a text editor command that can be invoked via a keyboard shortcut,
2486
2504
  * a menu item, an action, or directly.
2487
2505
  *
2488
- * Text editor commands are different from ordinary [commands](#commands.registerCommand) as
2506
+ * Text editor commands are different from ordinary {@link commands.registerCommand commands} as
2489
2507
  * they only execute when there is an active editor when the command is called. Also, the
2490
2508
  * command handler of an editor command has access to the active editor and to an
2491
- * [edit](#TextEditorEdit)-builder.
2509
+ * {@link TextEditorEdit edit}-builder.
2492
2510
  *
2493
2511
  * @param command A unique identifier for the command.
2494
- * @param callback A command handler function with access to an [editor](#TextEditor) and an [edit](#TextEditorEdit).
2512
+ * @param callback A command handler function with access to an {@link TextEditor editor} and an {@link TextEditorEdit edit}.
2495
2513
  * @param thisArg The `this` context used when invoking the handler function.
2496
2514
  * @return Disposable which unregisters this command on disposal.
2497
2515
  */
@@ -2685,7 +2703,7 @@ export module '@theia/plugin' {
2685
2703
  }
2686
2704
 
2687
2705
  /**
2688
- * A reference to a named icon. Currently only [File](#ThemeIcon.File) and [Folder](#ThemeIcon.Folder) are supported.
2706
+ * A reference to a named icon. Currently only {@link ThemeIcon.File File} and {@link ThemeIcon.Folder Folder} are supported.
2689
2707
  * Using a theme icon is preferred over a custom icon as it gives theme authors the possibility to change the icons.
2690
2708
  */
2691
2709
  export class ThemeIcon {
@@ -2714,7 +2732,7 @@ export module '@theia/plugin' {
2714
2732
  * @param id id of the icon. The available icons are listed in https://code.visualstudio.com/api/references/icons-in-labels#icon-listing.
2715
2733
  * @param color optional `ThemeColor` for the icon. The color is currently only used in {@link TreeItem}.
2716
2734
  */
2717
- private constructor(public id: string, public color?: ThemeColor);
2735
+ private constructor(id: string, color?: ThemeColor);
2718
2736
  }
2719
2737
 
2720
2738
  /**
@@ -2767,7 +2785,7 @@ export module '@theia/plugin' {
2767
2785
  /**
2768
2786
  * Reveal this channel in the UI.
2769
2787
  *
2770
- * @param preserveFocus When 'true' the channel will not take focus.
2788
+ * @param preserveFocus When `true` the channel will not take focus.
2771
2789
  */
2772
2790
  show(preserveFocus?: boolean): void;
2773
2791
 
@@ -2910,6 +2928,12 @@ export module '@theia/plugin' {
2910
2928
  */
2911
2929
  readonly exitStatus: TerminalExitStatus | undefined;
2912
2930
 
2931
+ /**
2932
+ * The object used to initialize the terminal, this is useful for example to detecting the shell type of when the terminal was not launched by this extension or for
2933
+ * detecting what folder the shell was launched in.
2934
+ */
2935
+ readonly creationOptions: Readonly<TerminalOptions | ExtensionTerminalOptions>
2936
+
2913
2937
  /**
2914
2938
  * Send text to the terminal.
2915
2939
  * @param text - text content.
@@ -2956,7 +2980,7 @@ export module '@theia/plugin' {
2956
2980
  /**
2957
2981
  * Current working directory.
2958
2982
  */
2959
- cwd?: string | URI;
2983
+ cwd?: string | Uri;
2960
2984
 
2961
2985
  /**
2962
2986
  * Environment variables for terminal in format key - value.
@@ -3007,7 +3031,7 @@ export module '@theia/plugin' {
3007
3031
 
3008
3032
  /**
3009
3033
  * Options a virtual process terminal.
3010
- * @deprecated since 1.23.0 - Use [ExtensionTerminalOptions](#ExtensionTerminalOptions) instead.
3034
+ * @deprecated since 1.23.0 - Use {@link ExtensionTerminalOptions ExtensionTerminalOptions} instead.
3011
3035
  */
3012
3036
  export interface PseudoTerminalOptions {
3013
3037
  /**
@@ -3016,7 +3040,7 @@ export module '@theia/plugin' {
3016
3040
  name: string;
3017
3041
 
3018
3042
  /**
3019
- * An implementation of [Pseudoterminal](#Pseudoterminal) where an extension can
3043
+ * An implementation of {@link Pseudoterminal Pseudoterminal} where an extension can
3020
3044
  * control it.
3021
3045
  */
3022
3046
  pty: Pseudoterminal;
@@ -3032,7 +3056,7 @@ export module '@theia/plugin' {
3032
3056
  name: string;
3033
3057
 
3034
3058
  /**
3035
- * An implementation of [Pseudoterminal](#Pseudoterminal) where an extension can
3059
+ * An implementation of {@link Pseudoterminal Pseudoterminal} where an extension can
3036
3060
  * control it.
3037
3061
  */
3038
3062
  pty: Pseudoterminal;
@@ -3191,7 +3215,7 @@ export module '@theia/plugin' {
3191
3215
  *
3192
3216
  * *Note* that this event should be used to propagate information about children.
3193
3217
  *
3194
- * @see [EventEmitter](#EventEmitter)
3218
+ * @see {@link EventEmitter EventEmitter}
3195
3219
  */
3196
3220
  onDidChangeFileDecorations?: Event<undefined | Uri | Uri[]>;
3197
3221
 
@@ -3200,7 +3224,7 @@ export module '@theia/plugin' {
3200
3224
  *
3201
3225
  * *Note* that this function is only called when a file gets rendered in the UI.
3202
3226
  * This means a decoration from a descendent that propagates upwards must be signaled
3203
- * to the editor via the [onDidChangeFileDecorations](#FileDecorationProvider.onDidChangeFileDecorations)-event.
3227
+ * to the editor via the {@link FileDecorationProvider.onDidChangeFileDecorations onDidChangeFileDecorations}-event.
3204
3228
  *
3205
3229
  * @param uri The uri of the file to provide a decoration for.
3206
3230
  * @param token A cancellation token.
@@ -3358,13 +3382,13 @@ export module '@theia/plugin' {
3358
3382
 
3359
3383
  /**
3360
3384
  * A memento object that stores state in the context
3361
- * of the currently opened [workspace](#workspace.workspaceFolders).
3385
+ * of the currently opened {@link workspace.workspaceFolders workspace}.
3362
3386
  */
3363
3387
  workspaceState: Memento;
3364
3388
 
3365
3389
  /**
3366
3390
  * A memento object that stores state independent
3367
- * of the current opened [workspace](#workspace.workspaceFolders).
3391
+ * of the current opened {@link workspace.workspaceFolders workspace}.
3368
3392
  */
3369
3393
  globalState: Memento & {
3370
3394
  /**
@@ -3420,7 +3444,7 @@ export module '@theia/plugin' {
3420
3444
  * Use [`workspaceState`](#PluginContext.workspaceState) or
3421
3445
  * [`globalState`](#PluginContext.globalState) to store key value data.
3422
3446
  *
3423
- * @deprecated Use [storageUri](#PluginContext.storageUri) instead.
3447
+ * @deprecated Use {@link PluginContext.storageUri storageUri} instead.
3424
3448
  */
3425
3449
  storagePath: string | undefined;
3426
3450
 
@@ -3445,7 +3469,7 @@ export module '@theia/plugin' {
3445
3469
  *
3446
3470
  * Use [`globalState`](#PluginContext.globalState) to store key value data.
3447
3471
  *
3448
- * @deprecated Use [globalStorageUri](#PluginContext.globalStorageUri) instead.
3472
+ * @deprecated Use {@link PluginContext.globalStorageUri globalStorageUri} instead.
3449
3473
  */
3450
3474
  readonly globalStoragePath: string;
3451
3475
 
@@ -3932,14 +3956,14 @@ export module '@theia/plugin' {
3932
3956
  }
3933
3957
 
3934
3958
  /**
3935
- * A uri handler is responsible for handling system-wide [uris](#Uri).
3959
+ * A uri handler is responsible for handling system-wide {@link Uri uris}.
3936
3960
  *
3937
3961
  * @see [window.registerUriHandler](#window.registerUriHandler).
3938
3962
  */
3939
3963
  export interface UriHandler {
3940
3964
 
3941
3965
  /**
3942
- * Handle the provided system-wide [uri](#Uri).
3966
+ * Handle the provided system-wide {@link Uri uri}.
3943
3967
  *
3944
3968
  * @see [window.registerUriHandler](#window.registerUriHandler).
3945
3969
  */
@@ -4001,7 +4025,7 @@ export module '@theia/plugin' {
4001
4025
  /**
4002
4026
  * Event triggered by extensions to signal that an edit has occurred on an [`CustomDocument`](#CustomDocument).
4003
4027
  *
4004
- * @see [`CustomDocumentProvider.onDidChangeCustomDocument`](#CustomDocumentProvider.onDidChangeCustomDocument).
4028
+ * @see {@link CustomEditorProvider.onDidChangeCustomDocument}.
4005
4029
  */
4006
4030
  interface CustomDocumentEditEvent<T extends CustomDocument = CustomDocument> {
4007
4031
 
@@ -4040,7 +4064,7 @@ export module '@theia/plugin' {
4040
4064
  * Event triggered by extensions to signal to Theia that the content of a [`CustomDocument`](#CustomDocument)
4041
4065
  * has changed.
4042
4066
  *
4043
- * @see [`CustomDocumentProvider.onDidChangeCustomDocument`](#CustomDocumentProvider.onDidChangeCustomDocument).
4067
+ * @see {@link CustomEditorProvider.onDidChangeCustomDocument}.
4044
4068
  */
4045
4069
  interface CustomDocumentContentChangeEvent<T extends CustomDocument = CustomDocument> {
4046
4070
  /**
@@ -4186,7 +4210,7 @@ export module '@theia/plugin' {
4186
4210
  *
4187
4211
  * An editor should only ever fire `CustomDocumentEditEvent` events, or only ever fire `CustomDocumentContentChangeEvent` events.
4188
4212
  */
4189
- readonly onDidChangeCustomDocument: Event<CustomDocumentContentChangeEvent<T>> | Event<CustomDocumentEditEvent<T>>;
4213
+ readonly onDidChangeCustomDocument: Event<CustomDocumentEditEvent<T>> | Event<CustomDocumentContentChangeEvent<T>>;
4190
4214
 
4191
4215
  /**
4192
4216
  * Save a custom document.
@@ -4403,83 +4427,83 @@ export module '@theia/plugin' {
4403
4427
  /**
4404
4428
  * The currently opened terminals or an empty array.
4405
4429
  */
4406
- export let terminals: ReadonlyArray<Terminal>;
4430
+ export let terminals: readonly Terminal[];
4407
4431
 
4408
4432
  /**
4409
4433
  * The currently visible editors or an empty array.
4410
4434
  */
4411
- export let visibleTextEditors: TextEditor[];
4435
+ export let visibleTextEditors: readonly TextEditor[];
4412
4436
 
4413
4437
  /**
4414
- * An [event](#Event) which fires when the [active terminal](#window.activeTerminal) has changed.
4438
+ * An {@link Event event} which fires when the {@link window.activeTerminal active terminal} has changed.
4415
4439
  * *Note* that the event also fires when the active terminal changes to `undefined`.
4416
4440
  */
4417
4441
  export const onDidChangeActiveTerminal: Event<Terminal | undefined>;
4418
4442
 
4419
4443
  /**
4420
- * An [event](#Event) which fires when the [active editor](#window.activeTextEditor)
4444
+ * An {@link Event event} which fires when the {@link window.activeTextEditor active editor}
4421
4445
  * has changed. *Note* that the event also fires when the active editor changes
4422
4446
  * to `undefined`.
4423
4447
  */
4424
4448
  export const onDidChangeActiveTextEditor: Event<TextEditor | undefined>;
4425
4449
 
4426
4450
  /**
4427
- * An [event](#Event) which fires when the array of [visible editors](#window.visibleTextEditors)
4451
+ * An {@link Event event} which fires when the array of {@link window.visibleTextEditors visible editors}
4428
4452
  * has changed.
4429
4453
  */
4430
- export const onDidChangeVisibleTextEditors: Event<TextEditor[]>;
4454
+ export const onDidChangeVisibleTextEditors: Event<readonly TextEditor[]>;
4431
4455
 
4432
4456
  /**
4433
- * An [event](#Event) which fires when the selection in an editor has changed.
4457
+ * An {@link Event event} which fires when the selection in an editor has changed.
4434
4458
  */
4435
4459
  export const onDidChangeTextEditorSelection: Event<TextEditorSelectionChangeEvent>;
4436
4460
 
4437
4461
  /**
4438
- * An [event](#Event) which fires when the selection in an editor has changed.
4462
+ * An {@link Event event} which fires when the selection in an editor has changed.
4439
4463
  */
4440
4464
  export const onDidChangeTextEditorVisibleRanges: Event<TextEditorVisibleRangesChangeEvent>;
4441
4465
 
4442
4466
  /**
4443
- * An [event](#Event) which fires when the options of an editor have changed.
4467
+ * An {@link Event event} which fires when the options of an editor have changed.
4444
4468
  */
4445
4469
  export const onDidChangeTextEditorOptions: Event<TextEditorOptionsChangeEvent>;
4446
4470
 
4447
4471
  /**
4448
- * An [event](#Event) which fires when the view column of an editor has changed.
4472
+ * An {@link Event event} which fires when the view column of an editor has changed.
4449
4473
  */
4450
4474
  export const onDidChangeTextEditorViewColumn: Event<TextEditorViewColumnChangeEvent>;
4451
4475
 
4452
4476
  /**
4453
- * Show the given document in a text editor. A [column](#ViewColumn) can be provided
4454
- * to control where the editor is being shown. Might change the [active editor](#window.activeTextEditor).
4477
+ * Show the given document in a text editor. A {@link ViewColumn column} can be provided
4478
+ * to control where the editor is being shown. Might change the {@link window.activeTextEditor active editor}.
4455
4479
  *
4456
4480
  * @param document A text document to be shown.
4457
- * @param column A view column in which the [editor](#TextEditor) should be shown. The default is the [active](#ViewColumn.Active), other values
4458
- * are adjusted to be `Min(column, columnCount + 1)`, the [active](#ViewColumn.Active)-column is not adjusted. Use [`ViewColumn.Beside`](#ViewColumn.Beside)
4481
+ * @param column A view column in which the {@link TextEditor editor} should be shown. The default is the {@link ViewColumn.Active active}, other values
4482
+ * are adjusted to be `Min(column, columnCount + 1)`, the {@link ViewColumn.Active active}-column is not adjusted. Use [`ViewColumn.Beside`](#ViewColumn.Beside)
4459
4483
  * to open the editor to the side of the currently active one.
4460
4484
  * @param preserveFocus When `true` the editor will not take focus.
4461
- * @return A promise that resolves to an [editor](#TextEditor).
4485
+ * @return A promise that resolves to an {@link TextEditor editor}.
4462
4486
  */
4463
4487
  export function showTextDocument(document: TextDocument, column?: ViewColumn, preserveFocus?: boolean): Thenable<TextEditor>;
4464
4488
 
4465
4489
  /**
4466
- * Show the given document in a text editor. [Options](#TextDocumentShowOptions) can be provided
4467
- * to control options of the editor is being shown. Might change the [active editor](#window.activeTextEditor).
4490
+ * Show the given document in a text editor. {@link TextDocumentShowOptions Options} can be provided
4491
+ * to control options of the editor is being shown. Might change the {@link window.activeTextEditor active editor}.
4468
4492
  *
4469
4493
  * @param document A text document to be shown.
4470
- * @param options [Editor options](#TextDocumentShowOptions) to configure the behavior of showing the [editor](#TextEditor).
4471
- * @return A promise that resolves to an [editor](#TextEditor).
4494
+ * @param options {@link TextDocumentShowOptions Editor options} to configure the behavior of showing the {@link TextEditor editor}.
4495
+ * @return A promise that resolves to an {@link TextEditor editor}.
4472
4496
  */
4473
4497
  export function showTextDocument(document: TextDocument, options?: TextDocumentShowOptions): Thenable<TextEditor>;
4474
4498
 
4475
4499
  /**
4476
4500
  * A short-hand for `openTextDocument(uri).then(document => showTextDocument(document, options))`.
4477
4501
  *
4478
- * @see [openTextDocument](#openTextDocument)
4502
+ * @see {@link openTextDocument openTextDocument}
4479
4503
  *
4480
4504
  * @param uri A resource identifier.
4481
- * @param options [Editor options](#TextDocumentShowOptions) to configure the behavior of showing the [editor](#TextEditor).
4482
- * @return A promise that resolves to an [editor](#TextEditor).
4505
+ * @param options {@link TextDocumentShowOptions Editor options} to configure the behavior of showing the {@link TextEditor editor}.
4506
+ * @return A promise that resolves to an {@link TextEditor editor}.
4483
4507
  */
4484
4508
  export function showTextDocument(uri: Uri, options?: TextDocumentShowOptions): Thenable<TextEditor>;
4485
4509
 
@@ -4524,19 +4548,19 @@ export module '@theia/plugin' {
4524
4548
  export function showQuickPick<T extends QuickPickItem>(items: readonly T[] | Thenable<readonly T[]>, options: QuickPickOptions & { canPickMany: true }, token?: CancellationToken): Thenable<T[] | undefined>;
4525
4549
 
4526
4550
  /**
4527
- * Creates a [QuickPick](#QuickPick) to let the user pick an item from a list
4551
+ * Creates a {@link QuickPick QuickPick} to let the user pick an item from a list
4528
4552
  * of items of type T.
4529
4553
  *
4530
4554
  * Note that in many cases the more convenient [window.showQuickPick](#window.showQuickPick)
4531
4555
  * is easier to use. [window.createQuickPick](#window.createQuickPick) should be used
4532
4556
  * when [window.showQuickPick](#window.showQuickPick) does not offer the required flexibility.
4533
4557
  *
4534
- * @return A new [QuickPick](#QuickPick).
4558
+ * @return A new {@link QuickPick QuickPick}.
4535
4559
  */
4536
4560
  export function createQuickPick<T extends QuickPickItem>(): QuickPick<T>;
4537
4561
 
4538
4562
  /**
4539
- * Shows a selection list of [workspace folders](#workspace.workspaceFolders) to pick from.
4563
+ * Shows a selection list of {@link workspace.workspaceFolders workspace folders} to pick from.
4540
4564
  * Returns `undefined` if no folder is open.
4541
4565
  *
4542
4566
  * @param options Configures the behavior of the workspace folder list.
@@ -4715,7 +4739,7 @@ export module '@theia/plugin' {
4715
4739
  * Registers a webview panel serializer.
4716
4740
  *
4717
4741
  * Plugins that support reviving should have an `"onWebviewPanel:viewType"` activation event and
4718
- * make sure that [registerWebviewPanelSerializer](#registerWebviewPanelSerializer) is called during activation.
4742
+ * make sure that {@link registerWebviewPanelSerializer registerWebviewPanelSerializer} is called during activation.
4719
4743
  *
4720
4744
  * Only a single serializer may be registered at a time for a given `viewType`.
4721
4745
  *
@@ -4854,7 +4878,7 @@ export module '@theia/plugin' {
4854
4878
  export function createStatusBarItem(id: string, alignment?: StatusBarAlignment, priority?: number): StatusBarItem;
4855
4879
 
4856
4880
  /**
4857
- * Create a new [output channel](#OutputChannel) with the given name.
4881
+ * Create a new {@link OutputChannel output channel} with the given name.
4858
4882
  *
4859
4883
  * @param name String which will be used to represent the channel in the UI.
4860
4884
  */
@@ -4874,7 +4898,7 @@ export module '@theia/plugin' {
4874
4898
  export const onDidCloseTerminal: Event<Terminal>;
4875
4899
 
4876
4900
  /**
4877
- * An [event](#Event) which fires when a terminal has been created,
4901
+ * An {@link Event event} which fires when a terminal has been created,
4878
4902
  * either through the createTerminal API or commands.
4879
4903
  */
4880
4904
  export const onDidOpenTerminal: Event<Terminal>;
@@ -4902,26 +4926,26 @@ export module '@theia/plugin' {
4902
4926
  export function createTerminal(options: ExtensionTerminalOptions): Terminal;
4903
4927
 
4904
4928
  /**
4905
- * Register a [TreeDataProvider](#TreeDataProvider) for the view contributed using the extension point `views`.
4906
- * This will allow you to contribute data to the [TreeView](#TreeView) and update if the data changes.
4929
+ * Register a {@link TreeDataProvider TreeDataProvider} for the view contributed using the extension point `views`.
4930
+ * This will allow you to contribute data to the {@link TreeView TreeView} and update if the data changes.
4907
4931
  *
4908
- * **Note:** To get access to the [TreeView](#TreeView) and perform operations on it, use [createTreeView](#window.createTreeView).
4932
+ * **Note:** To get access to the {@link TreeView TreeView} and perform operations on it, use {@link window.createTreeView createTreeView}.
4909
4933
  *
4910
4934
  * @param viewId Id of the view contributed using the extension point `views`.
4911
- * @param treeDataProvider A [TreeDataProvider](#TreeDataProvider) that provides tree data for the view
4935
+ * @param treeDataProvider A {@link TreeDataProvider TreeDataProvider} that provides tree data for the view
4912
4936
  */
4913
4937
  export function registerTreeDataProvider<T>(viewId: string, treeDataProvider: TreeDataProvider<T>): Disposable;
4914
4938
 
4915
4939
  /**
4916
- * Create a [TreeView](#TreeView) for the view contributed using the extension point `views`.
4940
+ * Create a {@link TreeView TreeView} for the view contributed using the extension point `views`.
4917
4941
  * @param viewId Id of the view contributed using the extension point `views`.
4918
- * @param options Options object to provide [TreeDataProvider](#TreeDataProvider) for the view.
4919
- * @returns a [TreeView](#TreeView).
4942
+ * @param options Options object to provide {@link TreeDataProvider TreeDataProvider} for the view.
4943
+ * @returns a {@link TreeView TreeView}.
4920
4944
  */
4921
4945
  export function createTreeView<T>(viewId: string, options: TreeViewOptions<T>): TreeView<T>;
4922
4946
 
4923
4947
  /**
4924
- * Registers a [uri handler](#UriHandler) capable of handling system-wide [uris](#Uri).
4948
+ * Registers a {@link UriHandler uri handler} capable of handling system-wide {@link Uri uris}.
4925
4949
  * In case there are multiple windows open, the topmost window will handle the uri.
4926
4950
  * A uri handler is scoped to the extension it is contributed from; it will only
4927
4951
  * be able to handle uris which are directed to the extension itself. A uri must respect
@@ -4949,7 +4973,7 @@ export module '@theia/plugin' {
4949
4973
  * progress should show (and other details) is defined via the passed [`ProgressOptions`](#ProgressOptions).
4950
4974
  *
4951
4975
  * @param task A callback returning a promise. Progress state can be reported with
4952
- * the provided [progress](#Progress)-object.
4976
+ * the provided {@link Progress progress}-object.
4953
4977
  *
4954
4978
  * To report discrete progress, use `increment` to indicate how much work has been completed. Each call with
4955
4979
  * a `increment` value will be summed up and reflected as overall progress until 100% is reached (a value of
@@ -4965,13 +4989,13 @@ export module '@theia/plugin' {
4965
4989
  export function withProgress<R>(options: ProgressOptions, task: (progress: Progress<{ message?: string; increment?: number }>, token: CancellationToken) => Thenable<R>): Thenable<R>;
4966
4990
 
4967
4991
  /**
4968
- * Creates a [InputBox](#InputBox) to let the user enter some text input.
4992
+ * Creates a {@link InputBox InputBox} to let the user enter some text input.
4969
4993
  *
4970
4994
  * Note that in many cases the more convenient [window.showInputBox](#window.showInputBox)
4971
4995
  * is easier to use. [window.createInputBox](#window.createInputBox) should be used
4972
4996
  * when [window.showInputBox](#window.showInputBox) does not offer the required flexibility.
4973
4997
  *
4974
- * @return A new [InputBox](#InputBox).
4998
+ * @return A new {@link InputBox InputBox}.
4975
4999
  */
4976
5000
  export function createInputBox(): InputBox;
4977
5001
 
@@ -4985,8 +5009,8 @@ export module '@theia/plugin' {
4985
5009
  /**
4986
5010
  * Register a file decoration provider.
4987
5011
  *
4988
- * @param provider A [FileDecorationProvider](#FileDecorationProvider).
4989
- * @return A [disposable](#Disposable) that unregisters the provider.
5012
+ * @param provider A {@link FileDecorationProvider FileDecorationProvider}.
5013
+ * @return A {@link Disposable disposable} that unregisters the provider.
4990
5014
  */
4991
5015
  export function registerFileDecorationProvider(provider: FileDecorationProvider): Disposable;
4992
5016
 
@@ -4997,7 +5021,7 @@ export module '@theia/plugin' {
4997
5021
  export let activeColorTheme: ColorTheme;
4998
5022
 
4999
5023
  /**
5000
- * An [event](#Event) which fires when the active color theme is changed or has changes.
5024
+ * An {@link Event event} which fires when the active color theme is changed or has changes.
5001
5025
  */
5002
5026
  export const onDidChangeActiveColorTheme: Event<ColorTheme>;
5003
5027
  }
@@ -5022,12 +5046,12 @@ export module '@theia/plugin' {
5022
5046
  }
5023
5047
 
5024
5048
  /**
5025
- * Predefined buttons for [QuickPick](#QuickPick) and [InputBox](#InputBox).
5049
+ * Predefined buttons for {@link QuickPick QuickPick} and {@link InputBox InputBox}.
5026
5050
  */
5027
5051
  export class QuickInputButtons {
5028
5052
 
5029
5053
  /**
5030
- * A back button for [QuickPick](#QuickPick) and [InputBox](#InputBox).
5054
+ * A back button for {@link QuickPick QuickPick} and {@link InputBox InputBox}.
5031
5055
  *
5032
5056
  * When a navigation 'back' button is needed this one should be used for consistency.
5033
5057
  * It comes with a predefined icon, tooltip and location.
@@ -5041,7 +5065,7 @@ export module '@theia/plugin' {
5041
5065
  }
5042
5066
 
5043
5067
  /**
5044
- * A concrete [QuickInput](#QuickInput) to let the user input a text value.
5068
+ * A concrete {@link QuickInput QuickInput} to let the user input a text value.
5045
5069
  *
5046
5070
  * Note that in many cases the more convenient [window.showInputBox](#window.showInputBox)
5047
5071
  * is easier to use. [window.createInputBox](#window.createInputBox) should be used
@@ -5077,7 +5101,7 @@ export module '@theia/plugin' {
5077
5101
  /**
5078
5102
  * Buttons for actions in the UI.
5079
5103
  */
5080
- buttons: ReadonlyArray<QuickInputButton>;
5104
+ buttons: readonly QuickInputButton[];
5081
5105
 
5082
5106
  /**
5083
5107
  * An event signaling when a button was triggered.
@@ -5116,7 +5140,7 @@ export module '@theia/plugin' {
5116
5140
  * [QuickInput.dispose](#QuickInput.dispose) it to allow for freeing up
5117
5141
  * any resources associated with it.
5118
5142
  *
5119
- * See [QuickPick](#QuickPick) and [InputBox](#InputBox) for concrete UIs.
5143
+ * See {@link QuickPick QuickPick} and {@link InputBox InputBox} for concrete UIs.
5120
5144
  */
5121
5145
  export interface QuickInput {
5122
5146
 
@@ -5188,14 +5212,14 @@ export module '@theia/plugin' {
5188
5212
  }
5189
5213
 
5190
5214
  /**
5191
- * Button for an action in a [QuickPick](#QuickPick) or [InputBox](#InputBox).
5215
+ * Button for an action in a {@link QuickPick QuickPick} or {@link InputBox InputBox}.
5192
5216
  */
5193
5217
  export interface QuickInputButton {
5194
5218
 
5195
5219
  /**
5196
5220
  * Icon for the button.
5197
5221
  */
5198
- readonly iconPath: Uri | { light: string | Uri; dark: string | Uri } | monaco.theme.ThemeIcon;
5222
+ readonly iconPath: Uri | { light: Uri; dark: Uri } | ThemeIcon;
5199
5223
 
5200
5224
  /**
5201
5225
  * An optional tooltip.
@@ -5255,7 +5279,7 @@ export module '@theia/plugin' {
5255
5279
  }
5256
5280
 
5257
5281
  /**
5258
- * Options for creating a [TreeView](#TreeView)
5282
+ * Options for creating a {@link TreeView TreeView}
5259
5283
  */
5260
5284
  export interface TreeViewOptions<T> {
5261
5285
 
@@ -5271,14 +5295,14 @@ export module '@theia/plugin' {
5271
5295
  }
5272
5296
 
5273
5297
  /**
5274
- * The event that is fired when an element in the [TreeView](#TreeView) is expanded or collapsed
5298
+ * The event that is fired when an element in the {@link TreeView TreeView} is expanded or collapsed
5275
5299
  */
5276
5300
  export interface TreeViewExpansionEvent<T> {
5277
5301
 
5278
5302
  /**
5279
5303
  * Element that is expanded or collapsed.
5280
5304
  */
5281
- element: T;
5305
+ readonly element: T;
5282
5306
 
5283
5307
  }
5284
5308
 
@@ -5290,7 +5314,7 @@ export module '@theia/plugin' {
5290
5314
  /**
5291
5315
  * Selected elements.
5292
5316
  */
5293
- readonly selection: T[];
5317
+ readonly selection: readonly T[];
5294
5318
 
5295
5319
  }
5296
5320
 
@@ -5300,7 +5324,7 @@ export module '@theia/plugin' {
5300
5324
  export interface TreeViewVisibilityChangeEvent {
5301
5325
 
5302
5326
  /**
5303
- * `true` if the [tree view](#TreeView) is visible otherwise `false`.
5327
+ * `true` if the {@link TreeView tree view} is visible otherwise `false`.
5304
5328
  */
5305
5329
  readonly visible: boolean;
5306
5330
 
@@ -5324,20 +5348,20 @@ export module '@theia/plugin' {
5324
5348
  /**
5325
5349
  * Currently selected elements.
5326
5350
  */
5327
- readonly selection: ReadonlyArray<T>;
5351
+ readonly selection: readonly T[];
5328
5352
 
5329
5353
  /**
5330
- * Event that is fired when the [selection](#TreeView.selection) has changed
5354
+ * Event that is fired when the {@link TreeView.selection selection} has changed
5331
5355
  */
5332
5356
  readonly onDidChangeSelection: Event<TreeViewSelectionChangeEvent<T>>;
5333
5357
 
5334
5358
  /**
5335
- * `true` if the [tree view](#TreeView) is visible otherwise `false`.
5359
+ * `true` if the {@link TreeView tree view} is visible otherwise `false`.
5336
5360
  */
5337
5361
  readonly visible: boolean;
5338
5362
 
5339
5363
  /**
5340
- * Event that is fired when [visibility](#TreeView.visible) has changed
5364
+ * Event that is fired when {@link TreeView.visible visibility} has changed
5341
5365
  */
5342
5366
  readonly onDidChangeVisibility: Event<TreeViewVisibilityChangeEvent>;
5343
5367
 
@@ -5364,9 +5388,9 @@ export module '@theia/plugin' {
5364
5388
  *
5365
5389
  * In order to not to select, set the option `select` to `false`.
5366
5390
  *
5367
- * **NOTE:** [TreeDataProvider](#TreeDataProvider) is required to implement [getParent](#TreeDataProvider.getParent) method to access this API.
5391
+ * **NOTE:** {@link TreeDataProvider TreeDataProvider} is required to implement {@link TreeDataProvider.getParent getParent} method to access this API.
5368
5392
  */
5369
- reveal(element: T, options?: { select?: boolean, focus?: boolean, expand?: boolean | number }): Thenable<void>;
5393
+ reveal(element: T, options?: { select?: boolean; focus?: boolean; expand?: boolean | number }): Thenable<void>;
5370
5394
  }
5371
5395
 
5372
5396
  /**
@@ -5381,10 +5405,10 @@ export module '@theia/plugin' {
5381
5405
  onDidChangeTreeData?: Event<T | undefined | null>;
5382
5406
 
5383
5407
  /**
5384
- * Get [TreeItem](#TreeItem) representation of the `element`
5408
+ * Get {@link TreeItem TreeItem} representation of the `element`
5385
5409
  *
5386
- * @param element The element for which [TreeItem](#TreeItem) representation is asked for.
5387
- * @return [TreeItem](#TreeItem) representation of the element
5410
+ * @param element The element for which {@link TreeItem TreeItem} representation is asked for.
5411
+ * @return {@link TreeItem TreeItem} representation of the element
5388
5412
  */
5389
5413
  getTreeItem(element: T): TreeItem | Thenable<TreeItem>;
5390
5414
 
@@ -5400,7 +5424,7 @@ export module '@theia/plugin' {
5400
5424
  * Optional method to return the parent of `element`.
5401
5425
  * Return `null` or `undefined` if `element` is a child of root.
5402
5426
  *
5403
- * **NOTE:** This method should be implemented in order to access [reveal](#TreeView.reveal) API.
5427
+ * **NOTE:** This method should be implemented in order to access {@link TreeView.reveal reveal} API.
5404
5428
  *
5405
5429
  * @param element The element for which the parent has to be returned.
5406
5430
  * @return Parent of `element`.
@@ -5410,7 +5434,7 @@ export module '@theia/plugin' {
5410
5434
 
5411
5435
  export class TreeItem {
5412
5436
  /**
5413
- * A human-readable string describing this item. When `falsy`, it is derived from [resourceUri](#TreeItem.resourceUri).
5437
+ * A human-readable string describing this item. When `falsy`, it is derived from {@link TreeItem.resourceUri resourceUri}.
5414
5438
  */
5415
5439
  label?: string | TreeItemLabel;
5416
5440
 
@@ -5422,23 +5446,23 @@ export module '@theia/plugin' {
5422
5446
  id?: string;
5423
5447
 
5424
5448
  /**
5425
- * The icon path or [ThemeIcon](#ThemeIcon) for the tree item.
5426
- * When `falsy`, [Folder Theme Icon](#ThemeIcon.Folder) is assigned, if item is collapsible otherwise [File Theme Icon](#ThemeIcon.File).
5427
- * When a [ThemeIcon](#ThemeIcon) is specified, icon is derived from the current file icon theme for the specified theme icon using [resourceUri](#TreeItem.resourceUri) (if provided).
5449
+ * The icon path or {@link ThemeIcon ThemeIcon} for the tree item.
5450
+ * When `falsy`, {@link ThemeIcon.Folder Folder Theme Icon} is assigned, if item is collapsible otherwise {@link ThemeIcon.File File Theme Icon}.
5451
+ * When a {@link ThemeIcon ThemeIcon} is specified, icon is derived from the current file icon theme for the specified theme icon using {@link TreeItem.resourceUri resourceUri} (if provided).
5428
5452
  */
5429
5453
  iconPath?: string | Uri | { light: string | Uri; dark: string | Uri } | ThemeIcon;
5430
5454
 
5431
5455
  /**
5432
5456
  * A human readable string which is rendered less prominent.
5433
- * When `true`, it is derived from [resourceUri](#TreeItem.resourceUri) and when `falsy`, it is not shown.
5457
+ * When `true`, it is derived from {@link TreeItem.resourceUri resourceUri} and when `falsy`, it is not shown.
5434
5458
  */
5435
5459
  description?: string | boolean;
5436
5460
 
5437
5461
  /**
5438
- * The [uri](#Uri) of the resource representing this item.
5462
+ * The {@link Uri uri} of the resource representing this item.
5439
5463
  *
5440
- * Will be used to derive the [label](#TreeItem.label), when it is not provided.
5441
- * Will be used to derive the icon from current icon theme, when [iconPath](#TreeItem.iconPath) has [ThemeIcon](#ThemeIcon) value.
5464
+ * Will be used to derive the {@link TreeItem.label label}, when it is not provided.
5465
+ * Will be used to derive the icon from current icon theme, when {@link TreeItem.iconPath iconPath} has {@link ThemeIcon ThemeIcon} value.
5442
5466
  */
5443
5467
  resourceUri?: Uri;
5444
5468
 
@@ -5448,12 +5472,12 @@ export module '@theia/plugin' {
5448
5472
  tooltip?: string | undefined;
5449
5473
 
5450
5474
  /**
5451
- * The [command](#Command) which should be run when the tree item is selected.
5475
+ * The {@link Command command} which should be run when the tree item is selected.
5452
5476
  */
5453
5477
  command?: Command;
5454
5478
 
5455
5479
  /**
5456
- * [TreeItemCollapsibleState](#TreeItemCollapsibleState) of the tree item.
5480
+ * {@link TreeItemCollapsibleState TreeItemCollapsibleState} of the tree item.
5457
5481
  */
5458
5482
  collapsibleState?: TreeItemCollapsibleState;
5459
5483
 
@@ -5486,13 +5510,13 @@ export module '@theia/plugin' {
5486
5510
 
5487
5511
  /**
5488
5512
  * @param label A human-readable string describing this item
5489
- * @param collapsibleState [TreeItemCollapsibleState](#TreeItemCollapsibleState) of the tree item. Default is [TreeItemCollapsibleState.None](#TreeItemCollapsibleState.None)
5513
+ * @param collapsibleState {@link TreeItemCollapsibleState TreeItemCollapsibleState} of the tree item. Default is [TreeItemCollapsibleState.None](#TreeItemCollapsibleState.None)
5490
5514
  */
5491
5515
  constructor(label: string | TreeItemLabel, collapsibleState?: TreeItemCollapsibleState);
5492
5516
 
5493
5517
  /**
5494
- * @param resourceUri The [uri](#Uri) of the resource representing this item.
5495
- * @param collapsibleState [TreeItemCollapsibleState](#TreeItemCollapsibleState) of the tree item. Default is [TreeItemCollapsibleState.None](#TreeItemCollapsibleState.None)
5518
+ * @param resourceUri The {@link Uri uri} of the resource representing this item.
5519
+ * @param collapsibleState {@link TreeItemCollapsibleState TreeItemCollapsibleState} of the tree item. Default is [TreeItemCollapsibleState.None](#TreeItemCollapsibleState.None)
5496
5520
  */
5497
5521
  constructor(resourceUri: Uri, collapsibleState?: TreeItemCollapsibleState);
5498
5522
  }
@@ -5544,7 +5568,7 @@ export module '@theia/plugin' {
5544
5568
  *
5545
5569
  * *Workspace configuration* comes from Workspace Settings and shadows Global configuration.
5546
5570
  *
5547
- * *Workspace Folder configuration* comes from `.vscode` folder under one of the [workspace folders](#workspace.workspaceFolders).
5571
+ * *Workspace Folder configuration* comes from `.vscode` folder under one of the {@link workspace.workspaceFolders workspace folders}.
5548
5572
  *
5549
5573
  * *Note:* Workspace and Workspace Folder configurations contains `launch` and `tasks` settings. Their basename will be
5550
5574
  * part of the section identifier. The following snippets shows how to retrieve all configurations
@@ -5611,15 +5635,15 @@ export module '@theia/plugin' {
5611
5635
  *
5612
5636
  * A value can be changed in
5613
5637
  *
5614
- * - [Global configuration](#ConfigurationTarget.Global): Changes the value for all instances of the editor.
5615
- * - [Workspace configuration](#ConfigurationTarget.Workspace): Changes the value for current workspace, if available.
5616
- * - [Workspace folder configuration](#ConfigurationTarget.WorkspaceFolder): Changes the value for the
5617
- * [Workspace folder](#workspace.workspaceFolders) to which the current [configuration](#WorkspaceConfiguration) is scoped to.
5638
+ * - {@link ConfigurationTarget.Global Global configuration}: Changes the value for all instances of the editor.
5639
+ * - {@link ConfigurationTarget.Workspace Workspace configuration}: Changes the value for current workspace, if available.
5640
+ * - {@link ConfigurationTarget.WorkspaceFolder Workspace folder configuration}: Changes the value for the
5641
+ * {@link workspace.workspaceFolders Workspace folder} to which the current {@link WorkspaceConfiguration configuration} is scoped to.
5618
5642
  *
5619
5643
  * *Note 1:* Setting a global value in the presence of a more specific workspace value
5620
5644
  * has no observable effect in that workspace, but in others. Setting a workspace value
5621
5645
  * in the presence of a more specific folder value has no observable effect for the resources
5622
- * under respective [folder](#workspace.workspaceFolders), but in others. Refer to
5646
+ * under respective {@link workspace.workspaceFolders folder}, but in others. Refer to
5623
5647
  * [Settings Inheritence](https://code.visualstudio.com/docs/getstarted/settings) for more information.
5624
5648
  *
5625
5649
  * *Note 2:* To remove a configuration value use `undefined`, like so: `config.update('somekey', undefined)`
@@ -5633,7 +5657,7 @@ export module '@theia/plugin' {
5633
5657
  *
5634
5658
  * @param section Configuration name, supports _dotted_ names.
5635
5659
  * @param value The new value.
5636
- * @param configurationTarget The [configuration target](#ConfigurationTarget) or a boolean value.
5660
+ * @param configurationTarget The {@link ConfigurationTarget configuration target} or a boolean value.
5637
5661
  * - If `true` configuration target is `ConfigurationTarget.Global`.
5638
5662
  * - If `false` configuration target is `ConfigurationTarget.Workspace`.
5639
5663
  * - If `undefined` or `null` configuration target is
@@ -5684,18 +5708,18 @@ export module '@theia/plugin' {
5684
5708
  export type ConfigurationScope = Uri | WorkspaceFolder | TextDocument | { uri?: Uri, languageId: string };
5685
5709
 
5686
5710
  /**
5687
- * An event describing a change to the set of [workspace folders](#workspace.workspaceFolders).
5711
+ * An event describing a change to the set of {@link workspace.workspaceFolders workspace folders}.
5688
5712
  */
5689
5713
  export interface WorkspaceFoldersChangeEvent {
5690
5714
  /**
5691
5715
  * Added workspace folders.
5692
5716
  */
5693
- readonly added: WorkspaceFolder[];
5717
+ readonly added: readonly WorkspaceFolder[];
5694
5718
 
5695
5719
  /**
5696
5720
  * Removed workspace folders.
5697
5721
  */
5698
- readonly removed: WorkspaceFolder[];
5722
+ readonly removed: readonly WorkspaceFolder[];
5699
5723
  }
5700
5724
 
5701
5725
  /**
@@ -5706,7 +5730,7 @@ export module '@theia/plugin' {
5706
5730
  /**
5707
5731
  * The associated uri for this workspace folder.
5708
5732
  *
5709
- * *Note:* The [Uri](#Uri)-type was intentionally chosen such that future releases of the editor can support
5733
+ * *Note:* The {@link Uri Uri}-type was intentionally chosen such that future releases of the editor can support
5710
5734
  * workspace folders that are not stored on the local disk, e.g. `ftp://server/workspaces/foo`.
5711
5735
  */
5712
5736
  readonly uri: Uri;
@@ -5884,22 +5908,22 @@ export module '@theia/plugin' {
5884
5908
  * and to manage files and folders. It allows extensions to serve files from remote places,
5885
5909
  * like ftp-servers, and to seamlessly integrate those into the editor.
5886
5910
  *
5887
- * * *Note 1:* The filesystem provider API works with [uris](#Uri) and assumes hierarchical
5911
+ * * *Note 1:* The filesystem provider API works with {@link Uri uris} and assumes hierarchical
5888
5912
  * paths, e.g. `foo:/my/path` is a child of `foo:/my/` and a parent of `foo:/my/path/deeper`.
5889
5913
  * * *Note 2:* There is an activation event `onFileSystem:<scheme>` that fires when a file
5890
5914
  * or folder is being accessed.
5891
- * * *Note 3:* The word 'file' is often used to denote all [kinds](#FileType) of files, e.g.
5915
+ * * *Note 3:* The word 'file' is often used to denote all {@link FileType kinds} of files, e.g.
5892
5916
  * folders, symbolic links, and regular files.
5893
5917
  */
5894
5918
  export interface FileSystemProvider {
5895
5919
 
5896
5920
  /**
5897
5921
  * An event to signal that a resource has been created, changed, or deleted. This
5898
- * event should fire for resources that are being [watched](#FileSystemProvider.watch)
5922
+ * event should fire for resources that are being {@link FileSystemProvider.watch watched}
5899
5923
  * by clients of this provider.
5900
5924
  *
5901
5925
  * *Note:* It is important that the metadata of the file that changed provides an
5902
- * updated `mtime` that advanced from the previous value in the [stat](#FileStat) and a
5926
+ * updated `mtime` that advanced from the previous value in the {@link FileStat stat} and a
5903
5927
  * correct `size` value. Otherwise there may be optimizations in place that will not show
5904
5928
  * the change in an editor for example.
5905
5929
  */
@@ -5922,23 +5946,23 @@ export module '@theia/plugin' {
5922
5946
  * Retrieve metadata about a file.
5923
5947
  *
5924
5948
  * Note that the metadata for symbolic links should be the metadata of the file they refer to.
5925
- * Still, the [SymbolicLink](#FileType.SymbolicLink)-type must be used in addition to the actual type, e.g.
5949
+ * Still, the {@link FileType.SymbolicLink SymbolicLink}-type must be used in addition to the actual type, e.g.
5926
5950
  * `FileType.SymbolicLink | FileType.Directory`.
5927
5951
  *
5928
5952
  * @param uri The uri of the file to retrieve metadata about.
5929
5953
  * @return The file metadata about the file.
5930
5954
  * @throws [`FileNotFound`](#FileSystemError.FileNotFound) when `uri` doesn't exist.
5931
5955
  */
5932
- stat(uri: Uri): FileStat | Promise<FileStat>;
5956
+ stat(uri: Uri): FileStat | Thenable<FileStat>;
5933
5957
 
5934
5958
  /**
5935
- * Retrieve all entries of a [directory](#FileType.Directory).
5959
+ * Retrieve all entries of a {@link FileType.Directory directory}.
5936
5960
  *
5937
5961
  * @param uri The uri of the folder.
5938
5962
  * @return An array of name/type-tuples or a thenable that resolves to such.
5939
5963
  * @throws [`FileNotFound`](#FileSystemError.FileNotFound) when `uri` doesn't exist.
5940
5964
  */
5941
- readDirectory(uri: Uri): [string, FileType][] | Promise<[string, FileType][]>;
5965
+ readDirectory(uri: Uri): [string, FileType][] | Thenable<[string, FileType][]>;
5942
5966
 
5943
5967
  /**
5944
5968
  * Create a new directory (Note, that new files are created via `write`-calls).
@@ -5948,7 +5972,7 @@ export module '@theia/plugin' {
5948
5972
  * @throws [`FileExists`](#FileSystemError.FileExists) when `uri` already exists.
5949
5973
  * @throws [`NoPermissions`](#FileSystemError.NoPermissions) when permissions aren't sufficient.
5950
5974
  */
5951
- createDirectory(uri: Uri): void | Promise<void>;
5975
+ createDirectory(uri: Uri): void | Thenable<void>;
5952
5976
 
5953
5977
  /**
5954
5978
  * Read the entire contents of a file.
@@ -5957,7 +5981,7 @@ export module '@theia/plugin' {
5957
5981
  * @return An array of bytes or a thenable that resolves to such.
5958
5982
  * @throws [`FileNotFound`](#FileSystemError.FileNotFound) when `uri` doesn't exist.
5959
5983
  */
5960
- readFile(uri: Uri): Uint8Array | Promise<Uint8Array>;
5984
+ readFile(uri: Uri): Uint8Array | Thenable<Uint8Array>;
5961
5985
 
5962
5986
  /**
5963
5987
  * Write data to a file, replacing its entire contents.
@@ -5970,7 +5994,7 @@ export module '@theia/plugin' {
5970
5994
  * @throws [`FileExists`](#FileSystemError.FileExists) when `uri` already exists, `create` is set but `overwrite` is not set.
5971
5995
  * @throws [`NoPermissions`](#FileSystemError.NoPermissions) when permissions aren't sufficient.
5972
5996
  */
5973
- writeFile(uri: Uri, content: Uint8Array, options: { create: boolean, overwrite: boolean }): void | Promise<void>;
5997
+ writeFile(uri: Uri, content: Uint8Array, options: { create: boolean, overwrite: boolean }): void | Thenable<void>;
5974
5998
 
5975
5999
  /**
5976
6000
  * Delete a file.
@@ -5980,7 +6004,7 @@ export module '@theia/plugin' {
5980
6004
  * @throws [`FileNotFound`](#FileSystemError.FileNotFound) when `uri` doesn't exist.
5981
6005
  * @throws [`NoPermissions`](#FileSystemError.NoPermissions) when permissions aren't sufficient.
5982
6006
  */
5983
- delete(uri: Uri, options: { recursive: boolean }): void | Promise<void>;
6007
+ delete(uri: Uri, options: { recursive: boolean }): void | Thenable<void>;
5984
6008
 
5985
6009
  /**
5986
6010
  * Rename a file or folder.
@@ -5993,7 +6017,7 @@ export module '@theia/plugin' {
5993
6017
  * @throws [`FileExists`](#FileSystemError.FileExists) when `newUri` exists and when the `overwrite` option is not `true`.
5994
6018
  * @throws [`NoPermissions`](#FileSystemError.NoPermissions) when permissions aren't sufficient.
5995
6019
  */
5996
- rename(oldUri: Uri, newUri: Uri, options: { overwrite: boolean }): void | Promise<void>;
6020
+ rename(oldUri: Uri, newUri: Uri, options: { overwrite: boolean }): void | Thenable<void>;
5997
6021
 
5998
6022
  /**
5999
6023
  * Copy files or folders. Implementing this function is optional but it will speedup
@@ -6007,12 +6031,12 @@ export module '@theia/plugin' {
6007
6031
  * @throws [`FileExists`](#FileSystemError.FileExists) when `destination` exists and when the `overwrite` option is not `true`.
6008
6032
  * @throws [`NoPermissions`](#FileSystemError.NoPermissions) when permissions aren't sufficient.
6009
6033
  */
6010
- copy?(source: Uri, destination: Uri, options: { overwrite: boolean }): void | Promise<void>;
6034
+ copy?(source: Uri, destination: Uri, options: { overwrite: boolean }): void | Thenable<void>;
6011
6035
  }
6012
6036
 
6013
6037
  /**
6014
6038
  * The file system interface exposes the editor's built-in and contributed
6015
- * [file system providers](#FileSystemProvider). It allows extensions to work
6039
+ * {@link FileSystemProvider file system providers}. It allows extensions to work
6016
6040
  * with files from the local disk as well as files from remote places, like the
6017
6041
  * remote extension host or ftp-servers.
6018
6042
  *
@@ -6029,7 +6053,7 @@ export module '@theia/plugin' {
6029
6053
  stat(uri: Uri): Thenable<FileStat>;
6030
6054
 
6031
6055
  /**
6032
- * Retrieve all entries of a [directory](#FileType.Directory).
6056
+ * Retrieve all entries of a {@link FileType.Directory directory}.
6033
6057
  *
6034
6058
  * @param uri The uri of the folder.
6035
6059
  * @return An array of name/type-tuples or a thenable that resolves to such.
@@ -6094,14 +6118,14 @@ export module '@theia/plugin' {
6094
6118
  * of the folder that has been opened. There is no workspace when just a file but not a
6095
6119
  * folder has been opened.
6096
6120
  *
6097
- * The workspace offers support for [listening](#workspace.createFileSystemWatcher) to fs
6098
- * events and for [finding](#workspace.findFiles) files. Both perform well and run _outside_
6121
+ * The workspace offers support for {@link workspace.createFileSystemWatcher listening} to fs
6122
+ * events and for {@link workspace.findFiles finding} files. Both perform well and run _outside_
6099
6123
  * the editor-process so that they should be always used instead of nodejs-equivalents.
6100
6124
  */
6101
6125
  export namespace workspace {
6102
6126
 
6103
6127
  /**
6104
- * A [file system](#FileSystem) instance that allows to interact with local and remote
6128
+ * A {@link FileSystem file system} instance that allows to interact with local and remote
6105
6129
  * files, e.g. `workspace.fs.readDirectory(someUri)` allows to retrieve all entries
6106
6130
  * of a directory or `workspace.fs.stat(anotherUri)` returns the meta data for a
6107
6131
  * file.
@@ -6116,7 +6140,7 @@ export module '@theia/plugin' {
6116
6140
  *
6117
6141
  * @readonly
6118
6142
  */
6119
- export let rootPath: string | undefined;
6143
+ export const rootPath: string | undefined;
6120
6144
 
6121
6145
  /**
6122
6146
  * List of workspace folders or `undefined` when no folder is open.
@@ -6124,7 +6148,7 @@ export module '@theia/plugin' {
6124
6148
  *
6125
6149
  * @readonly
6126
6150
  */
6127
- export let workspaceFolders: WorkspaceFolder[] | undefined;
6151
+ export const workspaceFolders: readonly WorkspaceFolder[] | undefined;
6128
6152
 
6129
6153
  /**
6130
6154
  * The location of the workspace file, for example:
@@ -6160,7 +6184,7 @@ export module '@theia/plugin' {
6160
6184
  *
6161
6185
  * @readonly
6162
6186
  */
6163
- export let textDocuments: TextDocument[];
6187
+ export let textDocuments: readonly TextDocument[];
6164
6188
 
6165
6189
  /**
6166
6190
  * Register a text document content provider.
@@ -6169,46 +6193,46 @@ export module '@theia/plugin' {
6169
6193
  *
6170
6194
  * @param scheme The uri-scheme to register for.
6171
6195
  * @param provider A content provider.
6172
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
6196
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
6173
6197
  */
6174
6198
  export function registerTextDocumentContentProvider(scheme: string, provider: TextDocumentContentProvider): Disposable;
6175
6199
 
6176
6200
  /**
6177
- * An event that is emitted when a [text document](#TextDocument) is opened.
6201
+ * An event that is emitted when a {@link TextDocument text document} is opened.
6178
6202
  *
6179
- * To add an event listener when a visible text document is opened, use the [TextEditor](#TextEditor) events in the
6180
- * [window](#window) namespace. Note that:
6203
+ * To add an event listener when a visible text document is opened, use the {@link TextEditor TextEditor} events in the
6204
+ * {@link window window} namespace. Note that:
6181
6205
  *
6182
- * - The event is emitted before the [document](#TextDocument) is updated in the
6183
- * [active text editor](#window.activeTextEditor)
6184
- * - When a [text document](#TextDocument) is already open (e.g.: open in another [visible text editor](#window.visibleTextEditors)) this event is not emitted
6206
+ * - The event is emitted before the {@link TextDocument document} is updated in the
6207
+ * {@link window.activeTextEditor active text editor}
6208
+ * - When a {@link TextDocument text document} is already open (e.g.: open in another {@link window.visibleTextEditors visible text editor}) this event is not emitted
6185
6209
  *
6186
6210
  */
6187
6211
  export const onDidOpenTextDocument: Event<TextDocument>;
6188
6212
 
6189
6213
  /**
6190
- * An event that is emitted when a [text document](#TextDocument) is disposed.
6214
+ * An event that is emitted when a {@link TextDocument text document} is disposed.
6191
6215
  *
6192
- * To add an event listener when a visible text document is closed, use the [TextEditor](#TextEditor) events in the
6193
- * [window](#window) namespace. Note that this event is not emitted when a [TextEditor](#TextEditor) is closed
6194
- * but the document remains open in another [visible text editor](#window.visibleTextEditors).
6216
+ * To add an event listener when a visible text document is closed, use the {@link TextEditor TextEditor} events in the
6217
+ * {@link window window} namespace. Note that this event is not emitted when a {@link TextEditor TextEditor} is closed
6218
+ * but the document remains open in another {@link window.visibleTextEditors visible text editor}.
6195
6219
  */
6196
6220
  export const onDidCloseTextDocument: Event<TextDocument>;
6197
6221
 
6198
6222
  /**
6199
- * An event that is emitted when a [text document](#TextDocument) is changed. This usually happens
6200
- * when the [contents](#TextDocument.getText) changes but also when other things like the
6201
- * [dirty](#TextDocument.isDirty)-state changes.
6223
+ * An event that is emitted when a {@link TextDocument text document} is changed. This usually happens
6224
+ * when the {@link TextDocument.getText contents} changes but also when other things like the
6225
+ * {@link TextDocument.isDirty dirty}-state changes.
6202
6226
  */
6203
6227
  export const onDidChangeTextDocument: Event<TextDocumentChangeEvent>;
6204
6228
 
6205
6229
  /**
6206
- * An event that is emitted when a [text document](#TextDocument) will be saved to disk.
6230
+ * An event that is emitted when a {@link TextDocument text document} will be saved to disk.
6207
6231
  *
6208
6232
  * *Note 1:* Subscribers can delay saving by registering asynchronous work. For the sake of data integrity the editor
6209
6233
  * might save without firing this event. For instance when shutting down with dirty files.
6210
6234
  *
6211
- * *Note 2:* Subscribers are called sequentially and they can [delay](#TextDocumentWillSaveEvent.waitUntil) saving
6235
+ * *Note 2:* Subscribers are called sequentially and they can {@link TextDocumentWillSaveEvent.waitUntil delay} saving
6212
6236
  * by registering asynchronous work. Protection against misbehaving listeners is implemented as such:
6213
6237
  * * there is an overall time budget that all listeners share and if that is exhausted no further listener is called
6214
6238
  * * listeners that take a long time or produce errors frequently will not be called anymore
@@ -6218,7 +6242,7 @@ export module '@theia/plugin' {
6218
6242
  export const onWillSaveTextDocument: Event<TextDocumentWillSaveEvent>;
6219
6243
 
6220
6244
  /**
6221
- * An event that is emitted when a [text document](#TextDocument) is saved to disk.
6245
+ * An event that is emitted when a {@link TextDocument text document} is saved to disk.
6222
6246
  */
6223
6247
  export const onDidSaveTextDocument: Event<TextDocument>;
6224
6248
 
@@ -6294,29 +6318,29 @@ export module '@theia/plugin' {
6294
6318
 
6295
6319
  /**
6296
6320
  * Opens a document. Will return early if this document is already open. Otherwise
6297
- * the document is loaded and the [didOpen](#workspace.onDidOpenTextDocument)-event fires.
6321
+ * the document is loaded and the {@link workspace.onDidOpenTextDocument didOpen}-event fires.
6298
6322
  *
6299
- * The document is denoted by an [uri](#Uri). Depending on the [scheme](#Uri.scheme) the
6323
+ * The document is denoted by an {@link Uri uri}. Depending on the {@link Uri.scheme scheme} the
6300
6324
  * following rules apply:
6301
6325
  * * `file`-scheme: Open a file on disk, will be rejected if the file does not exist or cannot be loaded.
6302
6326
  * * `untitled`-scheme: A new file that should be saved on disk, e.g. `untitled:c:\frodo\new.js`. The language
6303
6327
  * will be derived from the file name.
6304
- * * For all other schemes the registered text document content [providers](#TextDocumentContentProvider) are consulted.
6328
+ * * For all other schemes the registered text document content {@link TextDocumentContentProvider providers} are consulted.
6305
6329
  *
6306
6330
  * *Note* that the lifecycle of the returned document is owned by the editor and not by the extension. That means an
6307
6331
  * [`onDidClose`](#workspace.onDidCloseTextDocument)-event can occur at any time after opening it.
6308
6332
  *
6309
6333
  * @param uri Identifies the resource to open.
6310
- * @return A promise that resolves to a [document](#TextDocument).
6334
+ * @return A promise that resolves to a {@link TextDocument document}.
6311
6335
  */
6312
6336
  export function openTextDocument(uri: Uri): Thenable<TextDocument | undefined>;
6313
6337
 
6314
6338
  /**
6315
6339
  * A short-hand for `openTextDocument(Uri.file(fileName))`.
6316
6340
  *
6317
- * @see [openTextDocument](#openTextDocument)
6341
+ * @see {@link openTextDocument openTextDocument}
6318
6342
  * @param fileName A name of a file on disk.
6319
- * @return A promise that resolves to a [document](#TextDocument).
6343
+ * @return A promise that resolves to a {@link TextDocument document}.
6320
6344
  */
6321
6345
  export function openTextDocument(fileName: string): Thenable<TextDocument | undefined>;
6322
6346
 
@@ -6326,7 +6350,7 @@ export module '@theia/plugin' {
6326
6350
  * specify the *language* and/or the *content* of the document.
6327
6351
  *
6328
6352
  * @param options Options to control how the document will be created.
6329
- * @return A promise that resolves to a [document](#TextDocument).
6353
+ * @return A promise that resolves to a {@link TextDocument document}.
6330
6354
  */
6331
6355
  export function openTextDocument(options?: { language?: string; content?: string; }): Thenable<TextDocument | undefined>;
6332
6356
 
@@ -6346,7 +6370,7 @@ export module '@theia/plugin' {
6346
6370
  export function getConfiguration(section?: string, scope?: ConfigurationScope | null): WorkspaceConfiguration;
6347
6371
 
6348
6372
  /**
6349
- * An event that is emitted when the [configuration](#WorkspaceConfiguration) changed.
6373
+ * An event that is emitted when the {@link WorkspaceConfiguration configuration} changed.
6350
6374
  */
6351
6375
  export const onDidChangeConfiguration: Event<ConfigurationChangeEvent>;
6352
6376
 
@@ -6356,10 +6380,10 @@ export module '@theia/plugin' {
6356
6380
  * A glob pattern that filters the file events on their absolute path must be provided. Optionally,
6357
6381
  * flags to ignore certain kinds of events can be provided. To stop listening to events the watcher must be disposed.
6358
6382
  *
6359
- * *Note* that only files within the current [workspace folders](#workspace.workspaceFolders) can be watched.
6383
+ * *Note* that only files within the current {@link workspace.workspaceFolders workspace folders} can be watched.
6360
6384
  *
6361
- * @param globPattern A [glob pattern](#GlobPattern) that is applied to the absolute paths of created, changed,
6362
- * and deleted files. Use a [relative pattern](#RelativePattern) to limit events to a certain [workspace folder](#WorkspaceFolder).
6385
+ * @param globPattern A {@link GlobPattern glob pattern} that is applied to the absolute paths of created, changed,
6386
+ * and deleted files. Use a {@link RelativePattern relative pattern} to limit events to a certain {@link WorkspaceFolder workspace folder}.
6363
6387
  * @param ignoreCreateEvents Ignore when files have been created.
6364
6388
  * @param ignoreChangeEvents Ignore when files have been changed.
6365
6389
  * @param ignoreDeleteEvents Ignore when files have been deleted.
@@ -6373,32 +6397,22 @@ export module '@theia/plugin' {
6373
6397
  ): FileSystemWatcher;
6374
6398
 
6375
6399
  /**
6376
- * Find files across all [workspace folders](#workspace.workspaceFolders) in the workspace.
6400
+ * Find files across all {@link workspace.workspaceFolders workspace folders} in the workspace.
6377
6401
  *
6378
6402
  * @sample `findFiles('**​/*.js', '**​/node_modules/**', 10)`
6379
- * @param include A [glob pattern](#GlobPattern) that defines the files to search for. The glob pattern
6380
- * will be matched against the file paths of resulting matches relative to their workspace. Use a [relative pattern](#RelativePattern)
6381
- * to restrict the search results to a [workspace folder](#WorkspaceFolder).
6382
- * @param exclude A [glob pattern](#GlobPattern) that defines files and folders to exclude. The glob pattern
6403
+ * @param include A {@link GlobPattern glob pattern} that defines the files to search for. The glob pattern
6404
+ * will be matched against the file paths of resulting matches relative to their workspace. Use a {@link RelativePattern relative pattern}
6405
+ * to restrict the search results to a {@link WorkspaceFolder workspace folder}.
6406
+ * @param exclude A {@link GlobPattern glob pattern} that defines files and folders to exclude. The glob pattern
6383
6407
  * will be matched against the file paths of resulting matches relative to their workspace. When `undefined` only default excludes will
6384
6408
  * apply, when `null` no excludes will apply.
6385
6409
  * @param maxResults An upper-bound for the result.
6386
6410
  * @param token A token that can be used to signal cancellation to the underlying search engine.
6387
6411
  * @return A thenable that resolves to an array of resource identifiers. Will return no results if no
6388
- * [workspace folders](#workspace.workspaceFolders) are opened.
6412
+ * {@link workspace.workspaceFolders workspace folders} are opened.
6389
6413
  */
6390
6414
  export function findFiles(include: GlobPattern, exclude?: GlobPattern | null, maxResults?: number, token?: CancellationToken): Thenable<Uri[]>;
6391
6415
 
6392
- /**
6393
- * Find text in files across all [workspace folders] in the workspace
6394
- * @param query What to search
6395
- * @param optionsOrCallback
6396
- * @param callbackOrToken
6397
- * @param token
6398
- */
6399
- export function findTextInFiles(query: TextSearchQuery, optionsOrCallback: FindTextInFilesOptions | ((result: TextSearchResult) => void),
6400
- callbackOrToken?: CancellationToken | ((result: TextSearchResult) => void), token?: CancellationToken): Promise<TextSearchComplete>;
6401
-
6402
6416
  /**
6403
6417
  * Save all dirty files.
6404
6418
  *
@@ -6409,7 +6423,7 @@ export module '@theia/plugin' {
6409
6423
 
6410
6424
  /**
6411
6425
  * Make changes to one or many resources or create, delete, and rename resources as defined by the given
6412
- * [workspace edit](#WorkspaceEdit).
6426
+ * {@link WorkspaceEdit workspace edit}.
6413
6427
  *
6414
6428
  * All changes of a workspace edit are applied in the same order in which they have been added. If
6415
6429
  * multiple textual inserts are made at the same position, these strings appear in the resulting text
@@ -6431,15 +6445,15 @@ export module '@theia/plugin' {
6431
6445
  * There can only be one provider per scheme and an error is being thrown when a scheme
6432
6446
  * has been claimed by another provider or when it is reserved.
6433
6447
  *
6434
- * @param scheme The uri-[scheme](#Uri.scheme) the provider registers for.
6448
+ * @param scheme The uri-{@link Uri.scheme scheme} the provider registers for.
6435
6449
  * @param provider The filesystem provider.
6436
6450
  * @param options Immutable metadata about the provider.
6437
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
6451
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
6438
6452
  */
6439
6453
  export function registerFileSystemProvider(scheme: string, provider: FileSystemProvider, options?: { readonly isCaseSensitive?: boolean, readonly isReadonly?: boolean }): Disposable;
6440
6454
 
6441
6455
  /**
6442
- * Returns the [workspace folder](#WorkspaceFolder) that contains a given uri.
6456
+ * Returns the {@link WorkspaceFolder workspace folder} that contains a given uri.
6443
6457
  * * returns `undefined` when the given uri doesn't match any workspace folder
6444
6458
  *
6445
6459
  * @param uri An uri.
@@ -6450,10 +6464,10 @@ export module '@theia/plugin' {
6450
6464
  /**
6451
6465
  * Returns a path that is relative to the workspace folder or folders.
6452
6466
  *
6453
- * When there are no [workspace folders](#workspace.workspaceFolders) or when the path
6467
+ * When there are no {@link workspace.workspaceFolders workspace folders} or when the path
6454
6468
  * is not contained in them, the input is returned.
6455
6469
  *
6456
- * @param pathOrUri A path or uri. When a uri is given its [fsPath](#Uri.fsPath) is used.
6470
+ * @param pathOrUri A path or uri. When a uri is given its {@link Uri.fsPath fsPath} is used.
6457
6471
  * @param includeWorkspaceFolder When `true` and when the given path is contained inside a
6458
6472
  * workspace folder the name of the workspace is prepended. Defaults to `true` when there are
6459
6473
  * multiple workspace folders and `false` otherwise.
@@ -6462,7 +6476,7 @@ export module '@theia/plugin' {
6462
6476
  export function asRelativePath(pathOrUri: string | Uri, includeWorkspaceFolder?: boolean): string | undefined;
6463
6477
 
6464
6478
  /**
6465
- * This method replaces `deleteCount` [workspace folders](#workspace.workspaceFolders) starting at index `start`
6479
+ * This method replaces `deleteCount` {@link workspace.workspaceFolders workspace folders} starting at index `start`
6466
6480
  * by an optional set of `workspaceFoldersToAdd` on the `theia.workspace.workspaceFolders` array. This "splice"
6467
6481
  * behavior can be used to add, remove and change workspace folders in a single operation.
6468
6482
  *
@@ -6494,7 +6508,7 @@ export module '@theia/plugin' {
6494
6508
  * **Note:** it is not valid to call [updateWorkspaceFolders()](#updateWorkspaceFolders) multiple times
6495
6509
  * without waiting for the [`onDidChangeWorkspaceFolders()`](#onDidChangeWorkspaceFolders) to fire.
6496
6510
  *
6497
- * @param start the zero-based location in the list of currently opened [workspace folders](#WorkspaceFolder)
6511
+ * @param start the zero-based location in the list of currently opened {@link WorkspaceFolder workspace folders}
6498
6512
  * from which to start deleting workspace folders.
6499
6513
  * @param deleteCount the optional number of workspace folders to remove.
6500
6514
  * @param workspaceFoldersToAdd the optional variable set of workspace folders to add in place of the deleted ones.
@@ -6511,7 +6525,7 @@ export module '@theia/plugin' {
6511
6525
  *
6512
6526
  * @param type The task kind type this provider is registered for.
6513
6527
  * @param provider A task provider.
6514
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
6528
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
6515
6529
  */
6516
6530
  export function registerTaskProvider(type: string, provider: TaskProvider): Disposable;
6517
6531
 
@@ -6684,7 +6698,7 @@ export module '@theia/plugin' {
6684
6698
  /**
6685
6699
  * A relative pattern is a helper to construct glob patterns that are matched
6686
6700
  * relatively to a base path. The base path can either be an absolute file path
6687
- * or a [workspace folder](#WorkspaceFolder).
6701
+ * or a {@link WorkspaceFolder workspace folder}.
6688
6702
  */
6689
6703
  export class RelativePattern {
6690
6704
 
@@ -6715,7 +6729,7 @@ export module '@theia/plugin' {
6715
6729
 
6716
6730
  /**
6717
6731
  * A file glob pattern to match file paths against. This can either be a glob pattern string
6718
- * (like `**​/*.{ts,js}` or `*.{ts,js}`) or a [relative pattern](#RelativePattern).
6732
+ * (like `**​/*.{ts,js}` or `*.{ts,js}`) or a {@link RelativePattern relative pattern}.
6719
6733
  *
6720
6734
  * Glob patterns can have the following syntax:
6721
6735
  * * `*` to match one or more characters in a path segment
@@ -6729,8 +6743,8 @@ export module '@theia/plugin' {
6729
6743
 
6730
6744
  /**
6731
6745
  * A document filter denotes a document by different properties like
6732
- * the [language](#TextDocument.languageId), the [scheme](#Uri.scheme) of
6733
- * its resource, or a glob-pattern that is applied to the [path](#TextDocument.fileName).
6746
+ * the {@link TextDocument.languageId language}, the {@link Uri.scheme scheme} of
6747
+ * its resource, or a glob-pattern that is applied to the {@link TextDocument.fileName path}.
6734
6748
  *
6735
6749
  * @sample A language filter that applies to typescript files on disk: `{ language: 'typescript', scheme: 'file' }`
6736
6750
  * @sample A language filter that applies to all package.json paths: `{ language: 'json', scheme: 'untitled', pattern: '**​/package.json' }`
@@ -6740,23 +6754,23 @@ export module '@theia/plugin' {
6740
6754
  /**
6741
6755
  * A language id, like `typescript`.
6742
6756
  */
6743
- language?: string;
6757
+ readonly language?: string;
6744
6758
 
6745
6759
  /**
6746
- * A Uri [scheme](#Uri.scheme), like `file` or `untitled`.
6760
+ * A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
6747
6761
  */
6748
- scheme?: string;
6762
+ readonly scheme?: string;
6749
6763
 
6750
6764
  /**
6751
- * A [glob pattern](#GlobPattern) that is matched on the absolute path of the document. Use a [relative pattern](#RelativePattern)
6752
- * to filter documents to a [workspace folder](#WorkspaceFolder).
6765
+ * A {@link GlobPattern glob pattern} that is matched on the absolute path of the document. Use a {@link RelativePattern relative pattern}
6766
+ * to filter documents to a {@link WorkspaceFolder workspace folder}.
6753
6767
  */
6754
- pattern?: GlobPattern;
6768
+ readonly pattern?: GlobPattern;
6755
6769
  }
6756
6770
 
6757
6771
  /**
6758
6772
  * A language selector is the combination of one or many language identifiers
6759
- * and [language filters](#DocumentFilter).
6773
+ * and {@link DocumentFilter language filters}.
6760
6774
  *
6761
6775
  * *Note* that a document selector that is just a language identifier selects *all*
6762
6776
  * documents, even those that are not saved on disk. Only use such selectors when
@@ -6883,11 +6897,11 @@ export module '@theia/plugin' {
6883
6897
  /**
6884
6898
  * @deprecated Use the autoClosingPairs property in the language configuration file instead.
6885
6899
  */
6886
- __characterPairSupport?: { autoClosingPairs: { close: String, notIn: String[], open: String }[] }
6900
+ __characterPairSupport?: { autoClosingPairs: { open: string; close: string; notIn?: string[]; }[]; };
6887
6901
  /**
6888
6902
  * @deprecated Do not use. Will be replaced by a better API soon.
6889
6903
  */
6890
- __electricCharacterSupport?: { brackets: any, docComment: { close: String, lineStart: String, open: String, scope: String } }
6904
+ __electricCharacterSupport?: { brackets?: any, docComment?: { scope: string; open: string; lineStart: string; close?: string; }; };
6891
6905
  /**
6892
6906
  * The language's comment settings.
6893
6907
  */
@@ -7101,7 +7115,7 @@ export module '@theia/plugin' {
7101
7115
  }
7102
7116
 
7103
7117
  /**
7104
- * How a [completion provider](#CompletionItemProvider) was triggered
7118
+ * How a {@link CompletionItemProvider completion provider} was triggered
7105
7119
  */
7106
7120
  export enum CompletionTriggerKind {
7107
7121
  /**
@@ -7120,7 +7134,7 @@ export module '@theia/plugin' {
7120
7134
 
7121
7135
  /**
7122
7136
  * Contains additional information about the context in which
7123
- * [completion provider](#CompletionItemProvider.provideCompletionItems) is triggered.
7137
+ * {@link CompletionItemProvider.provideCompletionItems completion provider} is triggered.
7124
7138
  */
7125
7139
  export interface CompletionContext {
7126
7140
  /**
@@ -7223,7 +7237,7 @@ export module '@theia/plugin' {
7223
7237
  /**
7224
7238
  * ~~Creates a new symbol information object.~~
7225
7239
  *
7226
- * @deprecated Please use the constructor taking a [location](#Location) object.
7240
+ * @deprecated Please use the constructor taking a {@link Location location} object.
7227
7241
  *
7228
7242
  * @param name The name of the symbol.
7229
7243
  * @param kind The kind of the symbol.
@@ -7391,15 +7405,15 @@ export module '@theia/plugin' {
7391
7405
  label: string;
7392
7406
 
7393
7407
  /**
7394
- * An [edit](#TextEdit) which is applied to a document when selecting
7395
- * this presentation for the color. When `falsy` the [label](#ColorPresentation.label)
7408
+ * An {@link TextEdit edit} which is applied to a document when selecting
7409
+ * this presentation for the color. When `falsy` the {@link ColorPresentation.label label}
7396
7410
  * is used.
7397
7411
  */
7398
7412
  textEdit?: TextEdit;
7399
7413
 
7400
7414
  /**
7401
- * An optional array of additional [text edits](#TextEdit) that are applied when
7402
- * selecting this color presentation. Edits must not overlap with the main [edit](#ColorPresentation.textEdit) nor with themselves.
7415
+ * An optional array of additional {@link TextEdit text edits} that are applied when
7416
+ * selecting this color presentation. Edits must not overlap with the main {@link ColorPresentation.textEdit edit} nor with themselves.
7403
7417
  */
7404
7418
  additionalTextEdits?: TextEdit[];
7405
7419
 
@@ -7422,13 +7436,13 @@ export module '@theia/plugin' {
7422
7436
  *
7423
7437
  * @param document The document in which the command was invoked.
7424
7438
  * @param token A cancellation token.
7425
- * @return An array of [color information](#ColorInformation) or a thenable that resolves to such. The lack of a result
7439
+ * @return An array of {@link ColorInformation color information} or a thenable that resolves to such. The lack of a result
7426
7440
  * can be signaled by returning `undefined`, `null`, or an empty array.
7427
7441
  */
7428
7442
  provideDocumentColors(document: TextDocument, token: CancellationToken): ProviderResult<ColorInformation[]>;
7429
7443
 
7430
7444
  /**
7431
- * Provide [representations](#ColorPresentation) for a color.
7445
+ * Provide {@link ColorPresentation representations} for a color.
7432
7446
  *
7433
7447
  * @param color The color to show and insert.
7434
7448
  * @param context A context object with additional information
@@ -7458,10 +7472,10 @@ export module '@theia/plugin' {
7458
7472
  end: number;
7459
7473
 
7460
7474
  /**
7461
- * Describes the [Kind](#FoldingRangeKind) of the folding range such as [Comment](#FoldingRangeKind.Comment) or
7462
- * [Region](#FoldingRangeKind.Region). The kind is used to categorize folding ranges and used by commands
7475
+ * Describes the {@link FoldingRangeKind Kind} of the folding range such as {@link FoldingRangeKind.Comment Comment} or
7476
+ * {@link FoldingRangeKind.Region Region}. The kind is used to categorize folding ranges and used by commands
7463
7477
  * like 'Fold all comments'. See
7464
- * [FoldingRangeKind](#FoldingRangeKind) for an enumeration of all kinds.
7478
+ * {@link FoldingRangeKind FoldingRangeKind} for an enumeration of all kinds.
7465
7479
  * If not set, the range is originated from a syntax element.
7466
7480
  */
7467
7481
  kind?: FoldingRangeKind;
@@ -7477,7 +7491,7 @@ export module '@theia/plugin' {
7477
7491
  }
7478
7492
 
7479
7493
  /**
7480
- * An enumeration of specific folding range kinds. The kind is an optional field of a [FoldingRange](#FoldingRange)
7494
+ * An enumeration of specific folding range kinds. The kind is an optional field of a {@link FoldingRange FoldingRange}
7481
7495
  * and is used to distinguish specific folding ranges such as ranges originated from comments. The kind is used by commands like
7482
7496
  * `Fold all comments` or `Fold all regions`.
7483
7497
  * If the kind is not set on the range, the range originated from a syntax element other than comments, imports or region markers.
@@ -7605,7 +7619,7 @@ export module '@theia/plugin' {
7605
7619
  * *Note* that the eol-sequence will be applied to the
7606
7620
  * whole document.
7607
7621
  */
7608
- newEol: EndOfLine;
7622
+ newEol?: EndOfLine;
7609
7623
 
7610
7624
  /**
7611
7625
  * Create a new TextEdit.
@@ -7689,13 +7703,13 @@ export module '@theia/plugin' {
7689
7703
  /**
7690
7704
  * A completion item represents a text snippet that is proposed to complete text that is being typed.
7691
7705
  *
7692
- * It is sufficient to create a completion item from just a [label](#CompletionItem.label). In that
7693
- * case the completion item will replace the [word](#TextDocument.getWordRangeAtPosition)
7694
- * until the cursor with the given label or [insertText](#CompletionItem.insertText). Otherwise the
7695
- * the given [edit](#CompletionItem.textEdit) is used.
7706
+ * It is sufficient to create a completion item from just a {@link CompletionItem.label label}. In that
7707
+ * case the completion item will replace the {@link TextDocument.getWordRangeAtPosition word}
7708
+ * until the cursor with the given label or {@link CompletionItem.insertText insertText}. Otherwise the
7709
+ * the given {@link CompletionItem.textEdit edit} is used.
7696
7710
  *
7697
7711
  * When selecting a completion item in the editor its defined or synthesized text edit will be applied
7698
- * to *all* cursors/selections whereas [additionalTextEdits](#additionalTextEdits) will be
7712
+ * to *all* cursors/selections whereas {@link additionalTextEdits additionalTextEdits} will be
7699
7713
  * applied as provided.
7700
7714
  *
7701
7715
  * @see [CompletionItemProvider.provideCompletionItems](#CompletionItemProvider.provideCompletionItems)
@@ -7734,14 +7748,14 @@ export module '@theia/plugin' {
7734
7748
 
7735
7749
  /**
7736
7750
  * A string that should be used when comparing this item
7737
- * with other items. When `falsy` the [label](#CompletionItem.label)
7751
+ * with other items. When `falsy` the {@link CompletionItem.label label}
7738
7752
  * is used.
7739
7753
  */
7740
7754
  sortText?: string;
7741
7755
 
7742
7756
  /**
7743
7757
  * A string that should be used when filtering a set of
7744
- * completion items. When `falsy` the [label](#CompletionItem.label)
7758
+ * completion items. When `falsy` the {@link CompletionItem.label label}
7745
7759
  * is used.
7746
7760
  */
7747
7761
  filterText?: string;
@@ -7755,7 +7769,7 @@ export module '@theia/plugin' {
7755
7769
 
7756
7770
  /**
7757
7771
  * A string or snippet that should be inserted in a document when selecting
7758
- * this completion. When `falsy` the [label](#CompletionItem.label)
7772
+ * this completion. When `falsy` the {@link CompletionItem.label label}
7759
7773
  * is used.
7760
7774
  */
7761
7775
  insertText?: string | SnippetString;
@@ -7763,12 +7777,12 @@ export module '@theia/plugin' {
7763
7777
  /**
7764
7778
  * A range or a insert and replace range selecting the text that should be replaced by this completion item.
7765
7779
  *
7766
- * When omitted, the range of the [current word](#TextDocument.getWordRangeAtPosition) is used as replace-range
7767
- * and as insert-range the start of the [current word](#TextDocument.getWordRangeAtPosition) to the
7780
+ * When omitted, the range of the {@link TextDocument.getWordRangeAtPosition current word} is used as replace-range
7781
+ * and as insert-range the start of the {@link TextDocument.getWordRangeAtPosition current word} to the
7768
7782
  * current position is used.
7769
7783
  *
7770
- * *Note 1:* A range must be a [single line](#Range.isSingleLine) and it must
7771
- * [contain](#Range.contains) the position at which completion has been [requested](#CompletionItemProvider.provideCompletionItems).
7784
+ * *Note 1:* A range must be a {@link Range.isSingleLine single line} and it must
7785
+ * {@link Range.contains contain} the position at which completion has been {@link CompletionItemProvider.provideCompletionItems requested}.
7772
7786
  * *Note 2:* A insert range must be a prefix of a replace range, that means it must be contained and starting at the same position.
7773
7787
  */
7774
7788
  range?: Range | { inserting: Range; replacing: Range; };
@@ -7781,35 +7795,35 @@ export module '@theia/plugin' {
7781
7795
  commitCharacters?: string[];
7782
7796
 
7783
7797
  /**
7784
- * Keep whitespace of the [insertText](#CompletionItem.insertText) as is. By default, the editor adjusts leading
7798
+ * Keep whitespace of the {@link CompletionItem.insertText insertText} as is. By default, the editor adjusts leading
7785
7799
  * whitespace of new lines so that they match the indentation of the line for which the item is accepted - setting
7786
7800
  * this to `true` will prevent that.
7787
7801
  */
7788
7802
  keepWhitespace?: boolean;
7789
7803
 
7790
7804
  /**
7791
- * An optional array of additional [text edits](#TextEdit) that are applied when
7792
- * selecting this completion. Edits must not overlap with the main [edit](#CompletionItem.textEdit)
7805
+ * An optional array of additional {@link TextEdit text edits} that are applied when
7806
+ * selecting this completion. Edits must not overlap with the main {@link CompletionItem.textEdit edit}
7793
7807
  * nor with themselves.
7794
7808
  */
7795
7809
  additionalTextEdits?: TextEdit[];
7796
7810
 
7797
7811
  /**
7798
- * An optional [command](#Command) that is executed *after* inserting this completion. *Note* that
7812
+ * An optional {@link Command command} that is executed *after* inserting this completion. *Note* that
7799
7813
  * additional modifications to the current document should be described with the
7800
- * [additionalTextEdits](#additionalTextEdits)-property.
7814
+ * {@link additionalTextEdits additionalTextEdits}-property.
7801
7815
  */
7802
7816
  command?: Command;
7803
7817
 
7804
7818
  /**
7805
7819
  * @deprecated Use `CompletionItem.insertText` and `CompletionItem.range` instead.
7806
7820
  *
7807
- * ~~An [edit](#TextEdit) which is applied to a document when selecting
7821
+ * ~~An {@link TextEdit edit} which is applied to a document when selecting
7808
7822
  * this completion. When an edit is provided the value of
7809
- * [insertText](#CompletionItem.insertText) is ignored.~~
7823
+ * {@link CompletionItem.insertText insertText} is ignored.~~
7810
7824
  *
7811
- * ~~The [range](#Range) of the edit must be single-line and on the same
7812
- * line completions were [requested](#CompletionItemProvider.provideCompletionItems) at.~~
7825
+ * ~~The {@link Range range} of the edit must be single-line and on the same
7826
+ * line completions were {@link CompletionItemProvider.provideCompletionItems requested} at.~~
7813
7827
  */
7814
7828
  textEdit?: TextEdit;
7815
7829
 
@@ -7821,17 +7835,17 @@ export module '@theia/plugin' {
7821
7835
  /**
7822
7836
  * Creates a new completion item.
7823
7837
  *
7824
- * Completion items must have at least a [label](#CompletionItem.label) which then
7838
+ * Completion items must have at least a {@link CompletionItem.label label} which then
7825
7839
  * will be used as insert text as well as for sorting and filtering.
7826
7840
  *
7827
7841
  * @param label The label of the completion.
7828
- * @param kind The [kind](#CompletionItemKind) of the completion.
7842
+ * @param kind The {@link CompletionItemKind kind} of the completion.
7829
7843
  */
7830
7844
  constructor(label: string | CompletionItemLabel, kind?: CompletionItemKind);
7831
7845
  }
7832
7846
 
7833
7847
  /**
7834
- * Represents a collection of [completion items](#CompletionItem) to be presented
7848
+ * Represents a collection of {@link CompletionItem completion items} to be presented
7835
7849
  * in the editor.
7836
7850
  */
7837
7851
  export class CompletionList<T extends CompletionItem = CompletionItem> {
@@ -7845,7 +7859,7 @@ export module '@theia/plugin' {
7845
7859
  /**
7846
7860
  * The completion items.
7847
7861
  */
7848
- items: CompletionItem[];
7862
+ items: T[];
7849
7863
 
7850
7864
  /**
7851
7865
  * Creates a new completion list.
@@ -7853,7 +7867,7 @@ export module '@theia/plugin' {
7853
7867
  * @param items The completion items.
7854
7868
  * @param isIncomplete The list is not complete.
7855
7869
  */
7856
- constructor(items?: CompletionItem[], isIncomplete?: boolean);
7870
+ constructor(items?: T[], isIncomplete?: boolean);
7857
7871
  }
7858
7872
 
7859
7873
  /**
@@ -7878,7 +7892,7 @@ export module '@theia/plugin' {
7878
7892
  * @param token A cancellation token.
7879
7893
  * @param context How the completion was triggered.
7880
7894
  *
7881
- * @return An array of completions, a [completion list](#CompletionList), or a thenable that resolves to either.
7895
+ * @return An array of completions, a {@link CompletionList completion list}, or a thenable that resolves to either.
7882
7896
  * The lack of a result can be signaled by returning `undefined`, `null`, or an empty array.
7883
7897
  */
7884
7898
  provideCompletionItems(document: TextDocument,
@@ -7888,7 +7902,7 @@ export module '@theia/plugin' {
7888
7902
 
7889
7903
  /**
7890
7904
  * Given a completion item fill in more data, like [doc-comment](#CompletionItem.documentation)
7891
- * or [details](#CompletionItem.detail).
7905
+ * or {@link CompletionItem.detail details}.
7892
7906
  *
7893
7907
  * The editor will only resolve a completion item once.
7894
7908
  *
@@ -7947,7 +7961,7 @@ export module '@theia/plugin' {
7947
7961
  /**
7948
7962
  * An array of resources for which diagnostics have changed.
7949
7963
  */
7950
- readonly uris: Uri[];
7964
+ readonly uris: readonly Uri[];
7951
7965
  }
7952
7966
 
7953
7967
  /**
@@ -8043,7 +8057,7 @@ export module '@theia/plugin' {
8043
8057
  message: string;
8044
8058
 
8045
8059
  /**
8046
- * The severity, default is [error](#DiagnosticSeverity.Error).
8060
+ * The severity, default is {@link DiagnosticSeverity.Error error}.
8047
8061
  */
8048
8062
  severity: DiagnosticSeverity;
8049
8063
 
@@ -8056,7 +8070,7 @@ export module '@theia/plugin' {
8056
8070
  /**
8057
8071
  * A code or identifier for this diagnostics. Will not be surfaced
8058
8072
  * to the user, but should be used for later processing, e.g. when
8059
- * providing [code actions](#CodeActionContext).
8073
+ * providing {@link CodeActionContext code actions}.
8060
8074
  */
8061
8075
  code?: string | number;
8062
8076
 
@@ -8076,7 +8090,7 @@ export module '@theia/plugin' {
8076
8090
  *
8077
8091
  * @param range The range to which this diagnostic applies.
8078
8092
  * @param message The human-readable message.
8079
- * @param severity The severity, default is [error](#DiagnosticSeverity.Error).
8093
+ * @param severity The severity, default is {@link DiagnosticSeverity.Error error}.
8080
8094
  */
8081
8095
  constructor(range: Range, message: string, severity?: DiagnosticSeverity);
8082
8096
  }
@@ -8131,16 +8145,16 @@ export module '@theia/plugin' {
8131
8145
  * @param callback Function to execute for each entry.
8132
8146
  * @param thisArg The `this` context used when invoking the handler function.
8133
8147
  */
8134
- forEach(callback: (uri: Uri, diagnostics: Diagnostic[], collection: DiagnosticCollection) => any, thisArg?: any): void;
8148
+ forEach(callback: (uri: Uri, diagnostics: readonly Diagnostic[], collection: DiagnosticCollection) => any, thisArg?: any): void;
8135
8149
 
8136
8150
  /**
8137
8151
  * Get the diagnostics for a given resource. *Note* that you cannot
8138
8152
  * modify the diagnostics-array returned from this call.
8139
8153
  *
8140
8154
  * @param uri A resource identifier.
8141
- * @returns An immutable array of [diagnostics](#Diagnostic) or `undefined`.
8155
+ * @returns An immutable array of {@link Diagnostic diagnostics} or `undefined`.
8142
8156
  */
8143
- get(uri: Uri): Diagnostic[] | undefined;
8157
+ get(uri: Uri): readonly Diagnostic[] | undefined;
8144
8158
 
8145
8159
  /**
8146
8160
  * Check if this collection contains diagnostics for a
@@ -8153,7 +8167,7 @@ export module '@theia/plugin' {
8153
8167
 
8154
8168
  /**
8155
8169
  * Dispose and free associated resources. Calls
8156
- * [clear](#DiagnosticCollection.clear).
8170
+ * {@link DiagnosticCollection.clear clear}.
8157
8171
  */
8158
8172
  dispose(): void;
8159
8173
  }
@@ -8249,22 +8263,22 @@ export module '@theia/plugin' {
8249
8263
  title: string;
8250
8264
 
8251
8265
  /**
8252
- * [Diagnostics](#Diagnostic) that this code action resolves.
8266
+ * {@link Diagnostic Diagnostics} that this code action resolves.
8253
8267
  */
8254
8268
  diagnostics?: Diagnostic[];
8255
8269
 
8256
8270
  /**
8257
- * A [workspace edit](#WorkspaceEdit) this code action performs.
8271
+ * A {@link WorkspaceEdit workspace edit} this code action performs.
8258
8272
  */
8259
8273
  edit?: WorkspaceEdit;
8260
8274
 
8261
8275
  /**
8262
- * A [command](#Command) this code action executes.
8276
+ * A {@link Command command} this code action executes.
8263
8277
  */
8264
8278
  command?: Command;
8265
8279
 
8266
8280
  /**
8267
- * [Kind](#CodeActionKind) of the code action.
8281
+ * {@link CodeActionKind Kind} of the code action.
8268
8282
  *
8269
8283
  * Used to filter code actions.
8270
8284
  */
@@ -8283,8 +8297,8 @@ export module '@theia/plugin' {
8283
8297
  /**
8284
8298
  * Creates a new code action.
8285
8299
  *
8286
- * A code action must have at least a [title](#CodeAction.title) and [edits](#CodeAction.edit)
8287
- * and/or a [command](#CodeAction.command).
8300
+ * A code action must have at least a {@link CodeAction.title title} and {@link CodeAction.edit edits}
8301
+ * and/or a {@link CodeAction.command command}.
8288
8302
  *
8289
8303
  * @param title The title of the code action.
8290
8304
  * @param kind The kind of the code action.
@@ -8296,7 +8310,7 @@ export module '@theia/plugin' {
8296
8310
  * The code action interface defines the contract between extensions and
8297
8311
  * the [light bulb](https://code.visualstudio.com/docs/editor/editingevolved#_code-action) feature.
8298
8312
  *
8299
- * A code action can be any command that is [known](#commands.getCommands) to the system.
8313
+ * A code action can be any command that is {@link commands.getCommands known} to the system.
8300
8314
  */
8301
8315
  export interface CodeActionProvider<T extends CodeAction = CodeAction> {
8302
8316
  /**
@@ -8330,11 +8344,11 @@ export module '@theia/plugin' {
8330
8344
  }
8331
8345
 
8332
8346
  /**
8333
- * Metadata about the type of code actions that a [CodeActionProvider](#CodeActionProvider) providers
8347
+ * Metadata about the type of code actions that a {@link CodeActionProvider CodeActionProvider} providers
8334
8348
  */
8335
8349
  export interface CodeActionProviderMetadata {
8336
8350
  /**
8337
- * [CodeActionKinds](#CodeActionKind) that this provider may return.
8351
+ * {@link CodeActionKind CodeActionKinds} that this provider may return.
8338
8352
  *
8339
8353
  * The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the provider
8340
8354
  * may list our every specific kind they provide, such as `CodeActionKind.Refactor.Extract.append('function`)`
@@ -8350,7 +8364,7 @@ export module '@theia/plugin' {
8350
8364
  }
8351
8365
 
8352
8366
  /**
8353
- * A code lens represents a [command](#Command) that should be shown along with
8367
+ * A code lens represents a {@link Command command} that should be shown along with
8354
8368
  * source text, like the number of references, a way to run tests, etc.
8355
8369
  *
8356
8370
  * A code lens is _unresolved_ when no command is associated to it. For performance
@@ -8386,7 +8400,7 @@ export module '@theia/plugin' {
8386
8400
  }
8387
8401
 
8388
8402
  /**
8389
- * A code lens provider adds [commands](#Command) to source text. The commands will be shown
8403
+ * A code lens provider adds {@link Command commands} to source text. The commands will be shown
8390
8404
  * as dedicated horizontal lines in between the source text.
8391
8405
  */
8392
8406
  export interface CodeLensProvider<T extends CodeLens = CodeLens> {
@@ -8395,9 +8409,9 @@ export module '@theia/plugin' {
8395
8409
  */
8396
8410
  onDidChangeCodeLenses?: Event<void>;
8397
8411
  /**
8398
- * Compute a list of [lenses](#CodeLens). This call should return as fast as possible and if
8412
+ * Compute a list of {@link CodeLens lenses}. This call should return as fast as possible and if
8399
8413
  * computing the commands is expensive implementors should only return code lens objects with the
8400
- * range set and implement [resolve](#CodeLensProvider.resolveCodeLens).
8414
+ * range set and implement {@link CodeLensProvider.resolveCodeLens resolve}.
8401
8415
  *
8402
8416
  * @param document The document in which the command was invoked.
8403
8417
  * @param token A cancellation token.
@@ -8407,7 +8421,7 @@ export module '@theia/plugin' {
8407
8421
  provideCodeLenses(document: TextDocument, token: CancellationToken): ProviderResult<T[]>;
8408
8422
  /**
8409
8423
  * This function will be called for each visible code lens, usually when scrolling and after
8410
- * calls to [compute](#CodeLensProvider.provideCodeLenses)-lenses.
8424
+ * calls to {@link CodeLensProvider.provideCodeLenses compute}-lenses.
8411
8425
  *
8412
8426
  * @param codeLens code lens that must be resolved.
8413
8427
  * @param token A cancellation token.
@@ -8539,13 +8553,13 @@ export module '@theia/plugin' {
8539
8553
 
8540
8554
  /**
8541
8555
  * Contains additional diagnostic information about the context in which
8542
- * a [code action](#CodeActionProvider.provideCodeActions) is run.
8556
+ * a {@link CodeActionProvider.provideCodeActions code action} is run.
8543
8557
  */
8544
8558
  export interface CodeActionContext {
8545
8559
  /**
8546
8560
  * An array of diagnostics.
8547
8561
  */
8548
- readonly diagnostics: Diagnostic[];
8562
+ readonly diagnostics: readonly Diagnostic[];
8549
8563
 
8550
8564
  /**
8551
8565
  * Requested kind of actions to return.
@@ -8578,7 +8592,7 @@ export module '@theia/plugin' {
8578
8592
  description?: string;
8579
8593
 
8580
8594
  /**
8581
- * The icon path or [ThemeIcon](#ThemeIcon) for the edit.
8595
+ * The icon path or {@link ThemeIcon ThemeIcon} for the edit.
8582
8596
  */
8583
8597
  iconPath?: Uri | { light: Uri; dark: Uri } | ThemeIcon;
8584
8598
  }
@@ -8587,7 +8601,7 @@ export module '@theia/plugin' {
8587
8601
  * A workspace edit is a collection of textual and files changes for
8588
8602
  * multiple resources and documents.
8589
8603
  *
8590
- * Use the [applyEdit](#workspace.applyEdit)-function to apply a workspace edit.
8604
+ * Use the {@link workspace.applyEdit applyEdit}-function to apply a workspace edit.
8591
8605
  */
8592
8606
  export class WorkspaceEdit {
8593
8607
 
@@ -8832,13 +8846,13 @@ export module '@theia/plugin' {
8832
8846
  *
8833
8847
  * @param document The document in which the command was invoked.
8834
8848
  * @param token A cancellation token.
8835
- * @return An array of [document links](#DocumentLink) or a thenable that resolves to such. The lack of a result
8849
+ * @return An array of {@link DocumentLink document links} or a thenable that resolves to such. The lack of a result
8836
8850
  * can be signaled by returning `undefined`, `null`, or an empty array.
8837
8851
  */
8838
8852
  provideDocumentLinks(document: TextDocument, token: CancellationToken): ProviderResult<T[]>;
8839
8853
 
8840
8854
  /**
8841
- * Given a link fill in its [target](#DocumentLink.target). This method is called when an incomplete
8855
+ * Given a link fill in its {@link DocumentLink.target target}. This method is called when an incomplete
8842
8856
  * link is selected in the UI. Providers can implement this method and return incomplete links
8843
8857
  * (without target) from the [`provideDocumentLinks`](#DocumentLinkProvider.provideDocumentLinks) method which
8844
8858
  * often helps to improve performance.
@@ -8934,8 +8948,8 @@ export module '@theia/plugin' {
8934
8948
 
8935
8949
  /**
8936
8950
  * Represents semantic tokens, either in a range or in an entire document.
8937
- * @see [provideDocumentSemanticTokens](#DocumentSemanticTokensProvider.provideDocumentSemanticTokens) for an explanation of the format.
8938
- * @see [SemanticTokensBuilder](#SemanticTokensBuilder) for a helper to create an instance.
8951
+ * @see {@link DocumentSemanticTokensProvider.provideDocumentSemanticTokens provideDocumentSemanticTokens} for an explanation of the format.
8952
+ * @see {@link SemanticTokensBuilder} for a helper to create an instance.
8939
8953
  */
8940
8954
  export class SemanticTokens {
8941
8955
  /**
@@ -8943,10 +8957,10 @@ export module '@theia/plugin' {
8943
8957
  *
8944
8958
  * This is the id that will be passed to `DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits` (if implemented).
8945
8959
  */
8946
- readonly resultId?: string;
8960
+ readonly resultId: string | undefined;
8947
8961
  /**
8948
8962
  * The actual tokens data.
8949
- * @see [provideDocumentSemanticTokens](#DocumentSemanticTokensProvider.provideDocumentSemanticTokens) for an explanation of the format.
8963
+ * @see {@link DocumentSemanticTokensProvider.provideDocumentSemanticTokens provideDocumentSemanticTokens} for an explanation of the format.
8950
8964
  */
8951
8965
  readonly data: Uint32Array;
8952
8966
 
@@ -8955,7 +8969,7 @@ export module '@theia/plugin' {
8955
8969
 
8956
8970
  /**
8957
8971
  * Represents edits to semantic tokens.
8958
- * @see [provideDocumentSemanticTokensEdits](#DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits) for an explanation of the format.
8972
+ * @see {@link DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits provideDocumentSemanticTokensEdits} for an explanation of the format.
8959
8973
  */
8960
8974
  export class SemanticTokensEdits {
8961
8975
  /**
@@ -8963,7 +8977,7 @@ export module '@theia/plugin' {
8963
8977
  *
8964
8978
  * This is the id that will be passed to `DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits` (if implemented).
8965
8979
  */
8966
- readonly resultId?: string;
8980
+ readonly resultId: string | undefined;
8967
8981
  /**
8968
8982
  * The edits to the tokens data.
8969
8983
  * All edits refer to the initial data state.
@@ -8975,7 +8989,7 @@ export module '@theia/plugin' {
8975
8989
 
8976
8990
  /**
8977
8991
  * Represents an edit to semantic tokens.
8978
- * @see [provideDocumentSemanticTokensEdits](#DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits) for an explanation of the format.
8992
+ * @see {@link DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits provideDocumentSemanticTokensEdits} for an explanation of the format.
8979
8993
  */
8980
8994
  export class SemanticTokensEdit {
8981
8995
  /**
@@ -8989,7 +9003,7 @@ export module '@theia/plugin' {
8989
9003
  /**
8990
9004
  * The elements to insert.
8991
9005
  */
8992
- readonly data?: Uint32Array;
9006
+ readonly data: Uint32Array | undefined;
8993
9007
 
8994
9008
  constructor(start: number, deleteCount: number, data?: Uint32Array);
8995
9009
  }
@@ -9059,7 +9073,7 @@ export module '@theia/plugin' {
9059
9073
  * [ 2,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ]
9060
9074
  * ```
9061
9075
  *
9062
- * @see [SemanticTokensBuilder](#SemanticTokensBuilder) for a helper to encode tokens as integers.
9076
+ * @see {@link SemanticTokensBuilder SemanticTokensBuilder} for a helper to encode tokens as integers.
9063
9077
  * *NOTE*: When doing edits, it is possible that multiple edits occur until VS Code decides to invoke the semantic tokens provider.
9064
9078
  * *NOTE*: If the provider cannot temporarily compute semantic tokens, it can indicate this by throwing an error with the message 'Busy'.
9065
9079
  */
@@ -9103,7 +9117,7 @@ export module '@theia/plugin' {
9103
9117
  */
9104
9118
  export interface DocumentRangeSemanticTokensProvider {
9105
9119
  /**
9106
- * @see [provideDocumentSemanticTokens](#DocumentSemanticTokensProvider.provideDocumentSemanticTokens).
9120
+ * @see {@link DocumentSemanticTokensProvider.provideDocumentSemanticTokens provideDocumentSemanticTokens}.
9107
9121
  */
9108
9122
  provideDocumentRangeSemanticTokens(document: TextDocument, range: Range, token: CancellationToken): ProviderResult<SemanticTokens>;
9109
9123
  }
@@ -9116,7 +9130,7 @@ export module '@theia/plugin' {
9116
9130
  export function getLanguages(): Thenable<string[]>;
9117
9131
 
9118
9132
  /**
9119
- * Set (and change) the [language](#TextDocument.languageId) that is associated
9133
+ * Set (and change) the {@link TextDocument.languageId language} that is associated
9120
9134
  * with the given document.
9121
9135
  *
9122
9136
  * *Note* that calling this function will trigger the [`onDidCloseTextDocument`](#workspace.onDidCloseTextDocument) event
@@ -9129,7 +9143,7 @@ export module '@theia/plugin' {
9129
9143
  export function setTextDocumentLanguage(document: TextDocument, languageId: string): Thenable<TextDocument>;
9130
9144
 
9131
9145
  /**
9132
- * Compute the match between a document [selector](#DocumentSelector) and a document. Values
9146
+ * Compute the match between a document {@link DocumentSelector selector} and a document. Values
9133
9147
  * greater than zero mean the selector matches the document.
9134
9148
  *
9135
9149
  * A match is computed according to these rules:
@@ -9168,7 +9182,7 @@ export module '@theia/plugin' {
9168
9182
  export function match(selector: DocumentSelector, document: TextDocument): number;
9169
9183
 
9170
9184
  /**
9171
- * An [event](#Event) which fires when the global set of diagnostics changes. This is
9185
+ * An {@link Event event} which fires when the global set of diagnostics changes. This is
9172
9186
  * newly added and removed diagnostics.
9173
9187
  */
9174
9188
  export const onDidChangeDiagnostics: Event<DiagnosticChangeEvent>;
@@ -9178,7 +9192,7 @@ export module '@theia/plugin' {
9178
9192
  * all extensions but *not yet* from the task framework.
9179
9193
  *
9180
9194
  * @param resource A resource
9181
- * @returns An array of [diagnostics](#Diagnostic) objects or an empty array.
9195
+ * @returns An array of {@link Diagnostic diagnostics} objects or an empty array.
9182
9196
  */
9183
9197
  export function getDiagnostics(resource: Uri): Diagnostic[];
9184
9198
 
@@ -9193,17 +9207,17 @@ export module '@theia/plugin' {
9193
9207
  /**
9194
9208
  * Create a diagnostics collection.
9195
9209
  *
9196
- * @param name The [name](#DiagnosticCollection.name) of the collection.
9210
+ * @param name The {@link DiagnosticCollection.name name} of the collection.
9197
9211
  * @return A new diagnostic collection.
9198
9212
  */
9199
9213
  export function createDiagnosticCollection(name?: string): DiagnosticCollection;
9200
9214
 
9201
9215
  /**
9202
- * Set a [language configuration](#LanguageConfiguration) for a language.
9216
+ * Set a {@link LanguageConfiguration language configuration} for a language.
9203
9217
  *
9204
9218
  * @param language A language identifier like `typescript`.
9205
9219
  * @param configuration Language configuration.
9206
- * @return A [disposable](#Disposable) that unsets this configuration.
9220
+ * @return A {@link Disposable disposable} that unsets this configuration.
9207
9221
  */
9208
9222
  export function setLanguageConfiguration(language: string, configuration: LanguageConfiguration): Disposable;
9209
9223
 
@@ -9211,7 +9225,7 @@ export module '@theia/plugin' {
9211
9225
  * Register a completion provider.
9212
9226
  *
9213
9227
  * Multiple providers can be registered for a language. In that case providers are sorted
9214
- * by their [score](#languages.match) and groups of equal score are sequentially asked for
9228
+ * by their {@link languages.match score} and groups of equal score are sequentially asked for
9215
9229
  * completion items. The process stops when one or many providers of a group return a
9216
9230
  * result. A failing provider (rejected promise or exception) will not fail the whole
9217
9231
  * operation.
@@ -9219,7 +9233,7 @@ export module '@theia/plugin' {
9219
9233
  * @param selector A selector that defines the documents this provider is applicable to.
9220
9234
  * @param provider A completion provider.
9221
9235
  * @param triggerCharacters Trigger completion when the user types one of the characters, like `.` or `:`.
9222
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9236
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9223
9237
  */
9224
9238
  export function registerCompletionItemProvider(selector: DocumentSelector, provider: CompletionItemProvider, ...triggerCharacters: string[]): Disposable;
9225
9239
 
@@ -9232,7 +9246,7 @@ export module '@theia/plugin' {
9232
9246
  *
9233
9247
  * @param selector A selector that defines the documents this provider is applicable to.
9234
9248
  * @param provider A definition provider.
9235
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9249
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9236
9250
  */
9237
9251
  export function registerDefinitionProvider(selector: DocumentSelector, provider: DefinitionProvider): Disposable;
9238
9252
 
@@ -9245,7 +9259,7 @@ export module '@theia/plugin' {
9245
9259
  *
9246
9260
  * @param selector A selector that defines the documents this provider is applicable to.
9247
9261
  * @param provider A declaration provider.
9248
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9262
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9249
9263
  */
9250
9264
  export function registerDeclarationProvider(selector: DocumentSelector, provider: DeclarationProvider): Disposable;
9251
9265
 
@@ -9253,14 +9267,14 @@ export module '@theia/plugin' {
9253
9267
  * Register a signature help provider.
9254
9268
  *
9255
9269
  * Multiple providers can be registered for a language. In that case providers are sorted
9256
- * by their [score](#languages.match) and called sequentially until a provider returns a
9270
+ * by their {@link languages.match score} and called sequentially until a provider returns a
9257
9271
  * valid result.
9258
9272
  *
9259
9273
  * @param selector A selector that defines the documents this provider is applicable to.
9260
9274
  * @param provider A signature help provider.
9261
9275
  * @param triggerCharacters Trigger signature help when the user types one of the characters, like `,` or `(`.
9262
9276
  * @param metadata Information about the provider.
9263
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9277
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9264
9278
  */
9265
9279
  export function registerSignatureHelpProvider(selector: DocumentSelector, provider: SignatureHelpProvider, ...triggerCharacters: string[]): Disposable;
9266
9280
  export function registerSignatureHelpProvider(selector: DocumentSelector, provider: SignatureHelpProvider, metadata: SignatureHelpProviderMetadata): Disposable;
@@ -9274,7 +9288,7 @@ export module '@theia/plugin' {
9274
9288
  *
9275
9289
  * @param selector A selector that defines the documents this provider is applicable to.
9276
9290
  * @param provider A type definition provider.
9277
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9291
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9278
9292
  */
9279
9293
  export function registerTypeDefinitionProvider(selector: DocumentSelector, provider: TypeDefinitionProvider): Disposable;
9280
9294
 
@@ -9287,7 +9301,7 @@ export module '@theia/plugin' {
9287
9301
  *
9288
9302
  * @param selector A selector that defines the documents this provider is applicable to.
9289
9303
  * @param provider An implementation provider.
9290
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9304
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9291
9305
  */
9292
9306
  export function registerImplementationProvider(selector: DocumentSelector, provider: ImplementationProvider): Disposable;
9293
9307
 
@@ -9300,7 +9314,7 @@ export module '@theia/plugin' {
9300
9314
  *
9301
9315
  * @param selector A selector that defines the documents this provider is applicable to.
9302
9316
  * @param provider A hover provider.
9303
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9317
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9304
9318
  */
9305
9319
  export function registerHoverProvider(selector: DocumentSelector, provider: HoverProvider): Disposable;
9306
9320
 
@@ -9324,7 +9338,7 @@ export module '@theia/plugin' {
9324
9338
  * not cause a failure of the whole operation.
9325
9339
  *
9326
9340
  * @param provider A workspace symbol provider.
9327
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9341
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9328
9342
  */
9329
9343
  export function registerWorkspaceSymbolProvider(provider: WorkspaceSymbolProvider): Disposable;
9330
9344
 
@@ -9332,12 +9346,12 @@ export module '@theia/plugin' {
9332
9346
  * Register a document highlight provider.
9333
9347
  *
9334
9348
  * Multiple providers can be registered for a language. In that case providers are sorted
9335
- * by their [score](#languages.match) and groups sequentially asked for document highlights.
9349
+ * by their {@link languages.match score} and groups sequentially asked for document highlights.
9336
9350
  * The process stops when a provider returns a `non-falsy` or `non-failure` result.
9337
9351
  *
9338
9352
  * @param selector A selector that defines the documents this provider is applicable to.
9339
9353
  * @param provider A document highlight provider.
9340
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9354
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9341
9355
  */
9342
9356
  export function registerDocumentHighlightProvider(selector: DocumentSelector, provider: DocumentHighlightProvider): Disposable;
9343
9357
 
@@ -9345,29 +9359,29 @@ export module '@theia/plugin' {
9345
9359
  * Register a formatting provider for a document.
9346
9360
  *
9347
9361
  * Multiple providers can be registered for a language. In that case providers are sorted
9348
- * by their [score](#languages.match) and the best-matching provider is used. Failure
9362
+ * by their {@link languages.match score} and the best-matching provider is used. Failure
9349
9363
  * of the selected provider will cause a failure of the whole operation.
9350
9364
  *
9351
9365
  * @param selector A selector that defines the documents this provider is applicable to.
9352
9366
  * @param provider A document formatting edit provider.
9353
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9367
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9354
9368
  */
9355
9369
  export function registerDocumentFormattingEditProvider(selector: DocumentSelector, provider: DocumentFormattingEditProvider): Disposable;
9356
9370
 
9357
9371
  /**
9358
9372
  * Register a formatting provider for a document range.
9359
9373
  *
9360
- * *Note:* A document range provider is also a [document formatter](#DocumentFormattingEditProvider)
9361
- * which means there is no need to [register](#registerDocumentFormattingEditProvider) a document
9374
+ * *Note:* A document range provider is also a {@link DocumentFormattingEditProvider document formatter}
9375
+ * which means there is no need to {@link registerDocumentFormattingEditProvider register} a document
9362
9376
  * formatter when also registering a range provider.
9363
9377
  *
9364
9378
  * Multiple providers can be registered for a language. In that case providers are sorted
9365
- * by their [score](#languages.match) and the best-matching provider is used. Failure
9379
+ * by their {@link languages.match score} and the best-matching provider is used. Failure
9366
9380
  * of the selected provider will cause a failure of the whole operation.
9367
9381
  *
9368
9382
  * @param selector A selector that defines the documents this provider is applicable to.
9369
9383
  * @param provider A document range formatting edit provider.
9370
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9384
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9371
9385
  */
9372
9386
  export function registerDocumentRangeFormattingEditProvider(selector: DocumentSelector, provider: DocumentRangeFormattingEditProvider): Disposable;
9373
9387
 
@@ -9381,7 +9395,7 @@ export module '@theia/plugin' {
9381
9395
  * @param selector A selector that defines the documents this provider is applicable to.
9382
9396
  * @param provider A code action provider.
9383
9397
  * @param metadata Metadata about the kind of code actions the provider providers.
9384
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9398
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9385
9399
  */
9386
9400
  export function registerCodeActionsProvider(selector: DocumentSelector, provider: CodeActionProvider, metadata?: CodeActionProviderMetadata): Disposable;
9387
9401
 
@@ -9394,7 +9408,7 @@ export module '@theia/plugin' {
9394
9408
  *
9395
9409
  * @param selector A selector that defines the documents this provider is applicable to.
9396
9410
  * @param provider A code lens provider.
9397
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9411
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9398
9412
  */
9399
9413
  export function registerCodeLensProvider(selector: DocumentSelector, provider: CodeLensProvider): Disposable;
9400
9414
 
@@ -9402,14 +9416,14 @@ export module '@theia/plugin' {
9402
9416
  * Register a formatting provider that works on type. The provider is active when the user enables the setting `editor.formatOnType`.
9403
9417
  *
9404
9418
  * Multiple providers can be registered for a language. In that case providers are sorted
9405
- * by their [score](#languages.match) and the best-matching provider is used. Failure
9419
+ * by their {@link languages.match score} and the best-matching provider is used. Failure
9406
9420
  * of the selected provider will cause a failure of the whole operation.
9407
9421
  *
9408
9422
  * @param selector A selector that defines the documents this provider is applicable to.
9409
9423
  * @param provider An on type formatting edit provider.
9410
9424
  * @param firstTriggerCharacter A character on which formatting should be triggered, like `}`.
9411
9425
  * @param moreTriggerCharacter More trigger characters.
9412
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9426
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9413
9427
  */
9414
9428
  export function registerOnTypeFormattingEditProvider(
9415
9429
  selector: DocumentSelector,
@@ -9427,7 +9441,7 @@ export module '@theia/plugin' {
9427
9441
  *
9428
9442
  * @param selector A selector that defines the documents this provider is applicable to.
9429
9443
  * @param provider A document link provider.
9430
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9444
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9431
9445
  */
9432
9446
  export function registerDocumentLinkProvider(selector: DocumentSelector, provider: DocumentLinkProvider): Disposable;
9433
9447
 
@@ -9440,7 +9454,7 @@ export module '@theia/plugin' {
9440
9454
  *
9441
9455
  * @param selector A selector that defines the documents this provider is applicable to.
9442
9456
  * @param provider A reference provider.
9443
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9457
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9444
9458
  */
9445
9459
  export function registerReferenceProvider(selector: DocumentSelector, provider: ReferenceProvider): Disposable;
9446
9460
 
@@ -9468,7 +9482,7 @@ export module '@theia/plugin' {
9468
9482
  *
9469
9483
  * @param selector A selector that defines the documents this provider is applicable to.
9470
9484
  * @param provider A color provider.
9471
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9485
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9472
9486
  */
9473
9487
  export function registerColorProvider(selector: DocumentSelector, provider: DocumentColorProvider): Disposable;
9474
9488
 
@@ -9485,7 +9499,7 @@ export module '@theia/plugin' {
9485
9499
  *
9486
9500
  * @param selector A selector that defines the documents this provider is applicable to.
9487
9501
  * @param provider A folding range provider.
9488
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9502
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9489
9503
  */
9490
9504
  export function registerFoldingRangeProvider(selector: DocumentSelector, provider: FoldingRangeProvider): Disposable;
9491
9505
 
@@ -9498,7 +9512,7 @@ export module '@theia/plugin' {
9498
9512
  *
9499
9513
  * @param selector A selector that defines the documents this provider is applicable to.
9500
9514
  * @param provider A selection range provider.
9501
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9515
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9502
9516
  */
9503
9517
  export function registerSelectionRangeProvider(selector: DocumentSelector, provider: SelectionRangeProvider): Disposable;
9504
9518
 
@@ -9506,12 +9520,12 @@ export module '@theia/plugin' {
9506
9520
  * Register a reference provider.
9507
9521
  *
9508
9522
  * Multiple providers can be registered for a language. In that case providers are sorted
9509
- * by their [score](#languages.match) and the best-matching provider is used. Failure
9523
+ * by their {@link languages.match score} and the best-matching provider is used. Failure
9510
9524
  * of the selected provider will cause a failure of the whole operation.
9511
9525
  *
9512
9526
  * @param selector A selector that defines the documents this provider is applicable to.
9513
9527
  * @param provider A rename provider.
9514
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9528
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9515
9529
  */
9516
9530
  export function registerRenameProvider(selector: DocumentSelector, provider: RenameProvider): Disposable;
9517
9531
 
@@ -9519,12 +9533,12 @@ export module '@theia/plugin' {
9519
9533
  * Register a semantic tokens provider for a whole document.
9520
9534
  *
9521
9535
  * Multiple providers can be registered for a language. In that case providers are sorted
9522
- * by their [score](#languages.match) and the best-matching provider is used. Failure
9536
+ * by their {@link languages.match score} and the best-matching provider is used. Failure
9523
9537
  * of the selected provider will cause a failure of the whole operation.
9524
9538
  *
9525
9539
  * @param selector A selector that defines the documents this provider is applicable to.
9526
9540
  * @param provider A document semantic tokens provider.
9527
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9541
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9528
9542
  */
9529
9543
  export function registerDocumentSemanticTokensProvider(selector: DocumentSelector, provider: DocumentSemanticTokensProvider, legend: SemanticTokensLegend): Disposable;
9530
9544
 
@@ -9538,12 +9552,12 @@ export module '@theia/plugin' {
9538
9552
  * will be used.
9539
9553
  *
9540
9554
  * Multiple providers can be registered for a language. In that case providers are sorted
9541
- * by their [score](#languages.match) and the best-matching provider is used. Failure
9555
+ * by their {@link languages.match score} and the best-matching provider is used. Failure
9542
9556
  * of the selected provider will cause a failure of the whole operation.
9543
9557
  *
9544
9558
  * @param selector A selector that defines the documents this provider is applicable to.
9545
9559
  * @param provider A document range semantic tokens provider.
9546
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9560
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9547
9561
  */
9548
9562
  export function registerDocumentRangeSemanticTokensProvider(selector: DocumentSelector, provider: DocumentRangeSemanticTokensProvider, legend: SemanticTokensLegend): Disposable;
9549
9563
 
@@ -9556,7 +9570,7 @@ export module '@theia/plugin' {
9556
9570
  *
9557
9571
  * @param selector A selector that defines the documents this provider is applicable to.
9558
9572
  * @param service A call hierarchy provider.
9559
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9573
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9560
9574
  */
9561
9575
  export function registerCallHierarchyProvider(selector: DocumentSelector, provider: CallHierarchyProvider): Disposable;
9562
9576
 
@@ -9591,7 +9605,7 @@ export module '@theia/plugin' {
9591
9605
  /**
9592
9606
  * The contents of this hover.
9593
9607
  */
9594
- contents: MarkedString[];
9608
+ contents: Array<MarkdownString | MarkedString>;
9595
9609
 
9596
9610
  /**
9597
9611
  * The range to which this hover applies. When missing, the
@@ -9711,7 +9725,7 @@ export module '@theia/plugin' {
9711
9725
  range: Range;
9712
9726
 
9713
9727
  /**
9714
- * The highlight kind, default is [text](#DocumentHighlightKind.Text).
9728
+ * The highlight kind, default is {@link DocumentHighlightKind.Text text}.
9715
9729
  */
9716
9730
  kind?: DocumentHighlightKind;
9717
9731
 
@@ -9719,7 +9733,7 @@ export module '@theia/plugin' {
9719
9733
  * Creates a new document highlight object.
9720
9734
  *
9721
9735
  * @param range The range the highlight applies to.
9722
- * @param kind The highlight kind, default is [text](#DocumentHighlightKind.Text).
9736
+ * @param kind The highlight kind, default is {@link DocumentHighlightKind.Text text}.
9723
9737
  */
9724
9738
  constructor(range: Range, kind?: DocumentHighlightKind);
9725
9739
  }
@@ -9767,7 +9781,7 @@ export module '@theia/plugin' {
9767
9781
  interface QuickDiffProvider {
9768
9782
 
9769
9783
  /**
9770
- * Provide a [uri](#Uri) to the original resource of any given resource uri.
9784
+ * Provide a {@link Uri uri} to the original resource of any given resource uri.
9771
9785
  *
9772
9786
  * @param uri The uri of the resource open in a text editor.
9773
9787
  * @param token A cancellation token.
@@ -9778,38 +9792,38 @@ export module '@theia/plugin' {
9778
9792
 
9779
9793
  /**
9780
9794
  * The theme-aware decorations for a
9781
- * [source control resource state](#SourceControlResourceState).
9795
+ * {@link SourceControlResourceState source control resource state}.
9782
9796
  */
9783
9797
  export interface SourceControlResourceThemableDecorations {
9784
9798
 
9785
9799
  /**
9786
9800
  * The icon path for a specific
9787
- * [source control resource state](#SourceControlResourceState).
9801
+ * {@link SourceControlResourceState source control resource state}.
9788
9802
  */
9789
9803
  readonly iconPath?: string | Uri;
9790
9804
  }
9791
9805
 
9792
9806
  /**
9793
- * The decorations for a [source control resource state](#SourceControlResourceState).
9807
+ * The decorations for a {@link SourceControlResourceState source control resource state}.
9794
9808
  * Can be independently specified for light and dark themes.
9795
9809
  */
9796
9810
  export interface SourceControlResourceDecorations extends SourceControlResourceThemableDecorations {
9797
9811
 
9798
9812
  /**
9799
- * Whether the [source control resource state](#SourceControlResourceState) should
9813
+ * Whether the {@link SourceControlResourceState source control resource state} should
9800
9814
  * be striked-through in the UI.
9801
9815
  */
9802
9816
  readonly strikeThrough?: boolean;
9803
9817
 
9804
9818
  /**
9805
- * Whether the [source control resource state](#SourceControlResourceState) should
9819
+ * Whether the {@link SourceControlResourceState source control resource state} should
9806
9820
  * be faded in the UI.
9807
9821
  */
9808
9822
  readonly faded?: boolean;
9809
9823
 
9810
9824
  /**
9811
9825
  * The title for a specific
9812
- * [source control resource state](#SourceControlResourceState).
9826
+ * {@link SourceControlResourceState source control resource state}.
9813
9827
  */
9814
9828
  readonly tooltip?: string;
9815
9829
 
@@ -9826,23 +9840,23 @@ export module '@theia/plugin' {
9826
9840
 
9827
9841
  /**
9828
9842
  * An source control resource state represents the state of an underlying workspace
9829
- * resource within a certain [source control group](#SourceControlResourceGroup).
9843
+ * resource within a certain {@link SourceControlResourceGroup source control group}.
9830
9844
  */
9831
9845
  export interface SourceControlResourceState {
9832
9846
 
9833
9847
  /**
9834
- * The [uri](#Uri) of the underlying resource inside the workspace.
9848
+ * The {@link Uri uri} of the underlying resource inside the workspace.
9835
9849
  */
9836
9850
  readonly resourceUri: Uri;
9837
9851
 
9838
9852
  /**
9839
- * The [command](#Command) which should be run when the resource
9853
+ * The {@link Command command} which should be run when the resource
9840
9854
  * state is open in the Source Control viewlet.
9841
9855
  */
9842
9856
  readonly command?: Command;
9843
9857
 
9844
9858
  /**
9845
- * The [decorations](#SourceControlResourceDecorations) for this source control
9859
+ * The {@link SourceControlResourceDecorations decorations} for this source control
9846
9860
  * resource state.
9847
9861
  */
9848
9862
  readonly decorations?: SourceControlResourceDecorations;
@@ -9870,7 +9884,7 @@ export module '@theia/plugin' {
9870
9884
 
9871
9885
  /**
9872
9886
  * A source control resource group is a collection of
9873
- * [source control resource states](#SourceControlResourceState).
9887
+ * {@link SourceControlResourceState source control resource states}.
9874
9888
  */
9875
9889
  export interface SourceControlResourceGroup {
9876
9890
 
@@ -9886,13 +9900,13 @@ export module '@theia/plugin' {
9886
9900
 
9887
9901
  /**
9888
9902
  * Whether this source control resource group is hidden when it contains
9889
- * no [source control resource states](#SourceControlResourceState).
9903
+ * no {@link SourceControlResourceState source control resource states}.
9890
9904
  */
9891
9905
  hideWhenEmpty?: boolean;
9892
9906
 
9893
9907
  /**
9894
9908
  * This group's collection of
9895
- * [source control resource states](#SourceControlResourceState).
9909
+ * {@link SourceControlResourceState source control resource states}.
9896
9910
  */
9897
9911
  resourceStates: SourceControlResourceState[];
9898
9912
 
@@ -9903,7 +9917,7 @@ export module '@theia/plugin' {
9903
9917
  }
9904
9918
 
9905
9919
  /**
9906
- * An source control is able to provide [resource states](#SourceControlResourceState)
9920
+ * An source control is able to provide {@link SourceControlResourceState resource states}
9907
9921
  * to the editor and interact with the editor in several source control related ways.
9908
9922
  */
9909
9923
  export interface SourceControl {
@@ -9924,21 +9938,21 @@ export module '@theia/plugin' {
9924
9938
  readonly rootUri: Uri | undefined;
9925
9939
 
9926
9940
  /**
9927
- * The [input box](#SourceControlInputBox) for this source control.
9941
+ * The {@link SourceControlInputBox input box} for this source control.
9928
9942
  */
9929
9943
  readonly inputBox: SourceControlInputBox;
9930
9944
 
9931
9945
  /**
9932
- * The UI-visible count of [resource states](#SourceControlResourceState) of
9946
+ * The UI-visible count of {@link SourceControlResourceState resource states} of
9933
9947
  * this source control.
9934
9948
  *
9935
- * Equals to the total number of [resource state](#SourceControlResourceState)
9949
+ * Equals to the total number of {@link SourceControlResourceState resource state}
9936
9950
  * of this source control, if undefined.
9937
9951
  */
9938
9952
  count?: number;
9939
9953
 
9940
9954
  /**
9941
- * An optional [quick diff provider](#QuickDiffProvider).
9955
+ * An optional {@link QuickDiffProvider quick diff provider}.
9942
9956
  */
9943
9957
  quickDiffProvider?: QuickDiffProvider;
9944
9958
 
@@ -9966,7 +9980,7 @@ export module '@theia/plugin' {
9966
9980
  statusBarCommands?: Command[];
9967
9981
 
9968
9982
  /**
9969
- * Create a new [resource group](#SourceControlResourceGroup).
9983
+ * Create a new {@link SourceControlResourceGroup resource group}.
9970
9984
  */
9971
9985
  createResourceGroup(id: string, label: string): SourceControlResourceGroup;
9972
9986
 
@@ -9979,7 +9993,7 @@ export module '@theia/plugin' {
9979
9993
  export namespace scm {
9980
9994
 
9981
9995
  /**
9982
- * ~~The [input box](#SourceControlInputBox) for the last source control
9996
+ * ~~The {@link SourceControlInputBox input box} for the last source control
9983
9997
  * created by the extension.~~
9984
9998
  *
9985
9999
  * @deprecated Use SourceControl.inputBox instead
@@ -9987,12 +10001,12 @@ export module '@theia/plugin' {
9987
10001
  export const inputBox: SourceControlInputBox;
9988
10002
 
9989
10003
  /**
9990
- * Creates a new [source control](#SourceControl) instance.
10004
+ * Creates a new {@link SourceControl source control} instance.
9991
10005
  *
9992
10006
  * @param id An `id` for the source control. Something short, eg: `git`.
9993
10007
  * @param label A human-readable string for the source control. Eg: `Git`.
9994
10008
  * @param rootUri An optional Uri of the root of the source control. Eg: `Uri.parse(workspaceRoot)`.
9995
- * @return An instance of [source control](#SourceControl).
10009
+ * @return An instance of {@link SourceControl source control}.
9996
10010
  */
9997
10011
  export function createSourceControl(id: string, label: string, rootUri?: Uri): SourceControl;
9998
10012
  }
@@ -10054,12 +10068,12 @@ export module '@theia/plugin' {
10054
10068
  readonly id: string;
10055
10069
 
10056
10070
  /**
10057
- * The debug session's type from the [debug configuration](#DebugConfiguration).
10071
+ * The debug session's type from the {@link DebugConfiguration debug configuration}.
10058
10072
  */
10059
10073
  readonly type: string;
10060
10074
 
10061
10075
  /**
10062
- * The debug session's name from the [debug configuration](#DebugConfiguration).
10076
+ * The debug session's name from the {@link DebugConfiguration debug configuration}.
10063
10077
  */
10064
10078
  readonly name: string;
10065
10079
 
@@ -10069,7 +10083,7 @@ export module '@theia/plugin' {
10069
10083
  readonly workspaceFolder: WorkspaceFolder | undefined;
10070
10084
 
10071
10085
  /**
10072
- * The "resolved" [debug configuration](#DebugConfiguration) of this session.
10086
+ * The "resolved" {@link DebugConfiguration debug configuration} of this session.
10073
10087
  */
10074
10088
  readonly configuration: DebugConfiguration;
10075
10089
 
@@ -10089,23 +10103,23 @@ export module '@theia/plugin' {
10089
10103
  }
10090
10104
 
10091
10105
  /**
10092
- * A custom Debug Adapter Protocol event received from a [debug session](#DebugSession).
10106
+ * A custom Debug Adapter Protocol event received from a {@link DebugSession debug session}.
10093
10107
  */
10094
10108
  export interface DebugSessionCustomEvent {
10095
10109
  /**
10096
- * The [debug session](#DebugSession) for which the custom event was received.
10110
+ * The {@link DebugSession debug session} for which the custom event was received.
10097
10111
  */
10098
- session: DebugSession;
10112
+ readonly session: DebugSession;
10099
10113
 
10100
10114
  /**
10101
10115
  * Type of event.
10102
10116
  */
10103
- event: string;
10117
+ readonly event: string;
10104
10118
 
10105
10119
  /**
10106
10120
  * Event specific information.
10107
10121
  */
10108
- body?: any;
10122
+ readonly body?: any;
10109
10123
  }
10110
10124
 
10111
10125
  /**
@@ -10147,7 +10161,7 @@ export module '@theia/plugin' {
10147
10161
  */
10148
10162
  export interface DebugConfigurationProvider {
10149
10163
  /**
10150
- * Provides initial [debug configuration](#DebugConfiguration). If more than one debug configuration provider is
10164
+ * Provides initial {@link DebugConfiguration debug configuration}. If more than one debug configuration provider is
10151
10165
  * registered for the same type, debug configurations are concatenated in arbitrary order.
10152
10166
  *
10153
10167
  * @param folder The workspace folder for which the configurations are used or undefined for a folderless setup.
@@ -10157,14 +10171,14 @@ export module '@theia/plugin' {
10157
10171
  provideDebugConfigurations?(folder: WorkspaceFolder | undefined, token?: CancellationToken): ProviderResult<DebugConfiguration[]>;
10158
10172
 
10159
10173
  /**
10160
- * Resolves a [debug configuration](#DebugConfiguration) by filling in missing values or by adding/changing/removing attributes.
10174
+ * Resolves a {@link DebugConfiguration debug configuration} by filling in missing values or by adding/changing/removing attributes.
10161
10175
  * If more than one debug configuration provider is registered for the same type, the resolveDebugConfiguration calls are chained
10162
10176
  * in arbitrary order and the initial debug configuration is piped through the chain.
10163
10177
  * Returning the value 'undefined' prevents the debug session from starting.
10164
10178
  * Returning the value 'null' prevents the debug session from starting and opens the underlying debug configuration instead.
10165
10179
  *
10166
10180
  * @param folder The workspace folder from which the configuration originates from or undefined for a folderless setup.
10167
- * @param debugConfiguration The [debug configuration](#DebugConfiguration) to resolve.
10181
+ * @param debugConfiguration The {@link DebugConfiguration debug configuration} to resolve.
10168
10182
  * @param token A cancellation token.
10169
10183
  * @return The resolved debug configuration or undefined or null.
10170
10184
  */
@@ -10172,14 +10186,14 @@ export module '@theia/plugin' {
10172
10186
 
10173
10187
  /**
10174
10188
  * This hook is directly called after 'resolveDebugConfiguration' but with all variables substituted.
10175
- * It can be used to resolve or verify a [debug configuration](#DebugConfiguration) by filling in missing values or by adding/changing/removing attributes.
10189
+ * It can be used to resolve or verify a {@link DebugConfiguration debug configuration} by filling in missing values or by adding/changing/removing attributes.
10176
10190
  * If more than one debug configuration provider is registered for the same type, the 'resolveDebugConfigurationWithSubstitutedVariables' calls are chained
10177
10191
  * in arbitrary order and the initial debug configuration is piped through the chain.
10178
10192
  * Returning the value 'undefined' prevents the debug session from starting.
10179
10193
  * Returning the value 'null' prevents the debug session from starting and opens the underlying debug configuration instead.
10180
10194
  *
10181
10195
  * @param folder The workspace folder from which the configuration originates from or `undefined` for a folderless setup.
10182
- * @param debugConfiguration The [debug configuration](#DebugConfiguration) to resolve.
10196
+ * @param debugConfiguration The {@link DebugConfiguration debug configuration} to resolve.
10183
10197
  * @param token A cancellation token.
10184
10198
  * @return The resolved debug configuration or undefined or null.
10185
10199
  */
@@ -10221,8 +10235,8 @@ export module '@theia/plugin' {
10221
10235
  * The method 'createDebugAdapterTracker' is called at the start of a debug session in order
10222
10236
  * to return a "tracker" object that provides read-access to the communication between VS Code and a debug adapter.
10223
10237
  *
10224
- * @param session The [debug session](#DebugSession) for which the debug adapter tracker will be used.
10225
- * @return A [debug adapter tracker](#DebugAdapterTracker) or undefined.
10238
+ * @param session The {@link DebugSession debug session} for which the debug adapter tracker will be used.
10239
+ * @return A {@link DebugAdapterTracker debug adapter tracker} or undefined.
10226
10240
  */
10227
10241
  createDebugAdapterTracker(session: DebugSession): ProviderResult<DebugAdapterTracker>;
10228
10242
  }
@@ -10350,10 +10364,10 @@ export module '@theia/plugin' {
10350
10364
  export interface DebugAdapterDescriptorFactory {
10351
10365
  /**
10352
10366
  * 'createDebugAdapterDescriptor' is called at the start of a debug session to provide details about the debug adapter to use.
10353
- * These details must be returned as objects of type [DebugAdapterDescriptor](#DebugAdapterDescriptor).
10367
+ * These details must be returned as objects of type {@link DebugAdapterDescriptor DebugAdapterDescriptor}.
10354
10368
  * Currently two types of debug adapters are supported:
10355
- * - a debug adapter executable is specified as a command path and arguments (see [DebugAdapterExecutable](#DebugAdapterExecutable)),
10356
- * - a debug adapter server reachable via a communication port (see [DebugAdapterServer](#DebugAdapterServer)).
10369
+ * - a debug adapter executable is specified as a command path and arguments (see {@link DebugAdapterExecutable DebugAdapterExecutable}),
10370
+ * - a debug adapter server reachable via a communication port (see {@link DebugAdapterServer DebugAdapterServer}).
10357
10371
  * If the method is not implemented the default behavior is this:
10358
10372
  * createDebugAdapter(session: DebugSession, executable: DebugAdapterExecutable) {
10359
10373
  * if (typeof session.configuration.debugServer === 'number') {
@@ -10361,9 +10375,9 @@ export module '@theia/plugin' {
10361
10375
  * }
10362
10376
  * return executable;
10363
10377
  * }
10364
- * @param session The [debug session](#DebugSession) for which the debug adapter will be used.
10378
+ * @param session The {@link DebugSession debug session} for which the debug adapter will be used.
10365
10379
  * @param executable The debug adapter's executable information as specified in the package.json (or undefined if no such information exists).
10366
- * @return a [debug adapter descriptor](#DebugAdapterDescriptor) or undefined.
10380
+ * @return a {@link DebugAdapterDescriptor debug adapter descriptor} or undefined.
10367
10381
  */
10368
10382
  createDebugAdapterDescriptor(session: DebugSession, executable: DebugAdapterExecutable | undefined): ProviderResult<DebugAdapterDescriptor>;
10369
10383
  }
@@ -10405,23 +10419,23 @@ export module '@theia/plugin' {
10405
10419
  }
10406
10420
 
10407
10421
  /**
10408
- * An event describing the changes to the set of [breakpoints](#Breakpoint).
10422
+ * An event describing the changes to the set of {@link Breakpoint breakpoints}.
10409
10423
  */
10410
10424
  export interface BreakpointsChangeEvent {
10411
10425
  /**
10412
10426
  * Added breakpoints.
10413
10427
  */
10414
- readonly added: Breakpoint[];
10428
+ readonly added: readonly Breakpoint[];
10415
10429
 
10416
10430
  /**
10417
10431
  * Removed breakpoints.
10418
10432
  */
10419
- readonly removed: Breakpoint[];
10433
+ readonly removed: readonly Breakpoint[];
10420
10434
 
10421
10435
  /**
10422
10436
  * Changed breakpoints.
10423
10437
  */
10424
- readonly changed: Breakpoint[];
10438
+ readonly changed: readonly Breakpoint[];
10425
10439
  }
10426
10440
 
10427
10441
  /**
@@ -10507,57 +10521,57 @@ export module '@theia/plugin' {
10507
10521
  export namespace debug {
10508
10522
 
10509
10523
  /**
10510
- * The currently active [debug session](#DebugSession) or `undefined`. The active debug session is the one
10524
+ * The currently active {@link DebugSession debug session} or `undefined`. The active debug session is the one
10511
10525
  * represented by the debug action floating window or the one currently shown in the drop down menu of the debug action floating window.
10512
10526
  * If no debug session is active, the value is `undefined`.
10513
10527
  */
10514
10528
  export let activeDebugSession: DebugSession | undefined;
10515
10529
 
10516
10530
  /**
10517
- * The currently active [debug console](#DebugConsole).
10531
+ * The currently active {@link DebugConsole debug console}.
10518
10532
  */
10519
10533
  export let activeDebugConsole: DebugConsole;
10520
10534
 
10521
10535
  /**
10522
10536
  * List of breakpoints.
10523
10537
  */
10524
- export let breakpoints: Breakpoint[];
10538
+ export let breakpoints: readonly Breakpoint[];
10525
10539
 
10526
10540
  /**
10527
- * An [event](#Event) which fires when the [active debug session](#debug.activeDebugSession)
10541
+ * An {@link Event event} which fires when the {@link debug.activeDebugSession active debug session}
10528
10542
  * has changed. *Note* that the event also fires when the active debug session changes
10529
10543
  * to `undefined`.
10530
10544
  */
10531
10545
  export const onDidChangeActiveDebugSession: Event<DebugSession | undefined>;
10532
10546
 
10533
10547
  /**
10534
- * An [event](#Event) which fires when a new [debug session](#DebugSession) has been started.
10548
+ * An {@link Event event} which fires when a new {@link DebugSession debug session} has been started.
10535
10549
  */
10536
10550
  export const onDidStartDebugSession: Event<DebugSession>;
10537
10551
 
10538
10552
  /**
10539
- * An [event](#Event) which fires when a custom DAP event is received from the [debug session](#DebugSession).
10553
+ * An {@link Event event} which fires when a custom DAP event is received from the {@link DebugSession debug session}.
10540
10554
  */
10541
10555
  export const onDidReceiveDebugSessionCustomEvent: Event<DebugSessionCustomEvent>;
10542
10556
 
10543
10557
  /**
10544
- * An [event](#Event) which fires when a [debug session](#DebugSession) has terminated.
10558
+ * An {@link Event event} which fires when a {@link DebugSession debug session} has terminated.
10545
10559
  */
10546
10560
  export const onDidTerminateDebugSession: Event<DebugSession>;
10547
10561
 
10548
10562
  /**
10549
- * An [event](#Event) that is emitted when the set of breakpoints is added, removed, or changed.
10563
+ * An {@link Event event} that is emitted when the set of breakpoints is added, removed, or changed.
10550
10564
  */
10551
10565
  export const onDidChangeBreakpoints: Event<BreakpointsChangeEvent>;
10552
10566
 
10553
10567
  /**
10554
- * Register a [debug adapter descriptor factory](#DebugAdapterDescriptorFactory) for a specific debug type.
10568
+ * Register a {@link DebugAdapterDescriptorFactory debug adapter descriptor factory} for a specific debug type.
10555
10569
  * An extension is only allowed to register a DebugAdapterDescriptorFactory for the debug type(s) defined by the extension. Otherwise an error is thrown.
10556
10570
  * Registering more than one DebugAdapterDescriptorFactory for a debug type results in an error.
10557
10571
  *
10558
10572
  * @param debugType The debug type for which the factory is registered.
10559
- * @param factory The [debug adapter descriptor factory](#DebugAdapterDescriptorFactory) to register.
10560
- * @return A [disposable](#Disposable) that unregisters this factory when being disposed.
10573
+ * @param factory The {@link DebugAdapterDescriptorFactory debug adapter descriptor factory} to register.
10574
+ * @return A {@link Disposable disposable} that unregisters this factory when being disposed.
10561
10575
  */
10562
10576
  export function registerDebugAdapterDescriptorFactory(debugType: string, factory: DebugAdapterDescriptorFactory): Disposable;
10563
10577
 
@@ -10592,19 +10606,19 @@ export module '@theia/plugin' {
10592
10606
  * Register a debug adapter tracker factory for the given debug type.
10593
10607
  *
10594
10608
  * @param debugType The debug type for which the factory is registered or '*' for matching all debug types.
10595
- * @param factory The [debug adapter tracker factory](#DebugAdapterTrackerFactory) to register.
10596
- * @return A [disposable](#Disposable) that unregisters this factory when being disposed.
10609
+ * @param factory The {@link DebugAdapterTrackerFactory debug adapter tracker factory} to register.
10610
+ * @return A {@link Disposable disposable} that unregisters this factory when being disposed.
10597
10611
  */
10598
10612
  export function registerDebugAdapterTrackerFactory(debugType: string, factory: DebugAdapterTrackerFactory): Disposable;
10599
10613
 
10600
10614
  /**
10601
10615
  * Start debugging by using either a named launch or named compound configuration,
10602
- * or by directly passing a [DebugConfiguration](#DebugConfiguration).
10616
+ * or by directly passing a {@link DebugConfiguration DebugConfiguration}.
10603
10617
  * The named configurations are looked up in '.vscode/launch.json' found in the given folder.
10604
10618
  * Before debugging starts, all unsaved files are saved and the launch configurations are brought up-to-date.
10605
10619
  * Folder specific variables used in the configuration (e.g. '${workspaceFolder}') are resolved against the given folder.
10606
- * @param folder The [workspace folder](#WorkspaceFolder) for looking up named configurations and resolving variables or `undefined` for a non-folder setup.
10607
- * @param nameOrConfiguration Either the name of a debug or compound configuration or a [DebugConfiguration](#DebugConfiguration) object.
10620
+ * @param folder The {@link WorkspaceFolder workspace folder} for looking up named configurations and resolving variables or `undefined` for a non-folder setup.
10621
+ * @param nameOrConfiguration Either the name of a debug or compound configuration or a {@link DebugConfiguration DebugConfiguration} object.
10608
10622
  * @param parentSessionOrOptions Debug session options. When passed a parent debug session, assumes options with just this parent session.
10609
10623
  * @return A thenable that resolves when debugging could be successfully started.
10610
10624
  */
@@ -10612,7 +10626,7 @@ export module '@theia/plugin' {
10612
10626
 
10613
10627
  /**
10614
10628
  * Stop the given debug session or stop all debug sessions if session is omitted.
10615
- * @param session The [debug session](#DebugSession) to stop; if omitted all sessions are stopped.
10629
+ * @param session The {@link DebugSession debug session} to stop; if omitted all sessions are stopped.
10616
10630
  */
10617
10631
  export function stopDebugging(session?: DebugSession): Thenable<void>;
10618
10632
 
@@ -10632,31 +10646,31 @@ export module '@theia/plugin' {
10632
10646
  }
10633
10647
 
10634
10648
  /**
10635
- * Represents options to configure the behavior of showing a [document](#TextDocument) in an [editor](#TextEditor).
10649
+ * Represents options to configure the behavior of showing a {@link TextDocument document} in an {@link TextEditor editor}.
10636
10650
  */
10637
10651
  export interface TextDocumentShowOptions {
10638
10652
  /**
10639
- * An optional view column in which the [editor](#TextEditor) should be shown.
10640
- * The default is the [active](#ViewColumn.Active), other values are adjusted to
10641
- * be `Min(column, columnCount + 1)`, the [active](#ViewColumn.Active)-column is
10653
+ * An optional view column in which the {@link TextEditor editor} should be shown.
10654
+ * The default is the {@link ViewColumn.Active active}, other values are adjusted to
10655
+ * be `Min(column, columnCount + 1)`, the {@link ViewColumn.Active active}-column is
10642
10656
  * not adjusted. Use [`ViewColumn.Beside`](#ViewColumn.Beside) to open the
10643
10657
  * editor to the side of the currently active one.
10644
10658
  */
10645
10659
  viewColumn?: ViewColumn;
10646
10660
 
10647
10661
  /**
10648
- * An optional flag that when `true` will stop the [editor](#TextEditor) from taking focus.
10662
+ * An optional flag that when `true` will stop the {@link TextEditor editor} from taking focus.
10649
10663
  */
10650
10664
  preserveFocus?: boolean;
10651
10665
 
10652
10666
  /**
10653
- * An optional flag that controls if an [editor](#TextEditor)-tab will be replaced
10667
+ * An optional flag that controls if an {@link TextEditor editor}-tab will be replaced
10654
10668
  * with the next editor or if it will be kept.
10655
10669
  */
10656
10670
  preview?: boolean;
10657
10671
 
10658
10672
  /**
10659
- * An optional selection to apply for the document in the [editor](#TextEditor).
10673
+ * An optional selection to apply for the document in the {@link TextEditor editor}.
10660
10674
  */
10661
10675
  selection?: Range;
10662
10676
  }
@@ -10875,8 +10889,6 @@ export module '@theia/plugin' {
10875
10889
  * were in the task definition will be resolved and passed into the callback as `resolvedDefinition`.
10876
10890
  */
10877
10891
  constructor(callback: (resolvedDefinition: TaskDefinition) => Thenable<Pseudoterminal>);
10878
-
10879
- readonly callback;
10880
10892
  }
10881
10893
 
10882
10894
  export enum TaskScope {
@@ -11106,7 +11118,7 @@ export module '@theia/plugin' {
11106
11118
  /**
11107
11119
  * The task item representing the task that got started.
11108
11120
  */
11109
- execution: TaskExecution;
11121
+ readonly execution: TaskExecution;
11110
11122
  }
11111
11123
 
11112
11124
  /**
@@ -11118,7 +11130,7 @@ export module '@theia/plugin' {
11118
11130
  /**
11119
11131
  * The task item representing the task that finished.
11120
11132
  */
11121
- execution: TaskExecution;
11133
+ readonly execution: TaskExecution;
11122
11134
  }
11123
11135
 
11124
11136
  /**
@@ -11129,7 +11141,7 @@ export module '@theia/plugin' {
11129
11141
  /**
11130
11142
  * The task execution for which the process got started.
11131
11143
  */
11132
- execution: TaskExecution;
11144
+ readonly execution: TaskExecution;
11133
11145
 
11134
11146
  /**
11135
11147
  * The underlying process id.
@@ -11146,7 +11158,7 @@ export module '@theia/plugin' {
11146
11158
  /**
11147
11159
  * The task execution for which the process got started.
11148
11160
  */
11149
- execution: TaskExecution;
11161
+ readonly execution: TaskExecution;
11150
11162
 
11151
11163
  /**
11152
11164
  * The process's exit code.
@@ -11174,7 +11186,7 @@ export module '@theia/plugin' {
11174
11186
  *
11175
11187
  * @param type The task kind type this provider is registered for.
11176
11188
  * @param provider A task provider.
11177
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
11189
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
11178
11190
  */
11179
11191
  export function registerTaskProvider(type: string, provider: TaskProvider): Disposable;
11180
11192
 
@@ -11198,7 +11210,7 @@ export module '@theia/plugin' {
11198
11210
  /**
11199
11211
  * The currently active task executions or an empty array.
11200
11212
  */
11201
- export const taskExecutions: ReadonlyArray<TaskExecution>;
11213
+ export const taskExecutions: readonly TaskExecution[];
11202
11214
 
11203
11215
  /** Fires when a task starts. */
11204
11216
  export const onDidStartTask: Event<TaskStartEvent>;
@@ -11221,39 +11233,6 @@ export module '@theia/plugin' {
11221
11233
  export const onDidEndTaskProcess: Event<TaskProcessEndEvent>;
11222
11234
  }
11223
11235
 
11224
- /**
11225
- * A memento represents a storage utility. It can store and retrieve
11226
- * values.
11227
- */
11228
- export interface Memento {
11229
-
11230
- /**
11231
- * Return a value.
11232
- *
11233
- * @param key A string.
11234
- * @return The stored value or `undefined`.
11235
- */
11236
- get<T>(key: string): T | undefined;
11237
-
11238
- /**
11239
- * Return a value.
11240
- *
11241
- * @param key A string.
11242
- * @param defaultValue A value that should be returned when there is no
11243
- * value (`undefined`) with the given key.
11244
- * @return The stored value or the defaultValue.
11245
- */
11246
- get<T>(key: string, defaultValue: T): T;
11247
-
11248
- /**
11249
- * Store a value. The value must be JSON-stringifyable.
11250
- *
11251
- * @param key A string.
11252
- * @param value A value. MUST not contain cyclic references.
11253
- */
11254
- update(key: string, value: any): Thenable<void>;
11255
- }
11256
-
11257
11236
  /* The workspace symbol provider interface defines the contract between extensions
11258
11237
  * and the [symbol search](https://code.visualstudio.com/docs/editor/intellisense)-feature.
11259
11238
  */
@@ -11280,7 +11259,7 @@ export module '@theia/plugin' {
11280
11259
  provideWorkspaceSymbols(query: string, token: CancellationToken): ProviderResult<T[]>;
11281
11260
 
11282
11261
  /**
11283
- * Given a symbol fill in its [location](#SymbolInformation.location). This method is called whenever a symbol
11262
+ * Given a symbol fill in its {@link SymbolInformation.location location}. This method is called whenever a symbol
11284
11263
  * is selected in the UI. Providers can implement this method and return incomplete symbols from
11285
11264
  * [`provideWorkspaceSymbols`](#WorkspaceSymbolProvider.provideWorkspaceSymbols) which often helps to improve
11286
11265
  * performance.
@@ -11297,7 +11276,7 @@ export module '@theia/plugin' {
11297
11276
  // #region Comments
11298
11277
 
11299
11278
  /**
11300
- * Collapsible state of a [comment thread](#CommentThread)
11279
+ * Collapsible state of a {@link CommentThread comment thread}
11301
11280
  */
11302
11281
  export enum CommentThreadCollapsibleState {
11303
11282
  /**
@@ -11312,7 +11291,7 @@ export module '@theia/plugin' {
11312
11291
  }
11313
11292
 
11314
11293
  /**
11315
- * Comment mode of a [comment](#Comment)
11294
+ * Comment mode of a {@link Comment comment}
11316
11295
  */
11317
11296
  export enum CommentMode {
11318
11297
  /**
@@ -11327,7 +11306,7 @@ export module '@theia/plugin' {
11327
11306
  }
11328
11307
 
11329
11308
  /**
11330
- * A collection of [comments](#Comment) representing a conversation at a particular range in a document.
11309
+ * A collection of {@link Comment comments} representing a conversation at a particular range in a document.
11331
11310
  */
11332
11311
  export interface CommentThread {
11333
11312
  /**
@@ -11373,7 +11352,7 @@ export module '@theia/plugin' {
11373
11352
  contextValue?: string;
11374
11353
 
11375
11354
  /**
11376
- * The optional human-readable label describing the [Comment Thread](#CommentThread)
11355
+ * The optional human-readable label describing the {@link CommentThread Comment Thread}
11377
11356
  */
11378
11357
  label?: string;
11379
11358
 
@@ -11391,7 +11370,7 @@ export module '@theia/plugin' {
11391
11370
  }
11392
11371
 
11393
11372
  /**
11394
- * Author information of a [comment](#Comment)
11373
+ * Author information of a {@link Comment comment}
11395
11374
  */
11396
11375
  export interface CommentAuthorInformation {
11397
11376
  /**
@@ -11406,7 +11385,7 @@ export module '@theia/plugin' {
11406
11385
  }
11407
11386
 
11408
11387
  /**
11409
- * Reactions of a [comment](#Comment)
11388
+ * Reactions of a {@link Comment comment}
11410
11389
  */
11411
11390
  export interface CommentReaction {
11412
11391
  /**
@@ -11440,12 +11419,12 @@ export module '@theia/plugin' {
11440
11419
  body: string | MarkdownString;
11441
11420
 
11442
11421
  /**
11443
- * [Comment mode](#CommentMode) of the comment
11422
+ * {@link CommentMode Comment mode} of the comment
11444
11423
  */
11445
11424
  mode: CommentMode;
11446
11425
 
11447
11426
  /**
11448
- * The [author information](#CommentAuthorInformation) of the comment
11427
+ * The {@link CommentAuthorInformation author information} of the comment
11449
11428
  */
11450
11429
  author: CommentAuthorInformation;
11451
11430
 
@@ -11470,12 +11449,12 @@ export module '@theia/plugin' {
11470
11449
  contextValue?: string;
11471
11450
 
11472
11451
  /**
11473
- * Optional reactions of the [comment](#Comment)
11452
+ * Optional reactions of the {@link Comment comment}
11474
11453
  */
11475
11454
  reactions?: CommentReaction[];
11476
11455
 
11477
11456
  /**
11478
- * Optional label describing the [Comment](#Comment)
11457
+ * Optional label describing the {@link Comment Comment}
11479
11458
  * Label will be rendered next to authorName if exists.
11480
11459
  */
11481
11460
  label?: string;
@@ -11486,7 +11465,7 @@ export module '@theia/plugin' {
11486
11465
  */
11487
11466
  export interface CommentReply {
11488
11467
  /**
11489
- * The active [comment thread](#CommentThread)
11468
+ * The active {@link CommentThread comment thread}
11490
11469
  */
11491
11470
  thread: CommentThread;
11492
11471
 
@@ -11497,7 +11476,7 @@ export module '@theia/plugin' {
11497
11476
  }
11498
11477
 
11499
11478
  /**
11500
- * Commenting range provider for a [comment controller](#CommentController).
11479
+ * Commenting range provider for a {@link CommentController comment controller}.
11501
11480
  */
11502
11481
  export interface CommentingRangeProvider {
11503
11482
  /**
@@ -11507,7 +11486,7 @@ export module '@theia/plugin' {
11507
11486
  }
11508
11487
 
11509
11488
  /**
11510
- * Represents a [comment controller](#CommentController)'s [options](#CommentController.options).
11489
+ * Represents a {@link CommentController comment controller}'s {@link CommentController.options options}.
11511
11490
  */
11512
11491
  export interface CommentOptions {
11513
11492
  /**
@@ -11522,7 +11501,7 @@ export module '@theia/plugin' {
11522
11501
  }
11523
11502
 
11524
11503
  /**
11525
- * A comment controller is able to provide [comments](#CommentThread) support to the editor and
11504
+ * A comment controller is able to provide {@link CommentThread comments} support to the editor and
11526
11505
  * provide users various ways to interact with comments.
11527
11506
  */
11528
11507
  export interface CommentController {
@@ -11542,14 +11521,14 @@ export module '@theia/plugin' {
11542
11521
  options?: CommentOptions;
11543
11522
 
11544
11523
  /**
11545
- * Optional commenting range provider. Provide a list [ranges](#Range) which support commenting to any given resource uri.
11524
+ * Optional commenting range provider. Provide a list {@link Range ranges} which support commenting to any given resource uri.
11546
11525
  *
11547
11526
  * If not provided, users can leave comments in any document opened in the editor.
11548
11527
  */
11549
11528
  commentingRangeProvider?: CommentingRangeProvider;
11550
11529
 
11551
11530
  /**
11552
- * Create a [comment thread](#CommentThread). The comment thread will be displayed in visible text editors (if the resource matches)
11531
+ * Create a {@link CommentThread comment thread}. The comment thread will be displayed in visible text editors (if the resource matches)
11553
11532
  * and Comments Panel once created.
11554
11533
  *
11555
11534
  * @param uri The uri of the document the thread has been created on.
@@ -11559,14 +11538,14 @@ export module '@theia/plugin' {
11559
11538
  createCommentThread(uri: Uri, range: Range, comments: Comment[]): CommentThread;
11560
11539
 
11561
11540
  /**
11562
- * Optional reaction handler for creating and deleting reactions on a [comment](#Comment).
11541
+ * Optional reaction handler for creating and deleting reactions on a {@link Comment comment}.
11563
11542
  */
11564
- reactionHandler?: (comment: Comment, reaction: CommentReaction) => Promise<void>;
11543
+ reactionHandler?: (comment: Comment, reaction: CommentReaction) => Thenable<void>;
11565
11544
 
11566
11545
  /**
11567
11546
  * Dispose this comment controller.
11568
11547
  *
11569
- * Once disposed, all [comment threads](#CommentThread) created by this comment controller will also be removed from the editor
11548
+ * Once disposed, all {@link CommentThread comment threads} created by this comment controller will also be removed from the editor
11570
11549
  * and Comments Panel.
11571
11550
  */
11572
11551
  dispose(): void;
@@ -11574,11 +11553,11 @@ export module '@theia/plugin' {
11574
11553
 
11575
11554
  namespace comments {
11576
11555
  /**
11577
- * Creates a new [comment controller](#CommentController) instance.
11556
+ * Creates a new {@link CommentController comment controller} instance.
11578
11557
  *
11579
11558
  * @param id An `id` for the comment controller.
11580
11559
  * @param label A human-readable string for the comment controller.
11581
- * @return An instance of [comment controller](#CommentController).
11560
+ * @return An instance of {@link CommentController comment controller}.
11582
11561
  */
11583
11562
  export function createCommentController(id: string, label: string): CommentController;
11584
11563
  }
@@ -11592,7 +11571,7 @@ export module '@theia/plugin' {
11592
11571
  export class SelectionRange {
11593
11572
 
11594
11573
  /**
11595
- * The [range](#Range) of this selection range.
11574
+ * The {@link Range range} of this selection range.
11596
11575
  */
11597
11576
  range: Range;
11598
11577
 
@@ -11616,7 +11595,7 @@ export module '@theia/plugin' {
11616
11595
  *
11617
11596
  * Selection ranges should be computed individually and independent for each position. The editor will merge
11618
11597
  * and deduplicate ranges but providers must return hierarchies of selection ranges so that a range
11619
- * is [contained](#Range.contains) by its parent.
11598
+ * is {@link Range.contains contained} by its parent.
11620
11599
  *
11621
11600
  * @param document The document in which the command was invoked.
11622
11601
  * @param positions The positions at which the command was invoked.
@@ -11798,7 +11777,7 @@ export module '@theia/plugin' {
11798
11777
  * An optional word pattern that describes valid contents for the given ranges.
11799
11778
  * If no pattern is provided, the language configuration's word pattern will be used.
11800
11779
  */
11801
- readonly wordPattern?: RegExp;
11780
+ readonly wordPattern: RegExp | undefined;
11802
11781
  }
11803
11782
 
11804
11783
  /**
@@ -11841,13 +11820,13 @@ export module '@theia/plugin' {
11841
11820
 
11842
11821
  /**
11843
11822
  * The permissions granted by the session's access token. Available scopes
11844
- * are defined by the [AuthenticationProvider](#AuthenticationProvider).
11823
+ * are defined by the {@link AuthenticationProvider AuthenticationProvider}.
11845
11824
  */
11846
11825
  readonly scopes: readonly string[];
11847
11826
  }
11848
11827
 
11849
11828
  /**
11850
- * The information of an account associated with an [AuthenticationSession](#AuthenticationSession).
11829
+ * The information of an account associated with an {@link AuthenticationSession AuthenticationSession}.
11851
11830
  */
11852
11831
  export interface AuthenticationSessionAccountInformation {
11853
11832
  /**
@@ -11862,7 +11841,7 @@ export module '@theia/plugin' {
11862
11841
  }
11863
11842
 
11864
11843
  /**
11865
- * Options to be used when getting an [AuthenticationSession](#AuthenticationSession) from an [AuthenticationProvider](#AuthenticationProvider).
11844
+ * Options to be used when getting an {@link AuthenticationSession AuthenticationSession} from an {@link AuthenticationProvider AuthenticationProvider}.
11866
11845
  */
11867
11846
  export interface AuthenticationGetSessionOptions {
11868
11847
  /**
@@ -11880,8 +11859,8 @@ export module '@theia/plugin' {
11880
11859
  * Whether the existing user session preference should be cleared.
11881
11860
  *
11882
11861
  * For authentication providers that support being signed into multiple accounts at once, the user will be
11883
- * prompted to select an account to use when [getSession](#authentication.getSession) is called. This preference
11884
- * is remembered until [getSession](#authentication.getSession) is called with this flag.
11862
+ * prompted to select an account to use when {@link authentication.getSession getSession} is called. This preference
11863
+ * is remembered until {@link authentication.getSession getSession} is called with this flag.
11885
11864
  *
11886
11865
  * Defaults to false.
11887
11866
  */
@@ -11911,7 +11890,7 @@ export module '@theia/plugin' {
11911
11890
  }
11912
11891
 
11913
11892
  /**
11914
- * Basic information about an [authenticationProvider](#AuthenticationProvider)
11893
+ * Basic information about an {@link AuthenticationProvider authenticationProvider}
11915
11894
  */
11916
11895
  export interface AuthenticationProviderInformation {
11917
11896
  /**
@@ -11926,11 +11905,11 @@ export module '@theia/plugin' {
11926
11905
  }
11927
11906
 
11928
11907
  /**
11929
- * An [event](#Event) which fires when an [AuthenticationSession](#AuthenticationSession) is added, removed, or changed.
11908
+ * An {@link Event event} which fires when an {@link AuthenticationSession AuthenticationSession} is added, removed, or changed.
11930
11909
  */
11931
11910
  export interface AuthenticationSessionsChangeEvent {
11932
11911
  /**
11933
- * The [authenticationProvider](#AuthenticationProvider) that has had its sessions change.
11912
+ * The {@link AuthenticationProvider authenticationProvider} that has had its sessions change.
11934
11913
  */
11935
11914
  readonly provider: AuthenticationProviderInformation;
11936
11915
  }
@@ -12026,7 +12005,7 @@ export module '@theia/plugin' {
12026
12005
  * to VS Code that implement GitHub and Microsoft authentication: their providerId's are 'github' and 'microsoft'.
12027
12006
  * @param providerId The id of the provider to use
12028
12007
  * @param scopes A list of scopes representing the permissions requested. These are dependent on the authentication provider
12029
- * @param options The [getSessionOptions](#GetSessionOptions) to use
12008
+ * @param options The {@link GetSessionOptions getSessionOptions} to use
12030
12009
  * @returns A thenable that resolves to an authentication session
12031
12010
  */
12032
12011
  export function getSession(providerId: string, scopes: readonly string[], options: AuthenticationGetSessionOptions & { createIfNone: true }): Thenable<AuthenticationSession>;
@@ -12054,13 +12033,13 @@ export module '@theia/plugin' {
12054
12033
  *
12055
12034
  * @param providerId The id of the provider to use
12056
12035
  * @param scopes A list of scopes representing the permissions requested. These are dependent on the authentication provider
12057
- * @param options The [getSessionOptions](#GetSessionOptions) to use
12036
+ * @param options The {@link GetSessionOptions getSessionOptions} to use
12058
12037
  * @returns A thenable that resolves to an authentication session if available, or undefined if there are no sessions
12059
12038
  */
12060
12039
  export function getSession(providerId: string, scopes: readonly string[], options?: AuthenticationGetSessionOptions): Thenable<AuthenticationSession | undefined>;
12061
12040
 
12062
12041
  /**
12063
- * An [event](#Event) which fires when the authentication sessions of an authentication provider have
12042
+ * An {@link Event event} which fires when the authentication sessions of an authentication provider have
12064
12043
  * been added, removed, or changed.
12065
12044
  */
12066
12045
  export const onDidChangeSessions: Event<AuthenticationSessionsChangeEvent>;