@theia/plugin 1.29.0 → 1.30.0-next.2

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
  /**
@@ -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
 
@@ -2956,7 +2974,7 @@ export module '@theia/plugin' {
2956
2974
  /**
2957
2975
  * Current working directory.
2958
2976
  */
2959
- cwd?: string | URI;
2977
+ cwd?: string | Uri;
2960
2978
 
2961
2979
  /**
2962
2980
  * Environment variables for terminal in format key - value.
@@ -3007,7 +3025,7 @@ export module '@theia/plugin' {
3007
3025
 
3008
3026
  /**
3009
3027
  * Options a virtual process terminal.
3010
- * @deprecated since 1.23.0 - Use [ExtensionTerminalOptions](#ExtensionTerminalOptions) instead.
3028
+ * @deprecated since 1.23.0 - Use {@link ExtensionTerminalOptions ExtensionTerminalOptions} instead.
3011
3029
  */
3012
3030
  export interface PseudoTerminalOptions {
3013
3031
  /**
@@ -3016,7 +3034,7 @@ export module '@theia/plugin' {
3016
3034
  name: string;
3017
3035
 
3018
3036
  /**
3019
- * An implementation of [Pseudoterminal](#Pseudoterminal) where an extension can
3037
+ * An implementation of {@link Pseudoterminal Pseudoterminal} where an extension can
3020
3038
  * control it.
3021
3039
  */
3022
3040
  pty: Pseudoterminal;
@@ -3032,7 +3050,7 @@ export module '@theia/plugin' {
3032
3050
  name: string;
3033
3051
 
3034
3052
  /**
3035
- * An implementation of [Pseudoterminal](#Pseudoterminal) where an extension can
3053
+ * An implementation of {@link Pseudoterminal Pseudoterminal} where an extension can
3036
3054
  * control it.
3037
3055
  */
3038
3056
  pty: Pseudoterminal;
@@ -3191,7 +3209,7 @@ export module '@theia/plugin' {
3191
3209
  *
3192
3210
  * *Note* that this event should be used to propagate information about children.
3193
3211
  *
3194
- * @see [EventEmitter](#EventEmitter)
3212
+ * @see {@link EventEmitter EventEmitter}
3195
3213
  */
3196
3214
  onDidChangeFileDecorations?: Event<undefined | Uri | Uri[]>;
3197
3215
 
@@ -3200,7 +3218,7 @@ export module '@theia/plugin' {
3200
3218
  *
3201
3219
  * *Note* that this function is only called when a file gets rendered in the UI.
3202
3220
  * This means a decoration from a descendent that propagates upwards must be signaled
3203
- * to the editor via the [onDidChangeFileDecorations](#FileDecorationProvider.onDidChangeFileDecorations)-event.
3221
+ * to the editor via the {@link FileDecorationProvider.onDidChangeFileDecorations onDidChangeFileDecorations}-event.
3204
3222
  *
3205
3223
  * @param uri The uri of the file to provide a decoration for.
3206
3224
  * @param token A cancellation token.
@@ -3358,13 +3376,13 @@ export module '@theia/plugin' {
3358
3376
 
3359
3377
  /**
3360
3378
  * A memento object that stores state in the context
3361
- * of the currently opened [workspace](#workspace.workspaceFolders).
3379
+ * of the currently opened {@link workspace.workspaceFolders workspace}.
3362
3380
  */
3363
3381
  workspaceState: Memento;
3364
3382
 
3365
3383
  /**
3366
3384
  * A memento object that stores state independent
3367
- * of the current opened [workspace](#workspace.workspaceFolders).
3385
+ * of the current opened {@link workspace.workspaceFolders workspace}.
3368
3386
  */
3369
3387
  globalState: Memento & {
3370
3388
  /**
@@ -3420,7 +3438,7 @@ export module '@theia/plugin' {
3420
3438
  * Use [`workspaceState`](#PluginContext.workspaceState) or
3421
3439
  * [`globalState`](#PluginContext.globalState) to store key value data.
3422
3440
  *
3423
- * @deprecated Use [storageUri](#PluginContext.storageUri) instead.
3441
+ * @deprecated Use {@link PluginContext.storageUri storageUri} instead.
3424
3442
  */
3425
3443
  storagePath: string | undefined;
3426
3444
 
@@ -3445,7 +3463,7 @@ export module '@theia/plugin' {
3445
3463
  *
3446
3464
  * Use [`globalState`](#PluginContext.globalState) to store key value data.
3447
3465
  *
3448
- * @deprecated Use [globalStorageUri](#PluginContext.globalStorageUri) instead.
3466
+ * @deprecated Use {@link PluginContext.globalStorageUri globalStorageUri} instead.
3449
3467
  */
3450
3468
  readonly globalStoragePath: string;
3451
3469
 
@@ -3932,14 +3950,14 @@ export module '@theia/plugin' {
3932
3950
  }
3933
3951
 
3934
3952
  /**
3935
- * A uri handler is responsible for handling system-wide [uris](#Uri).
3953
+ * A uri handler is responsible for handling system-wide {@link Uri uris}.
3936
3954
  *
3937
3955
  * @see [window.registerUriHandler](#window.registerUriHandler).
3938
3956
  */
3939
3957
  export interface UriHandler {
3940
3958
 
3941
3959
  /**
3942
- * Handle the provided system-wide [uri](#Uri).
3960
+ * Handle the provided system-wide {@link Uri uri}.
3943
3961
  *
3944
3962
  * @see [window.registerUriHandler](#window.registerUriHandler).
3945
3963
  */
@@ -4001,7 +4019,7 @@ export module '@theia/plugin' {
4001
4019
  /**
4002
4020
  * Event triggered by extensions to signal that an edit has occurred on an [`CustomDocument`](#CustomDocument).
4003
4021
  *
4004
- * @see [`CustomDocumentProvider.onDidChangeCustomDocument`](#CustomDocumentProvider.onDidChangeCustomDocument).
4022
+ * @see {@link CustomEditorProvider.onDidChangeCustomDocument}.
4005
4023
  */
4006
4024
  interface CustomDocumentEditEvent<T extends CustomDocument = CustomDocument> {
4007
4025
 
@@ -4040,7 +4058,7 @@ export module '@theia/plugin' {
4040
4058
  * Event triggered by extensions to signal to Theia that the content of a [`CustomDocument`](#CustomDocument)
4041
4059
  * has changed.
4042
4060
  *
4043
- * @see [`CustomDocumentProvider.onDidChangeCustomDocument`](#CustomDocumentProvider.onDidChangeCustomDocument).
4061
+ * @see {@link CustomEditorProvider.onDidChangeCustomDocument}.
4044
4062
  */
4045
4063
  interface CustomDocumentContentChangeEvent<T extends CustomDocument = CustomDocument> {
4046
4064
  /**
@@ -4186,7 +4204,7 @@ export module '@theia/plugin' {
4186
4204
  *
4187
4205
  * An editor should only ever fire `CustomDocumentEditEvent` events, or only ever fire `CustomDocumentContentChangeEvent` events.
4188
4206
  */
4189
- readonly onDidChangeCustomDocument: Event<CustomDocumentContentChangeEvent<T>> | Event<CustomDocumentEditEvent<T>>;
4207
+ readonly onDidChangeCustomDocument: Event<CustomDocumentEditEvent<T>> | Event<CustomDocumentContentChangeEvent<T>>;
4190
4208
 
4191
4209
  /**
4192
4210
  * Save a custom document.
@@ -4403,83 +4421,83 @@ export module '@theia/plugin' {
4403
4421
  /**
4404
4422
  * The currently opened terminals or an empty array.
4405
4423
  */
4406
- export let terminals: ReadonlyArray<Terminal>;
4424
+ export let terminals: readonly Terminal[];
4407
4425
 
4408
4426
  /**
4409
4427
  * The currently visible editors or an empty array.
4410
4428
  */
4411
- export let visibleTextEditors: TextEditor[];
4429
+ export let visibleTextEditors: readonly TextEditor[];
4412
4430
 
4413
4431
  /**
4414
- * An [event](#Event) which fires when the [active terminal](#window.activeTerminal) has changed.
4432
+ * An {@link Event event} which fires when the {@link window.activeTerminal active terminal} has changed.
4415
4433
  * *Note* that the event also fires when the active terminal changes to `undefined`.
4416
4434
  */
4417
4435
  export const onDidChangeActiveTerminal: Event<Terminal | undefined>;
4418
4436
 
4419
4437
  /**
4420
- * An [event](#Event) which fires when the [active editor](#window.activeTextEditor)
4438
+ * An {@link Event event} which fires when the {@link window.activeTextEditor active editor}
4421
4439
  * has changed. *Note* that the event also fires when the active editor changes
4422
4440
  * to `undefined`.
4423
4441
  */
4424
4442
  export const onDidChangeActiveTextEditor: Event<TextEditor | undefined>;
4425
4443
 
4426
4444
  /**
4427
- * An [event](#Event) which fires when the array of [visible editors](#window.visibleTextEditors)
4445
+ * An {@link Event event} which fires when the array of {@link window.visibleTextEditors visible editors}
4428
4446
  * has changed.
4429
4447
  */
4430
- export const onDidChangeVisibleTextEditors: Event<TextEditor[]>;
4448
+ export const onDidChangeVisibleTextEditors: Event<readonly TextEditor[]>;
4431
4449
 
4432
4450
  /**
4433
- * An [event](#Event) which fires when the selection in an editor has changed.
4451
+ * An {@link Event event} which fires when the selection in an editor has changed.
4434
4452
  */
4435
4453
  export const onDidChangeTextEditorSelection: Event<TextEditorSelectionChangeEvent>;
4436
4454
 
4437
4455
  /**
4438
- * An [event](#Event) which fires when the selection in an editor has changed.
4456
+ * An {@link Event event} which fires when the selection in an editor has changed.
4439
4457
  */
4440
4458
  export const onDidChangeTextEditorVisibleRanges: Event<TextEditorVisibleRangesChangeEvent>;
4441
4459
 
4442
4460
  /**
4443
- * An [event](#Event) which fires when the options of an editor have changed.
4461
+ * An {@link Event event} which fires when the options of an editor have changed.
4444
4462
  */
4445
4463
  export const onDidChangeTextEditorOptions: Event<TextEditorOptionsChangeEvent>;
4446
4464
 
4447
4465
  /**
4448
- * An [event](#Event) which fires when the view column of an editor has changed.
4466
+ * An {@link Event event} which fires when the view column of an editor has changed.
4449
4467
  */
4450
4468
  export const onDidChangeTextEditorViewColumn: Event<TextEditorViewColumnChangeEvent>;
4451
4469
 
4452
4470
  /**
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).
4471
+ * Show the given document in a text editor. A {@link ViewColumn column} can be provided
4472
+ * to control where the editor is being shown. Might change the {@link window.activeTextEditor active editor}.
4455
4473
  *
4456
4474
  * @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)
4475
+ * @param column A view column in which the {@link TextEditor editor} should be shown. The default is the {@link ViewColumn.Active active}, other values
4476
+ * are adjusted to be `Min(column, columnCount + 1)`, the {@link ViewColumn.Active active}-column is not adjusted. Use [`ViewColumn.Beside`](#ViewColumn.Beside)
4459
4477
  * to open the editor to the side of the currently active one.
4460
4478
  * @param preserveFocus When `true` the editor will not take focus.
4461
- * @return A promise that resolves to an [editor](#TextEditor).
4479
+ * @return A promise that resolves to an {@link TextEditor editor}.
4462
4480
  */
4463
4481
  export function showTextDocument(document: TextDocument, column?: ViewColumn, preserveFocus?: boolean): Thenable<TextEditor>;
4464
4482
 
4465
4483
  /**
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).
4484
+ * Show the given document in a text editor. {@link TextDocumentShowOptions Options} can be provided
4485
+ * to control options of the editor is being shown. Might change the {@link window.activeTextEditor active editor}.
4468
4486
  *
4469
4487
  * @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).
4488
+ * @param options {@link TextDocumentShowOptions Editor options} to configure the behavior of showing the {@link TextEditor editor}.
4489
+ * @return A promise that resolves to an {@link TextEditor editor}.
4472
4490
  */
4473
4491
  export function showTextDocument(document: TextDocument, options?: TextDocumentShowOptions): Thenable<TextEditor>;
4474
4492
 
4475
4493
  /**
4476
4494
  * A short-hand for `openTextDocument(uri).then(document => showTextDocument(document, options))`.
4477
4495
  *
4478
- * @see [openTextDocument](#openTextDocument)
4496
+ * @see {@link openTextDocument openTextDocument}
4479
4497
  *
4480
4498
  * @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).
4499
+ * @param options {@link TextDocumentShowOptions Editor options} to configure the behavior of showing the {@link TextEditor editor}.
4500
+ * @return A promise that resolves to an {@link TextEditor editor}.
4483
4501
  */
4484
4502
  export function showTextDocument(uri: Uri, options?: TextDocumentShowOptions): Thenable<TextEditor>;
4485
4503
 
@@ -4524,19 +4542,19 @@ export module '@theia/plugin' {
4524
4542
  export function showQuickPick<T extends QuickPickItem>(items: readonly T[] | Thenable<readonly T[]>, options: QuickPickOptions & { canPickMany: true }, token?: CancellationToken): Thenable<T[] | undefined>;
4525
4543
 
4526
4544
  /**
4527
- * Creates a [QuickPick](#QuickPick) to let the user pick an item from a list
4545
+ * Creates a {@link QuickPick QuickPick} to let the user pick an item from a list
4528
4546
  * of items of type T.
4529
4547
  *
4530
4548
  * Note that in many cases the more convenient [window.showQuickPick](#window.showQuickPick)
4531
4549
  * is easier to use. [window.createQuickPick](#window.createQuickPick) should be used
4532
4550
  * when [window.showQuickPick](#window.showQuickPick) does not offer the required flexibility.
4533
4551
  *
4534
- * @return A new [QuickPick](#QuickPick).
4552
+ * @return A new {@link QuickPick QuickPick}.
4535
4553
  */
4536
4554
  export function createQuickPick<T extends QuickPickItem>(): QuickPick<T>;
4537
4555
 
4538
4556
  /**
4539
- * Shows a selection list of [workspace folders](#workspace.workspaceFolders) to pick from.
4557
+ * Shows a selection list of {@link workspace.workspaceFolders workspace folders} to pick from.
4540
4558
  * Returns `undefined` if no folder is open.
4541
4559
  *
4542
4560
  * @param options Configures the behavior of the workspace folder list.
@@ -4715,7 +4733,7 @@ export module '@theia/plugin' {
4715
4733
  * Registers a webview panel serializer.
4716
4734
  *
4717
4735
  * Plugins that support reviving should have an `"onWebviewPanel:viewType"` activation event and
4718
- * make sure that [registerWebviewPanelSerializer](#registerWebviewPanelSerializer) is called during activation.
4736
+ * make sure that {@link registerWebviewPanelSerializer registerWebviewPanelSerializer} is called during activation.
4719
4737
  *
4720
4738
  * Only a single serializer may be registered at a time for a given `viewType`.
4721
4739
  *
@@ -4854,7 +4872,7 @@ export module '@theia/plugin' {
4854
4872
  export function createStatusBarItem(id: string, alignment?: StatusBarAlignment, priority?: number): StatusBarItem;
4855
4873
 
4856
4874
  /**
4857
- * Create a new [output channel](#OutputChannel) with the given name.
4875
+ * Create a new {@link OutputChannel output channel} with the given name.
4858
4876
  *
4859
4877
  * @param name String which will be used to represent the channel in the UI.
4860
4878
  */
@@ -4874,7 +4892,7 @@ export module '@theia/plugin' {
4874
4892
  export const onDidCloseTerminal: Event<Terminal>;
4875
4893
 
4876
4894
  /**
4877
- * An [event](#Event) which fires when a terminal has been created,
4895
+ * An {@link Event event} which fires when a terminal has been created,
4878
4896
  * either through the createTerminal API or commands.
4879
4897
  */
4880
4898
  export const onDidOpenTerminal: Event<Terminal>;
@@ -4902,26 +4920,26 @@ export module '@theia/plugin' {
4902
4920
  export function createTerminal(options: ExtensionTerminalOptions): Terminal;
4903
4921
 
4904
4922
  /**
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.
4923
+ * Register a {@link TreeDataProvider TreeDataProvider} for the view contributed using the extension point `views`.
4924
+ * This will allow you to contribute data to the {@link TreeView TreeView} and update if the data changes.
4907
4925
  *
4908
- * **Note:** To get access to the [TreeView](#TreeView) and perform operations on it, use [createTreeView](#window.createTreeView).
4926
+ * **Note:** To get access to the {@link TreeView TreeView} and perform operations on it, use {@link window.createTreeView createTreeView}.
4909
4927
  *
4910
4928
  * @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
4929
+ * @param treeDataProvider A {@link TreeDataProvider TreeDataProvider} that provides tree data for the view
4912
4930
  */
4913
4931
  export function registerTreeDataProvider<T>(viewId: string, treeDataProvider: TreeDataProvider<T>): Disposable;
4914
4932
 
4915
4933
  /**
4916
- * Create a [TreeView](#TreeView) for the view contributed using the extension point `views`.
4934
+ * Create a {@link TreeView TreeView} for the view contributed using the extension point `views`.
4917
4935
  * @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).
4936
+ * @param options Options object to provide {@link TreeDataProvider TreeDataProvider} for the view.
4937
+ * @returns a {@link TreeView TreeView}.
4920
4938
  */
4921
4939
  export function createTreeView<T>(viewId: string, options: TreeViewOptions<T>): TreeView<T>;
4922
4940
 
4923
4941
  /**
4924
- * Registers a [uri handler](#UriHandler) capable of handling system-wide [uris](#Uri).
4942
+ * Registers a {@link UriHandler uri handler} capable of handling system-wide {@link Uri uris}.
4925
4943
  * In case there are multiple windows open, the topmost window will handle the uri.
4926
4944
  * A uri handler is scoped to the extension it is contributed from; it will only
4927
4945
  * be able to handle uris which are directed to the extension itself. A uri must respect
@@ -4949,7 +4967,7 @@ export module '@theia/plugin' {
4949
4967
  * progress should show (and other details) is defined via the passed [`ProgressOptions`](#ProgressOptions).
4950
4968
  *
4951
4969
  * @param task A callback returning a promise. Progress state can be reported with
4952
- * the provided [progress](#Progress)-object.
4970
+ * the provided {@link Progress progress}-object.
4953
4971
  *
4954
4972
  * To report discrete progress, use `increment` to indicate how much work has been completed. Each call with
4955
4973
  * a `increment` value will be summed up and reflected as overall progress until 100% is reached (a value of
@@ -4965,13 +4983,13 @@ export module '@theia/plugin' {
4965
4983
  export function withProgress<R>(options: ProgressOptions, task: (progress: Progress<{ message?: string; increment?: number }>, token: CancellationToken) => Thenable<R>): Thenable<R>;
4966
4984
 
4967
4985
  /**
4968
- * Creates a [InputBox](#InputBox) to let the user enter some text input.
4986
+ * Creates a {@link InputBox InputBox} to let the user enter some text input.
4969
4987
  *
4970
4988
  * Note that in many cases the more convenient [window.showInputBox](#window.showInputBox)
4971
4989
  * is easier to use. [window.createInputBox](#window.createInputBox) should be used
4972
4990
  * when [window.showInputBox](#window.showInputBox) does not offer the required flexibility.
4973
4991
  *
4974
- * @return A new [InputBox](#InputBox).
4992
+ * @return A new {@link InputBox InputBox}.
4975
4993
  */
4976
4994
  export function createInputBox(): InputBox;
4977
4995
 
@@ -4985,8 +5003,8 @@ export module '@theia/plugin' {
4985
5003
  /**
4986
5004
  * Register a file decoration provider.
4987
5005
  *
4988
- * @param provider A [FileDecorationProvider](#FileDecorationProvider).
4989
- * @return A [disposable](#Disposable) that unregisters the provider.
5006
+ * @param provider A {@link FileDecorationProvider FileDecorationProvider}.
5007
+ * @return A {@link Disposable disposable} that unregisters the provider.
4990
5008
  */
4991
5009
  export function registerFileDecorationProvider(provider: FileDecorationProvider): Disposable;
4992
5010
 
@@ -4997,7 +5015,7 @@ export module '@theia/plugin' {
4997
5015
  export let activeColorTheme: ColorTheme;
4998
5016
 
4999
5017
  /**
5000
- * An [event](#Event) which fires when the active color theme is changed or has changes.
5018
+ * An {@link Event event} which fires when the active color theme is changed or has changes.
5001
5019
  */
5002
5020
  export const onDidChangeActiveColorTheme: Event<ColorTheme>;
5003
5021
  }
@@ -5022,12 +5040,12 @@ export module '@theia/plugin' {
5022
5040
  }
5023
5041
 
5024
5042
  /**
5025
- * Predefined buttons for [QuickPick](#QuickPick) and [InputBox](#InputBox).
5043
+ * Predefined buttons for {@link QuickPick QuickPick} and {@link InputBox InputBox}.
5026
5044
  */
5027
5045
  export class QuickInputButtons {
5028
5046
 
5029
5047
  /**
5030
- * A back button for [QuickPick](#QuickPick) and [InputBox](#InputBox).
5048
+ * A back button for {@link QuickPick QuickPick} and {@link InputBox InputBox}.
5031
5049
  *
5032
5050
  * When a navigation 'back' button is needed this one should be used for consistency.
5033
5051
  * It comes with a predefined icon, tooltip and location.
@@ -5041,7 +5059,7 @@ export module '@theia/plugin' {
5041
5059
  }
5042
5060
 
5043
5061
  /**
5044
- * A concrete [QuickInput](#QuickInput) to let the user input a text value.
5062
+ * A concrete {@link QuickInput QuickInput} to let the user input a text value.
5045
5063
  *
5046
5064
  * Note that in many cases the more convenient [window.showInputBox](#window.showInputBox)
5047
5065
  * is easier to use. [window.createInputBox](#window.createInputBox) should be used
@@ -5077,7 +5095,7 @@ export module '@theia/plugin' {
5077
5095
  /**
5078
5096
  * Buttons for actions in the UI.
5079
5097
  */
5080
- buttons: ReadonlyArray<QuickInputButton>;
5098
+ buttons: readonly QuickInputButton[];
5081
5099
 
5082
5100
  /**
5083
5101
  * An event signaling when a button was triggered.
@@ -5116,7 +5134,7 @@ export module '@theia/plugin' {
5116
5134
  * [QuickInput.dispose](#QuickInput.dispose) it to allow for freeing up
5117
5135
  * any resources associated with it.
5118
5136
  *
5119
- * See [QuickPick](#QuickPick) and [InputBox](#InputBox) for concrete UIs.
5137
+ * See {@link QuickPick QuickPick} and {@link InputBox InputBox} for concrete UIs.
5120
5138
  */
5121
5139
  export interface QuickInput {
5122
5140
 
@@ -5188,14 +5206,14 @@ export module '@theia/plugin' {
5188
5206
  }
5189
5207
 
5190
5208
  /**
5191
- * Button for an action in a [QuickPick](#QuickPick) or [InputBox](#InputBox).
5209
+ * Button for an action in a {@link QuickPick QuickPick} or {@link InputBox InputBox}.
5192
5210
  */
5193
5211
  export interface QuickInputButton {
5194
5212
 
5195
5213
  /**
5196
5214
  * Icon for the button.
5197
5215
  */
5198
- readonly iconPath: Uri | { light: string | Uri; dark: string | Uri } | monaco.theme.ThemeIcon;
5216
+ readonly iconPath: Uri | { light: Uri; dark: Uri } | ThemeIcon;
5199
5217
 
5200
5218
  /**
5201
5219
  * An optional tooltip.
@@ -5255,7 +5273,7 @@ export module '@theia/plugin' {
5255
5273
  }
5256
5274
 
5257
5275
  /**
5258
- * Options for creating a [TreeView](#TreeView)
5276
+ * Options for creating a {@link TreeView TreeView}
5259
5277
  */
5260
5278
  export interface TreeViewOptions<T> {
5261
5279
 
@@ -5271,14 +5289,14 @@ export module '@theia/plugin' {
5271
5289
  }
5272
5290
 
5273
5291
  /**
5274
- * The event that is fired when an element in the [TreeView](#TreeView) is expanded or collapsed
5292
+ * The event that is fired when an element in the {@link TreeView TreeView} is expanded or collapsed
5275
5293
  */
5276
5294
  export interface TreeViewExpansionEvent<T> {
5277
5295
 
5278
5296
  /**
5279
5297
  * Element that is expanded or collapsed.
5280
5298
  */
5281
- element: T;
5299
+ readonly element: T;
5282
5300
 
5283
5301
  }
5284
5302
 
@@ -5290,7 +5308,7 @@ export module '@theia/plugin' {
5290
5308
  /**
5291
5309
  * Selected elements.
5292
5310
  */
5293
- readonly selection: T[];
5311
+ readonly selection: readonly T[];
5294
5312
 
5295
5313
  }
5296
5314
 
@@ -5300,7 +5318,7 @@ export module '@theia/plugin' {
5300
5318
  export interface TreeViewVisibilityChangeEvent {
5301
5319
 
5302
5320
  /**
5303
- * `true` if the [tree view](#TreeView) is visible otherwise `false`.
5321
+ * `true` if the {@link TreeView tree view} is visible otherwise `false`.
5304
5322
  */
5305
5323
  readonly visible: boolean;
5306
5324
 
@@ -5324,20 +5342,20 @@ export module '@theia/plugin' {
5324
5342
  /**
5325
5343
  * Currently selected elements.
5326
5344
  */
5327
- readonly selection: ReadonlyArray<T>;
5345
+ readonly selection: readonly T[];
5328
5346
 
5329
5347
  /**
5330
- * Event that is fired when the [selection](#TreeView.selection) has changed
5348
+ * Event that is fired when the {@link TreeView.selection selection} has changed
5331
5349
  */
5332
5350
  readonly onDidChangeSelection: Event<TreeViewSelectionChangeEvent<T>>;
5333
5351
 
5334
5352
  /**
5335
- * `true` if the [tree view](#TreeView) is visible otherwise `false`.
5353
+ * `true` if the {@link TreeView tree view} is visible otherwise `false`.
5336
5354
  */
5337
5355
  readonly visible: boolean;
5338
5356
 
5339
5357
  /**
5340
- * Event that is fired when [visibility](#TreeView.visible) has changed
5358
+ * Event that is fired when {@link TreeView.visible visibility} has changed
5341
5359
  */
5342
5360
  readonly onDidChangeVisibility: Event<TreeViewVisibilityChangeEvent>;
5343
5361
 
@@ -5364,9 +5382,9 @@ export module '@theia/plugin' {
5364
5382
  *
5365
5383
  * In order to not to select, set the option `select` to `false`.
5366
5384
  *
5367
- * **NOTE:** [TreeDataProvider](#TreeDataProvider) is required to implement [getParent](#TreeDataProvider.getParent) method to access this API.
5385
+ * **NOTE:** {@link TreeDataProvider TreeDataProvider} is required to implement {@link TreeDataProvider.getParent getParent} method to access this API.
5368
5386
  */
5369
- reveal(element: T, options?: { select?: boolean, focus?: boolean, expand?: boolean | number }): Thenable<void>;
5387
+ reveal(element: T, options?: { select?: boolean; focus?: boolean; expand?: boolean | number }): Thenable<void>;
5370
5388
  }
5371
5389
 
5372
5390
  /**
@@ -5381,10 +5399,10 @@ export module '@theia/plugin' {
5381
5399
  onDidChangeTreeData?: Event<T | undefined | null>;
5382
5400
 
5383
5401
  /**
5384
- * Get [TreeItem](#TreeItem) representation of the `element`
5402
+ * Get {@link TreeItem TreeItem} representation of the `element`
5385
5403
  *
5386
- * @param element The element for which [TreeItem](#TreeItem) representation is asked for.
5387
- * @return [TreeItem](#TreeItem) representation of the element
5404
+ * @param element The element for which {@link TreeItem TreeItem} representation is asked for.
5405
+ * @return {@link TreeItem TreeItem} representation of the element
5388
5406
  */
5389
5407
  getTreeItem(element: T): TreeItem | Thenable<TreeItem>;
5390
5408
 
@@ -5400,7 +5418,7 @@ export module '@theia/plugin' {
5400
5418
  * Optional method to return the parent of `element`.
5401
5419
  * Return `null` or `undefined` if `element` is a child of root.
5402
5420
  *
5403
- * **NOTE:** This method should be implemented in order to access [reveal](#TreeView.reveal) API.
5421
+ * **NOTE:** This method should be implemented in order to access {@link TreeView.reveal reveal} API.
5404
5422
  *
5405
5423
  * @param element The element for which the parent has to be returned.
5406
5424
  * @return Parent of `element`.
@@ -5410,7 +5428,7 @@ export module '@theia/plugin' {
5410
5428
 
5411
5429
  export class TreeItem {
5412
5430
  /**
5413
- * A human-readable string describing this item. When `falsy`, it is derived from [resourceUri](#TreeItem.resourceUri).
5431
+ * A human-readable string describing this item. When `falsy`, it is derived from {@link TreeItem.resourceUri resourceUri}.
5414
5432
  */
5415
5433
  label?: string | TreeItemLabel;
5416
5434
 
@@ -5422,23 +5440,23 @@ export module '@theia/plugin' {
5422
5440
  id?: string;
5423
5441
 
5424
5442
  /**
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).
5443
+ * The icon path or {@link ThemeIcon ThemeIcon} for the tree item.
5444
+ * When `falsy`, {@link ThemeIcon.Folder Folder Theme Icon} is assigned, if item is collapsible otherwise {@link ThemeIcon.File File Theme Icon}.
5445
+ * 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
5446
  */
5429
5447
  iconPath?: string | Uri | { light: string | Uri; dark: string | Uri } | ThemeIcon;
5430
5448
 
5431
5449
  /**
5432
5450
  * 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.
5451
+ * When `true`, it is derived from {@link TreeItem.resourceUri resourceUri} and when `falsy`, it is not shown.
5434
5452
  */
5435
5453
  description?: string | boolean;
5436
5454
 
5437
5455
  /**
5438
- * The [uri](#Uri) of the resource representing this item.
5456
+ * The {@link Uri uri} of the resource representing this item.
5439
5457
  *
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.
5458
+ * Will be used to derive the {@link TreeItem.label label}, when it is not provided.
5459
+ * Will be used to derive the icon from current icon theme, when {@link TreeItem.iconPath iconPath} has {@link ThemeIcon ThemeIcon} value.
5442
5460
  */
5443
5461
  resourceUri?: Uri;
5444
5462
 
@@ -5448,12 +5466,12 @@ export module '@theia/plugin' {
5448
5466
  tooltip?: string | undefined;
5449
5467
 
5450
5468
  /**
5451
- * The [command](#Command) which should be run when the tree item is selected.
5469
+ * The {@link Command command} which should be run when the tree item is selected.
5452
5470
  */
5453
5471
  command?: Command;
5454
5472
 
5455
5473
  /**
5456
- * [TreeItemCollapsibleState](#TreeItemCollapsibleState) of the tree item.
5474
+ * {@link TreeItemCollapsibleState TreeItemCollapsibleState} of the tree item.
5457
5475
  */
5458
5476
  collapsibleState?: TreeItemCollapsibleState;
5459
5477
 
@@ -5486,13 +5504,13 @@ export module '@theia/plugin' {
5486
5504
 
5487
5505
  /**
5488
5506
  * @param label A human-readable string describing this item
5489
- * @param collapsibleState [TreeItemCollapsibleState](#TreeItemCollapsibleState) of the tree item. Default is [TreeItemCollapsibleState.None](#TreeItemCollapsibleState.None)
5507
+ * @param collapsibleState {@link TreeItemCollapsibleState TreeItemCollapsibleState} of the tree item. Default is [TreeItemCollapsibleState.None](#TreeItemCollapsibleState.None)
5490
5508
  */
5491
5509
  constructor(label: string | TreeItemLabel, collapsibleState?: TreeItemCollapsibleState);
5492
5510
 
5493
5511
  /**
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)
5512
+ * @param resourceUri The {@link Uri uri} of the resource representing this item.
5513
+ * @param collapsibleState {@link TreeItemCollapsibleState TreeItemCollapsibleState} of the tree item. Default is [TreeItemCollapsibleState.None](#TreeItemCollapsibleState.None)
5496
5514
  */
5497
5515
  constructor(resourceUri: Uri, collapsibleState?: TreeItemCollapsibleState);
5498
5516
  }
@@ -5544,7 +5562,7 @@ export module '@theia/plugin' {
5544
5562
  *
5545
5563
  * *Workspace configuration* comes from Workspace Settings and shadows Global configuration.
5546
5564
  *
5547
- * *Workspace Folder configuration* comes from `.vscode` folder under one of the [workspace folders](#workspace.workspaceFolders).
5565
+ * *Workspace Folder configuration* comes from `.vscode` folder under one of the {@link workspace.workspaceFolders workspace folders}.
5548
5566
  *
5549
5567
  * *Note:* Workspace and Workspace Folder configurations contains `launch` and `tasks` settings. Their basename will be
5550
5568
  * part of the section identifier. The following snippets shows how to retrieve all configurations
@@ -5611,15 +5629,15 @@ export module '@theia/plugin' {
5611
5629
  *
5612
5630
  * A value can be changed in
5613
5631
  *
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.
5632
+ * - {@link ConfigurationTarget.Global Global configuration}: Changes the value for all instances of the editor.
5633
+ * - {@link ConfigurationTarget.Workspace Workspace configuration}: Changes the value for current workspace, if available.
5634
+ * - {@link ConfigurationTarget.WorkspaceFolder Workspace folder configuration}: Changes the value for the
5635
+ * {@link workspace.workspaceFolders Workspace folder} to which the current {@link WorkspaceConfiguration configuration} is scoped to.
5618
5636
  *
5619
5637
  * *Note 1:* Setting a global value in the presence of a more specific workspace value
5620
5638
  * has no observable effect in that workspace, but in others. Setting a workspace value
5621
5639
  * 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
5640
+ * under respective {@link workspace.workspaceFolders folder}, but in others. Refer to
5623
5641
  * [Settings Inheritence](https://code.visualstudio.com/docs/getstarted/settings) for more information.
5624
5642
  *
5625
5643
  * *Note 2:* To remove a configuration value use `undefined`, like so: `config.update('somekey', undefined)`
@@ -5633,7 +5651,7 @@ export module '@theia/plugin' {
5633
5651
  *
5634
5652
  * @param section Configuration name, supports _dotted_ names.
5635
5653
  * @param value The new value.
5636
- * @param configurationTarget The [configuration target](#ConfigurationTarget) or a boolean value.
5654
+ * @param configurationTarget The {@link ConfigurationTarget configuration target} or a boolean value.
5637
5655
  * - If `true` configuration target is `ConfigurationTarget.Global`.
5638
5656
  * - If `false` configuration target is `ConfigurationTarget.Workspace`.
5639
5657
  * - If `undefined` or `null` configuration target is
@@ -5684,18 +5702,18 @@ export module '@theia/plugin' {
5684
5702
  export type ConfigurationScope = Uri | WorkspaceFolder | TextDocument | { uri?: Uri, languageId: string };
5685
5703
 
5686
5704
  /**
5687
- * An event describing a change to the set of [workspace folders](#workspace.workspaceFolders).
5705
+ * An event describing a change to the set of {@link workspace.workspaceFolders workspace folders}.
5688
5706
  */
5689
5707
  export interface WorkspaceFoldersChangeEvent {
5690
5708
  /**
5691
5709
  * Added workspace folders.
5692
5710
  */
5693
- readonly added: WorkspaceFolder[];
5711
+ readonly added: readonly WorkspaceFolder[];
5694
5712
 
5695
5713
  /**
5696
5714
  * Removed workspace folders.
5697
5715
  */
5698
- readonly removed: WorkspaceFolder[];
5716
+ readonly removed: readonly WorkspaceFolder[];
5699
5717
  }
5700
5718
 
5701
5719
  /**
@@ -5706,7 +5724,7 @@ export module '@theia/plugin' {
5706
5724
  /**
5707
5725
  * The associated uri for this workspace folder.
5708
5726
  *
5709
- * *Note:* The [Uri](#Uri)-type was intentionally chosen such that future releases of the editor can support
5727
+ * *Note:* The {@link Uri Uri}-type was intentionally chosen such that future releases of the editor can support
5710
5728
  * workspace folders that are not stored on the local disk, e.g. `ftp://server/workspaces/foo`.
5711
5729
  */
5712
5730
  readonly uri: Uri;
@@ -5884,22 +5902,22 @@ export module '@theia/plugin' {
5884
5902
  * and to manage files and folders. It allows extensions to serve files from remote places,
5885
5903
  * like ftp-servers, and to seamlessly integrate those into the editor.
5886
5904
  *
5887
- * * *Note 1:* The filesystem provider API works with [uris](#Uri) and assumes hierarchical
5905
+ * * *Note 1:* The filesystem provider API works with {@link Uri uris} and assumes hierarchical
5888
5906
  * paths, e.g. `foo:/my/path` is a child of `foo:/my/` and a parent of `foo:/my/path/deeper`.
5889
5907
  * * *Note 2:* There is an activation event `onFileSystem:<scheme>` that fires when a file
5890
5908
  * or folder is being accessed.
5891
- * * *Note 3:* The word 'file' is often used to denote all [kinds](#FileType) of files, e.g.
5909
+ * * *Note 3:* The word 'file' is often used to denote all {@link FileType kinds} of files, e.g.
5892
5910
  * folders, symbolic links, and regular files.
5893
5911
  */
5894
5912
  export interface FileSystemProvider {
5895
5913
 
5896
5914
  /**
5897
5915
  * 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)
5916
+ * event should fire for resources that are being {@link FileSystemProvider.watch watched}
5899
5917
  * by clients of this provider.
5900
5918
  *
5901
5919
  * *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
5920
+ * updated `mtime` that advanced from the previous value in the {@link FileStat stat} and a
5903
5921
  * correct `size` value. Otherwise there may be optimizations in place that will not show
5904
5922
  * the change in an editor for example.
5905
5923
  */
@@ -5922,23 +5940,23 @@ export module '@theia/plugin' {
5922
5940
  * Retrieve metadata about a file.
5923
5941
  *
5924
5942
  * 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.
5943
+ * Still, the {@link FileType.SymbolicLink SymbolicLink}-type must be used in addition to the actual type, e.g.
5926
5944
  * `FileType.SymbolicLink | FileType.Directory`.
5927
5945
  *
5928
5946
  * @param uri The uri of the file to retrieve metadata about.
5929
5947
  * @return The file metadata about the file.
5930
5948
  * @throws [`FileNotFound`](#FileSystemError.FileNotFound) when `uri` doesn't exist.
5931
5949
  */
5932
- stat(uri: Uri): FileStat | Promise<FileStat>;
5950
+ stat(uri: Uri): FileStat | Thenable<FileStat>;
5933
5951
 
5934
5952
  /**
5935
- * Retrieve all entries of a [directory](#FileType.Directory).
5953
+ * Retrieve all entries of a {@link FileType.Directory directory}.
5936
5954
  *
5937
5955
  * @param uri The uri of the folder.
5938
5956
  * @return An array of name/type-tuples or a thenable that resolves to such.
5939
5957
  * @throws [`FileNotFound`](#FileSystemError.FileNotFound) when `uri` doesn't exist.
5940
5958
  */
5941
- readDirectory(uri: Uri): [string, FileType][] | Promise<[string, FileType][]>;
5959
+ readDirectory(uri: Uri): [string, FileType][] | Thenable<[string, FileType][]>;
5942
5960
 
5943
5961
  /**
5944
5962
  * Create a new directory (Note, that new files are created via `write`-calls).
@@ -5948,7 +5966,7 @@ export module '@theia/plugin' {
5948
5966
  * @throws [`FileExists`](#FileSystemError.FileExists) when `uri` already exists.
5949
5967
  * @throws [`NoPermissions`](#FileSystemError.NoPermissions) when permissions aren't sufficient.
5950
5968
  */
5951
- createDirectory(uri: Uri): void | Promise<void>;
5969
+ createDirectory(uri: Uri): void | Thenable<void>;
5952
5970
 
5953
5971
  /**
5954
5972
  * Read the entire contents of a file.
@@ -5957,7 +5975,7 @@ export module '@theia/plugin' {
5957
5975
  * @return An array of bytes or a thenable that resolves to such.
5958
5976
  * @throws [`FileNotFound`](#FileSystemError.FileNotFound) when `uri` doesn't exist.
5959
5977
  */
5960
- readFile(uri: Uri): Uint8Array | Promise<Uint8Array>;
5978
+ readFile(uri: Uri): Uint8Array | Thenable<Uint8Array>;
5961
5979
 
5962
5980
  /**
5963
5981
  * Write data to a file, replacing its entire contents.
@@ -5970,7 +5988,7 @@ export module '@theia/plugin' {
5970
5988
  * @throws [`FileExists`](#FileSystemError.FileExists) when `uri` already exists, `create` is set but `overwrite` is not set.
5971
5989
  * @throws [`NoPermissions`](#FileSystemError.NoPermissions) when permissions aren't sufficient.
5972
5990
  */
5973
- writeFile(uri: Uri, content: Uint8Array, options: { create: boolean, overwrite: boolean }): void | Promise<void>;
5991
+ writeFile(uri: Uri, content: Uint8Array, options: { create: boolean, overwrite: boolean }): void | Thenable<void>;
5974
5992
 
5975
5993
  /**
5976
5994
  * Delete a file.
@@ -5980,7 +5998,7 @@ export module '@theia/plugin' {
5980
5998
  * @throws [`FileNotFound`](#FileSystemError.FileNotFound) when `uri` doesn't exist.
5981
5999
  * @throws [`NoPermissions`](#FileSystemError.NoPermissions) when permissions aren't sufficient.
5982
6000
  */
5983
- delete(uri: Uri, options: { recursive: boolean }): void | Promise<void>;
6001
+ delete(uri: Uri, options: { recursive: boolean }): void | Thenable<void>;
5984
6002
 
5985
6003
  /**
5986
6004
  * Rename a file or folder.
@@ -5993,7 +6011,7 @@ export module '@theia/plugin' {
5993
6011
  * @throws [`FileExists`](#FileSystemError.FileExists) when `newUri` exists and when the `overwrite` option is not `true`.
5994
6012
  * @throws [`NoPermissions`](#FileSystemError.NoPermissions) when permissions aren't sufficient.
5995
6013
  */
5996
- rename(oldUri: Uri, newUri: Uri, options: { overwrite: boolean }): void | Promise<void>;
6014
+ rename(oldUri: Uri, newUri: Uri, options: { overwrite: boolean }): void | Thenable<void>;
5997
6015
 
5998
6016
  /**
5999
6017
  * Copy files or folders. Implementing this function is optional but it will speedup
@@ -6007,12 +6025,12 @@ export module '@theia/plugin' {
6007
6025
  * @throws [`FileExists`](#FileSystemError.FileExists) when `destination` exists and when the `overwrite` option is not `true`.
6008
6026
  * @throws [`NoPermissions`](#FileSystemError.NoPermissions) when permissions aren't sufficient.
6009
6027
  */
6010
- copy?(source: Uri, destination: Uri, options: { overwrite: boolean }): void | Promise<void>;
6028
+ copy?(source: Uri, destination: Uri, options: { overwrite: boolean }): void | Thenable<void>;
6011
6029
  }
6012
6030
 
6013
6031
  /**
6014
6032
  * The file system interface exposes the editor's built-in and contributed
6015
- * [file system providers](#FileSystemProvider). It allows extensions to work
6033
+ * {@link FileSystemProvider file system providers}. It allows extensions to work
6016
6034
  * with files from the local disk as well as files from remote places, like the
6017
6035
  * remote extension host or ftp-servers.
6018
6036
  *
@@ -6029,7 +6047,7 @@ export module '@theia/plugin' {
6029
6047
  stat(uri: Uri): Thenable<FileStat>;
6030
6048
 
6031
6049
  /**
6032
- * Retrieve all entries of a [directory](#FileType.Directory).
6050
+ * Retrieve all entries of a {@link FileType.Directory directory}.
6033
6051
  *
6034
6052
  * @param uri The uri of the folder.
6035
6053
  * @return An array of name/type-tuples or a thenable that resolves to such.
@@ -6094,14 +6112,14 @@ export module '@theia/plugin' {
6094
6112
  * of the folder that has been opened. There is no workspace when just a file but not a
6095
6113
  * folder has been opened.
6096
6114
  *
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_
6115
+ * The workspace offers support for {@link workspace.createFileSystemWatcher listening} to fs
6116
+ * events and for {@link workspace.findFiles finding} files. Both perform well and run _outside_
6099
6117
  * the editor-process so that they should be always used instead of nodejs-equivalents.
6100
6118
  */
6101
6119
  export namespace workspace {
6102
6120
 
6103
6121
  /**
6104
- * A [file system](#FileSystem) instance that allows to interact with local and remote
6122
+ * A {@link FileSystem file system} instance that allows to interact with local and remote
6105
6123
  * files, e.g. `workspace.fs.readDirectory(someUri)` allows to retrieve all entries
6106
6124
  * of a directory or `workspace.fs.stat(anotherUri)` returns the meta data for a
6107
6125
  * file.
@@ -6116,7 +6134,7 @@ export module '@theia/plugin' {
6116
6134
  *
6117
6135
  * @readonly
6118
6136
  */
6119
- export let rootPath: string | undefined;
6137
+ export const rootPath: string | undefined;
6120
6138
 
6121
6139
  /**
6122
6140
  * List of workspace folders or `undefined` when no folder is open.
@@ -6124,7 +6142,7 @@ export module '@theia/plugin' {
6124
6142
  *
6125
6143
  * @readonly
6126
6144
  */
6127
- export let workspaceFolders: WorkspaceFolder[] | undefined;
6145
+ export const workspaceFolders: readonly WorkspaceFolder[] | undefined;
6128
6146
 
6129
6147
  /**
6130
6148
  * The location of the workspace file, for example:
@@ -6160,7 +6178,7 @@ export module '@theia/plugin' {
6160
6178
  *
6161
6179
  * @readonly
6162
6180
  */
6163
- export let textDocuments: TextDocument[];
6181
+ export let textDocuments: readonly TextDocument[];
6164
6182
 
6165
6183
  /**
6166
6184
  * Register a text document content provider.
@@ -6169,46 +6187,46 @@ export module '@theia/plugin' {
6169
6187
  *
6170
6188
  * @param scheme The uri-scheme to register for.
6171
6189
  * @param provider A content provider.
6172
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
6190
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
6173
6191
  */
6174
6192
  export function registerTextDocumentContentProvider(scheme: string, provider: TextDocumentContentProvider): Disposable;
6175
6193
 
6176
6194
  /**
6177
- * An event that is emitted when a [text document](#TextDocument) is opened.
6195
+ * An event that is emitted when a {@link TextDocument text document} is opened.
6178
6196
  *
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:
6197
+ * To add an event listener when a visible text document is opened, use the {@link TextEditor TextEditor} events in the
6198
+ * {@link window window} namespace. Note that:
6181
6199
  *
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
6200
+ * - The event is emitted before the {@link TextDocument document} is updated in the
6201
+ * {@link window.activeTextEditor active text editor}
6202
+ * - 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
6203
  *
6186
6204
  */
6187
6205
  export const onDidOpenTextDocument: Event<TextDocument>;
6188
6206
 
6189
6207
  /**
6190
- * An event that is emitted when a [text document](#TextDocument) is disposed.
6208
+ * An event that is emitted when a {@link TextDocument text document} is disposed.
6191
6209
  *
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).
6210
+ * To add an event listener when a visible text document is closed, use the {@link TextEditor TextEditor} events in the
6211
+ * {@link window window} namespace. Note that this event is not emitted when a {@link TextEditor TextEditor} is closed
6212
+ * but the document remains open in another {@link window.visibleTextEditors visible text editor}.
6195
6213
  */
6196
6214
  export const onDidCloseTextDocument: Event<TextDocument>;
6197
6215
 
6198
6216
  /**
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.
6217
+ * An event that is emitted when a {@link TextDocument text document} is changed. This usually happens
6218
+ * when the {@link TextDocument.getText contents} changes but also when other things like the
6219
+ * {@link TextDocument.isDirty dirty}-state changes.
6202
6220
  */
6203
6221
  export const onDidChangeTextDocument: Event<TextDocumentChangeEvent>;
6204
6222
 
6205
6223
  /**
6206
- * An event that is emitted when a [text document](#TextDocument) will be saved to disk.
6224
+ * An event that is emitted when a {@link TextDocument text document} will be saved to disk.
6207
6225
  *
6208
6226
  * *Note 1:* Subscribers can delay saving by registering asynchronous work. For the sake of data integrity the editor
6209
6227
  * might save without firing this event. For instance when shutting down with dirty files.
6210
6228
  *
6211
- * *Note 2:* Subscribers are called sequentially and they can [delay](#TextDocumentWillSaveEvent.waitUntil) saving
6229
+ * *Note 2:* Subscribers are called sequentially and they can {@link TextDocumentWillSaveEvent.waitUntil delay} saving
6212
6230
  * by registering asynchronous work. Protection against misbehaving listeners is implemented as such:
6213
6231
  * * there is an overall time budget that all listeners share and if that is exhausted no further listener is called
6214
6232
  * * listeners that take a long time or produce errors frequently will not be called anymore
@@ -6218,7 +6236,7 @@ export module '@theia/plugin' {
6218
6236
  export const onWillSaveTextDocument: Event<TextDocumentWillSaveEvent>;
6219
6237
 
6220
6238
  /**
6221
- * An event that is emitted when a [text document](#TextDocument) is saved to disk.
6239
+ * An event that is emitted when a {@link TextDocument text document} is saved to disk.
6222
6240
  */
6223
6241
  export const onDidSaveTextDocument: Event<TextDocument>;
6224
6242
 
@@ -6294,29 +6312,29 @@ export module '@theia/plugin' {
6294
6312
 
6295
6313
  /**
6296
6314
  * 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.
6315
+ * the document is loaded and the {@link workspace.onDidOpenTextDocument didOpen}-event fires.
6298
6316
  *
6299
- * The document is denoted by an [uri](#Uri). Depending on the [scheme](#Uri.scheme) the
6317
+ * The document is denoted by an {@link Uri uri}. Depending on the {@link Uri.scheme scheme} the
6300
6318
  * following rules apply:
6301
6319
  * * `file`-scheme: Open a file on disk, will be rejected if the file does not exist or cannot be loaded.
6302
6320
  * * `untitled`-scheme: A new file that should be saved on disk, e.g. `untitled:c:\frodo\new.js`. The language
6303
6321
  * will be derived from the file name.
6304
- * * For all other schemes the registered text document content [providers](#TextDocumentContentProvider) are consulted.
6322
+ * * For all other schemes the registered text document content {@link TextDocumentContentProvider providers} are consulted.
6305
6323
  *
6306
6324
  * *Note* that the lifecycle of the returned document is owned by the editor and not by the extension. That means an
6307
6325
  * [`onDidClose`](#workspace.onDidCloseTextDocument)-event can occur at any time after opening it.
6308
6326
  *
6309
6327
  * @param uri Identifies the resource to open.
6310
- * @return A promise that resolves to a [document](#TextDocument).
6328
+ * @return A promise that resolves to a {@link TextDocument document}.
6311
6329
  */
6312
6330
  export function openTextDocument(uri: Uri): Thenable<TextDocument | undefined>;
6313
6331
 
6314
6332
  /**
6315
6333
  * A short-hand for `openTextDocument(Uri.file(fileName))`.
6316
6334
  *
6317
- * @see [openTextDocument](#openTextDocument)
6335
+ * @see {@link openTextDocument openTextDocument}
6318
6336
  * @param fileName A name of a file on disk.
6319
- * @return A promise that resolves to a [document](#TextDocument).
6337
+ * @return A promise that resolves to a {@link TextDocument document}.
6320
6338
  */
6321
6339
  export function openTextDocument(fileName: string): Thenable<TextDocument | undefined>;
6322
6340
 
@@ -6326,7 +6344,7 @@ export module '@theia/plugin' {
6326
6344
  * specify the *language* and/or the *content* of the document.
6327
6345
  *
6328
6346
  * @param options Options to control how the document will be created.
6329
- * @return A promise that resolves to a [document](#TextDocument).
6347
+ * @return A promise that resolves to a {@link TextDocument document}.
6330
6348
  */
6331
6349
  export function openTextDocument(options?: { language?: string; content?: string; }): Thenable<TextDocument | undefined>;
6332
6350
 
@@ -6346,7 +6364,7 @@ export module '@theia/plugin' {
6346
6364
  export function getConfiguration(section?: string, scope?: ConfigurationScope | null): WorkspaceConfiguration;
6347
6365
 
6348
6366
  /**
6349
- * An event that is emitted when the [configuration](#WorkspaceConfiguration) changed.
6367
+ * An event that is emitted when the {@link WorkspaceConfiguration configuration} changed.
6350
6368
  */
6351
6369
  export const onDidChangeConfiguration: Event<ConfigurationChangeEvent>;
6352
6370
 
@@ -6356,10 +6374,10 @@ export module '@theia/plugin' {
6356
6374
  * A glob pattern that filters the file events on their absolute path must be provided. Optionally,
6357
6375
  * flags to ignore certain kinds of events can be provided. To stop listening to events the watcher must be disposed.
6358
6376
  *
6359
- * *Note* that only files within the current [workspace folders](#workspace.workspaceFolders) can be watched.
6377
+ * *Note* that only files within the current {@link workspace.workspaceFolders workspace folders} can be watched.
6360
6378
  *
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).
6379
+ * @param globPattern A {@link GlobPattern glob pattern} that is applied to the absolute paths of created, changed,
6380
+ * and deleted files. Use a {@link RelativePattern relative pattern} to limit events to a certain {@link WorkspaceFolder workspace folder}.
6363
6381
  * @param ignoreCreateEvents Ignore when files have been created.
6364
6382
  * @param ignoreChangeEvents Ignore when files have been changed.
6365
6383
  * @param ignoreDeleteEvents Ignore when files have been deleted.
@@ -6373,32 +6391,22 @@ export module '@theia/plugin' {
6373
6391
  ): FileSystemWatcher;
6374
6392
 
6375
6393
  /**
6376
- * Find files across all [workspace folders](#workspace.workspaceFolders) in the workspace.
6394
+ * Find files across all {@link workspace.workspaceFolders workspace folders} in the workspace.
6377
6395
  *
6378
6396
  * @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
6397
+ * @param include A {@link GlobPattern glob pattern} that defines the files to search for. The glob pattern
6398
+ * will be matched against the file paths of resulting matches relative to their workspace. Use a {@link RelativePattern relative pattern}
6399
+ * to restrict the search results to a {@link WorkspaceFolder workspace folder}.
6400
+ * @param exclude A {@link GlobPattern glob pattern} that defines files and folders to exclude. The glob pattern
6383
6401
  * will be matched against the file paths of resulting matches relative to their workspace. When `undefined` only default excludes will
6384
6402
  * apply, when `null` no excludes will apply.
6385
6403
  * @param maxResults An upper-bound for the result.
6386
6404
  * @param token A token that can be used to signal cancellation to the underlying search engine.
6387
6405
  * @return A thenable that resolves to an array of resource identifiers. Will return no results if no
6388
- * [workspace folders](#workspace.workspaceFolders) are opened.
6406
+ * {@link workspace.workspaceFolders workspace folders} are opened.
6389
6407
  */
6390
6408
  export function findFiles(include: GlobPattern, exclude?: GlobPattern | null, maxResults?: number, token?: CancellationToken): Thenable<Uri[]>;
6391
6409
 
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
6410
  /**
6403
6411
  * Save all dirty files.
6404
6412
  *
@@ -6409,7 +6417,7 @@ export module '@theia/plugin' {
6409
6417
 
6410
6418
  /**
6411
6419
  * Make changes to one or many resources or create, delete, and rename resources as defined by the given
6412
- * [workspace edit](#WorkspaceEdit).
6420
+ * {@link WorkspaceEdit workspace edit}.
6413
6421
  *
6414
6422
  * All changes of a workspace edit are applied in the same order in which they have been added. If
6415
6423
  * multiple textual inserts are made at the same position, these strings appear in the resulting text
@@ -6431,15 +6439,15 @@ export module '@theia/plugin' {
6431
6439
  * There can only be one provider per scheme and an error is being thrown when a scheme
6432
6440
  * has been claimed by another provider or when it is reserved.
6433
6441
  *
6434
- * @param scheme The uri-[scheme](#Uri.scheme) the provider registers for.
6442
+ * @param scheme The uri-{@link Uri.scheme scheme} the provider registers for.
6435
6443
  * @param provider The filesystem provider.
6436
6444
  * @param options Immutable metadata about the provider.
6437
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
6445
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
6438
6446
  */
6439
6447
  export function registerFileSystemProvider(scheme: string, provider: FileSystemProvider, options?: { readonly isCaseSensitive?: boolean, readonly isReadonly?: boolean }): Disposable;
6440
6448
 
6441
6449
  /**
6442
- * Returns the [workspace folder](#WorkspaceFolder) that contains a given uri.
6450
+ * Returns the {@link WorkspaceFolder workspace folder} that contains a given uri.
6443
6451
  * * returns `undefined` when the given uri doesn't match any workspace folder
6444
6452
  *
6445
6453
  * @param uri An uri.
@@ -6450,10 +6458,10 @@ export module '@theia/plugin' {
6450
6458
  /**
6451
6459
  * Returns a path that is relative to the workspace folder or folders.
6452
6460
  *
6453
- * When there are no [workspace folders](#workspace.workspaceFolders) or when the path
6461
+ * When there are no {@link workspace.workspaceFolders workspace folders} or when the path
6454
6462
  * is not contained in them, the input is returned.
6455
6463
  *
6456
- * @param pathOrUri A path or uri. When a uri is given its [fsPath](#Uri.fsPath) is used.
6464
+ * @param pathOrUri A path or uri. When a uri is given its {@link Uri.fsPath fsPath} is used.
6457
6465
  * @param includeWorkspaceFolder When `true` and when the given path is contained inside a
6458
6466
  * workspace folder the name of the workspace is prepended. Defaults to `true` when there are
6459
6467
  * multiple workspace folders and `false` otherwise.
@@ -6462,7 +6470,7 @@ export module '@theia/plugin' {
6462
6470
  export function asRelativePath(pathOrUri: string | Uri, includeWorkspaceFolder?: boolean): string | undefined;
6463
6471
 
6464
6472
  /**
6465
- * This method replaces `deleteCount` [workspace folders](#workspace.workspaceFolders) starting at index `start`
6473
+ * This method replaces `deleteCount` {@link workspace.workspaceFolders workspace folders} starting at index `start`
6466
6474
  * by an optional set of `workspaceFoldersToAdd` on the `theia.workspace.workspaceFolders` array. This "splice"
6467
6475
  * behavior can be used to add, remove and change workspace folders in a single operation.
6468
6476
  *
@@ -6494,7 +6502,7 @@ export module '@theia/plugin' {
6494
6502
  * **Note:** it is not valid to call [updateWorkspaceFolders()](#updateWorkspaceFolders) multiple times
6495
6503
  * without waiting for the [`onDidChangeWorkspaceFolders()`](#onDidChangeWorkspaceFolders) to fire.
6496
6504
  *
6497
- * @param start the zero-based location in the list of currently opened [workspace folders](#WorkspaceFolder)
6505
+ * @param start the zero-based location in the list of currently opened {@link WorkspaceFolder workspace folders}
6498
6506
  * from which to start deleting workspace folders.
6499
6507
  * @param deleteCount the optional number of workspace folders to remove.
6500
6508
  * @param workspaceFoldersToAdd the optional variable set of workspace folders to add in place of the deleted ones.
@@ -6511,7 +6519,7 @@ export module '@theia/plugin' {
6511
6519
  *
6512
6520
  * @param type The task kind type this provider is registered for.
6513
6521
  * @param provider A task provider.
6514
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
6522
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
6515
6523
  */
6516
6524
  export function registerTaskProvider(type: string, provider: TaskProvider): Disposable;
6517
6525
 
@@ -6684,7 +6692,7 @@ export module '@theia/plugin' {
6684
6692
  /**
6685
6693
  * A relative pattern is a helper to construct glob patterns that are matched
6686
6694
  * relatively to a base path. The base path can either be an absolute file path
6687
- * or a [workspace folder](#WorkspaceFolder).
6695
+ * or a {@link WorkspaceFolder workspace folder}.
6688
6696
  */
6689
6697
  export class RelativePattern {
6690
6698
 
@@ -6715,7 +6723,7 @@ export module '@theia/plugin' {
6715
6723
 
6716
6724
  /**
6717
6725
  * 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).
6726
+ * (like `**​/*.{ts,js}` or `*.{ts,js}`) or a {@link RelativePattern relative pattern}.
6719
6727
  *
6720
6728
  * Glob patterns can have the following syntax:
6721
6729
  * * `*` to match one or more characters in a path segment
@@ -6729,8 +6737,8 @@ export module '@theia/plugin' {
6729
6737
 
6730
6738
  /**
6731
6739
  * 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).
6740
+ * the {@link TextDocument.languageId language}, the {@link Uri.scheme scheme} of
6741
+ * its resource, or a glob-pattern that is applied to the {@link TextDocument.fileName path}.
6734
6742
  *
6735
6743
  * @sample A language filter that applies to typescript files on disk: `{ language: 'typescript', scheme: 'file' }`
6736
6744
  * @sample A language filter that applies to all package.json paths: `{ language: 'json', scheme: 'untitled', pattern: '**​/package.json' }`
@@ -6740,23 +6748,23 @@ export module '@theia/plugin' {
6740
6748
  /**
6741
6749
  * A language id, like `typescript`.
6742
6750
  */
6743
- language?: string;
6751
+ readonly language?: string;
6744
6752
 
6745
6753
  /**
6746
- * A Uri [scheme](#Uri.scheme), like `file` or `untitled`.
6754
+ * A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
6747
6755
  */
6748
- scheme?: string;
6756
+ readonly scheme?: string;
6749
6757
 
6750
6758
  /**
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).
6759
+ * A {@link GlobPattern glob pattern} that is matched on the absolute path of the document. Use a {@link RelativePattern relative pattern}
6760
+ * to filter documents to a {@link WorkspaceFolder workspace folder}.
6753
6761
  */
6754
- pattern?: GlobPattern;
6762
+ readonly pattern?: GlobPattern;
6755
6763
  }
6756
6764
 
6757
6765
  /**
6758
6766
  * A language selector is the combination of one or many language identifiers
6759
- * and [language filters](#DocumentFilter).
6767
+ * and {@link DocumentFilter language filters}.
6760
6768
  *
6761
6769
  * *Note* that a document selector that is just a language identifier selects *all*
6762
6770
  * documents, even those that are not saved on disk. Only use such selectors when
@@ -6883,11 +6891,11 @@ export module '@theia/plugin' {
6883
6891
  /**
6884
6892
  * @deprecated Use the autoClosingPairs property in the language configuration file instead.
6885
6893
  */
6886
- __characterPairSupport?: { autoClosingPairs: { close: String, notIn: String[], open: String }[] }
6894
+ __characterPairSupport?: { autoClosingPairs: { open: string; close: string; notIn?: string[]; }[]; };
6887
6895
  /**
6888
6896
  * @deprecated Do not use. Will be replaced by a better API soon.
6889
6897
  */
6890
- __electricCharacterSupport?: { brackets: any, docComment: { close: String, lineStart: String, open: String, scope: String } }
6898
+ __electricCharacterSupport?: { brackets?: any, docComment?: { scope: string; open: string; lineStart: string; close?: string; }; };
6891
6899
  /**
6892
6900
  * The language's comment settings.
6893
6901
  */
@@ -7101,7 +7109,7 @@ export module '@theia/plugin' {
7101
7109
  }
7102
7110
 
7103
7111
  /**
7104
- * How a [completion provider](#CompletionItemProvider) was triggered
7112
+ * How a {@link CompletionItemProvider completion provider} was triggered
7105
7113
  */
7106
7114
  export enum CompletionTriggerKind {
7107
7115
  /**
@@ -7120,7 +7128,7 @@ export module '@theia/plugin' {
7120
7128
 
7121
7129
  /**
7122
7130
  * Contains additional information about the context in which
7123
- * [completion provider](#CompletionItemProvider.provideCompletionItems) is triggered.
7131
+ * {@link CompletionItemProvider.provideCompletionItems completion provider} is triggered.
7124
7132
  */
7125
7133
  export interface CompletionContext {
7126
7134
  /**
@@ -7223,7 +7231,7 @@ export module '@theia/plugin' {
7223
7231
  /**
7224
7232
  * ~~Creates a new symbol information object.~~
7225
7233
  *
7226
- * @deprecated Please use the constructor taking a [location](#Location) object.
7234
+ * @deprecated Please use the constructor taking a {@link Location location} object.
7227
7235
  *
7228
7236
  * @param name The name of the symbol.
7229
7237
  * @param kind The kind of the symbol.
@@ -7391,15 +7399,15 @@ export module '@theia/plugin' {
7391
7399
  label: string;
7392
7400
 
7393
7401
  /**
7394
- * An [edit](#TextEdit) which is applied to a document when selecting
7395
- * this presentation for the color. When `falsy` the [label](#ColorPresentation.label)
7402
+ * An {@link TextEdit edit} which is applied to a document when selecting
7403
+ * this presentation for the color. When `falsy` the {@link ColorPresentation.label label}
7396
7404
  * is used.
7397
7405
  */
7398
7406
  textEdit?: TextEdit;
7399
7407
 
7400
7408
  /**
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.
7409
+ * An optional array of additional {@link TextEdit text edits} that are applied when
7410
+ * selecting this color presentation. Edits must not overlap with the main {@link ColorPresentation.textEdit edit} nor with themselves.
7403
7411
  */
7404
7412
  additionalTextEdits?: TextEdit[];
7405
7413
 
@@ -7422,13 +7430,13 @@ export module '@theia/plugin' {
7422
7430
  *
7423
7431
  * @param document The document in which the command was invoked.
7424
7432
  * @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
7433
+ * @return An array of {@link ColorInformation color information} or a thenable that resolves to such. The lack of a result
7426
7434
  * can be signaled by returning `undefined`, `null`, or an empty array.
7427
7435
  */
7428
7436
  provideDocumentColors(document: TextDocument, token: CancellationToken): ProviderResult<ColorInformation[]>;
7429
7437
 
7430
7438
  /**
7431
- * Provide [representations](#ColorPresentation) for a color.
7439
+ * Provide {@link ColorPresentation representations} for a color.
7432
7440
  *
7433
7441
  * @param color The color to show and insert.
7434
7442
  * @param context A context object with additional information
@@ -7458,10 +7466,10 @@ export module '@theia/plugin' {
7458
7466
  end: number;
7459
7467
 
7460
7468
  /**
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
7469
+ * Describes the {@link FoldingRangeKind Kind} of the folding range such as {@link FoldingRangeKind.Comment Comment} or
7470
+ * {@link FoldingRangeKind.Region Region}. The kind is used to categorize folding ranges and used by commands
7463
7471
  * like 'Fold all comments'. See
7464
- * [FoldingRangeKind](#FoldingRangeKind) for an enumeration of all kinds.
7472
+ * {@link FoldingRangeKind FoldingRangeKind} for an enumeration of all kinds.
7465
7473
  * If not set, the range is originated from a syntax element.
7466
7474
  */
7467
7475
  kind?: FoldingRangeKind;
@@ -7477,7 +7485,7 @@ export module '@theia/plugin' {
7477
7485
  }
7478
7486
 
7479
7487
  /**
7480
- * An enumeration of specific folding range kinds. The kind is an optional field of a [FoldingRange](#FoldingRange)
7488
+ * An enumeration of specific folding range kinds. The kind is an optional field of a {@link FoldingRange FoldingRange}
7481
7489
  * and is used to distinguish specific folding ranges such as ranges originated from comments. The kind is used by commands like
7482
7490
  * `Fold all comments` or `Fold all regions`.
7483
7491
  * 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 +7613,7 @@ export module '@theia/plugin' {
7605
7613
  * *Note* that the eol-sequence will be applied to the
7606
7614
  * whole document.
7607
7615
  */
7608
- newEol: EndOfLine;
7616
+ newEol?: EndOfLine;
7609
7617
 
7610
7618
  /**
7611
7619
  * Create a new TextEdit.
@@ -7689,13 +7697,13 @@ export module '@theia/plugin' {
7689
7697
  /**
7690
7698
  * A completion item represents a text snippet that is proposed to complete text that is being typed.
7691
7699
  *
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.
7700
+ * It is sufficient to create a completion item from just a {@link CompletionItem.label label}. In that
7701
+ * case the completion item will replace the {@link TextDocument.getWordRangeAtPosition word}
7702
+ * until the cursor with the given label or {@link CompletionItem.insertText insertText}. Otherwise the
7703
+ * the given {@link CompletionItem.textEdit edit} is used.
7696
7704
  *
7697
7705
  * 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
7706
+ * to *all* cursors/selections whereas {@link additionalTextEdits additionalTextEdits} will be
7699
7707
  * applied as provided.
7700
7708
  *
7701
7709
  * @see [CompletionItemProvider.provideCompletionItems](#CompletionItemProvider.provideCompletionItems)
@@ -7734,14 +7742,14 @@ export module '@theia/plugin' {
7734
7742
 
7735
7743
  /**
7736
7744
  * A string that should be used when comparing this item
7737
- * with other items. When `falsy` the [label](#CompletionItem.label)
7745
+ * with other items. When `falsy` the {@link CompletionItem.label label}
7738
7746
  * is used.
7739
7747
  */
7740
7748
  sortText?: string;
7741
7749
 
7742
7750
  /**
7743
7751
  * A string that should be used when filtering a set of
7744
- * completion items. When `falsy` the [label](#CompletionItem.label)
7752
+ * completion items. When `falsy` the {@link CompletionItem.label label}
7745
7753
  * is used.
7746
7754
  */
7747
7755
  filterText?: string;
@@ -7755,7 +7763,7 @@ export module '@theia/plugin' {
7755
7763
 
7756
7764
  /**
7757
7765
  * A string or snippet that should be inserted in a document when selecting
7758
- * this completion. When `falsy` the [label](#CompletionItem.label)
7766
+ * this completion. When `falsy` the {@link CompletionItem.label label}
7759
7767
  * is used.
7760
7768
  */
7761
7769
  insertText?: string | SnippetString;
@@ -7763,12 +7771,12 @@ export module '@theia/plugin' {
7763
7771
  /**
7764
7772
  * A range or a insert and replace range selecting the text that should be replaced by this completion item.
7765
7773
  *
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
7774
+ * When omitted, the range of the {@link TextDocument.getWordRangeAtPosition current word} is used as replace-range
7775
+ * and as insert-range the start of the {@link TextDocument.getWordRangeAtPosition current word} to the
7768
7776
  * current position is used.
7769
7777
  *
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).
7778
+ * *Note 1:* A range must be a {@link Range.isSingleLine single line} and it must
7779
+ * {@link Range.contains contain} the position at which completion has been {@link CompletionItemProvider.provideCompletionItems requested}.
7772
7780
  * *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
7781
  */
7774
7782
  range?: Range | { inserting: Range; replacing: Range; };
@@ -7781,35 +7789,35 @@ export module '@theia/plugin' {
7781
7789
  commitCharacters?: string[];
7782
7790
 
7783
7791
  /**
7784
- * Keep whitespace of the [insertText](#CompletionItem.insertText) as is. By default, the editor adjusts leading
7792
+ * Keep whitespace of the {@link CompletionItem.insertText insertText} as is. By default, the editor adjusts leading
7785
7793
  * whitespace of new lines so that they match the indentation of the line for which the item is accepted - setting
7786
7794
  * this to `true` will prevent that.
7787
7795
  */
7788
7796
  keepWhitespace?: boolean;
7789
7797
 
7790
7798
  /**
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)
7799
+ * An optional array of additional {@link TextEdit text edits} that are applied when
7800
+ * selecting this completion. Edits must not overlap with the main {@link CompletionItem.textEdit edit}
7793
7801
  * nor with themselves.
7794
7802
  */
7795
7803
  additionalTextEdits?: TextEdit[];
7796
7804
 
7797
7805
  /**
7798
- * An optional [command](#Command) that is executed *after* inserting this completion. *Note* that
7806
+ * An optional {@link Command command} that is executed *after* inserting this completion. *Note* that
7799
7807
  * additional modifications to the current document should be described with the
7800
- * [additionalTextEdits](#additionalTextEdits)-property.
7808
+ * {@link additionalTextEdits additionalTextEdits}-property.
7801
7809
  */
7802
7810
  command?: Command;
7803
7811
 
7804
7812
  /**
7805
7813
  * @deprecated Use `CompletionItem.insertText` and `CompletionItem.range` instead.
7806
7814
  *
7807
- * ~~An [edit](#TextEdit) which is applied to a document when selecting
7815
+ * ~~An {@link TextEdit edit} which is applied to a document when selecting
7808
7816
  * this completion. When an edit is provided the value of
7809
- * [insertText](#CompletionItem.insertText) is ignored.~~
7817
+ * {@link CompletionItem.insertText insertText} is ignored.~~
7810
7818
  *
7811
- * ~~The [range](#Range) of the edit must be single-line and on the same
7812
- * line completions were [requested](#CompletionItemProvider.provideCompletionItems) at.~~
7819
+ * ~~The {@link Range range} of the edit must be single-line and on the same
7820
+ * line completions were {@link CompletionItemProvider.provideCompletionItems requested} at.~~
7813
7821
  */
7814
7822
  textEdit?: TextEdit;
7815
7823
 
@@ -7821,17 +7829,17 @@ export module '@theia/plugin' {
7821
7829
  /**
7822
7830
  * Creates a new completion item.
7823
7831
  *
7824
- * Completion items must have at least a [label](#CompletionItem.label) which then
7832
+ * Completion items must have at least a {@link CompletionItem.label label} which then
7825
7833
  * will be used as insert text as well as for sorting and filtering.
7826
7834
  *
7827
7835
  * @param label The label of the completion.
7828
- * @param kind The [kind](#CompletionItemKind) of the completion.
7836
+ * @param kind The {@link CompletionItemKind kind} of the completion.
7829
7837
  */
7830
7838
  constructor(label: string | CompletionItemLabel, kind?: CompletionItemKind);
7831
7839
  }
7832
7840
 
7833
7841
  /**
7834
- * Represents a collection of [completion items](#CompletionItem) to be presented
7842
+ * Represents a collection of {@link CompletionItem completion items} to be presented
7835
7843
  * in the editor.
7836
7844
  */
7837
7845
  export class CompletionList<T extends CompletionItem = CompletionItem> {
@@ -7845,7 +7853,7 @@ export module '@theia/plugin' {
7845
7853
  /**
7846
7854
  * The completion items.
7847
7855
  */
7848
- items: CompletionItem[];
7856
+ items: T[];
7849
7857
 
7850
7858
  /**
7851
7859
  * Creates a new completion list.
@@ -7853,7 +7861,7 @@ export module '@theia/plugin' {
7853
7861
  * @param items The completion items.
7854
7862
  * @param isIncomplete The list is not complete.
7855
7863
  */
7856
- constructor(items?: CompletionItem[], isIncomplete?: boolean);
7864
+ constructor(items?: T[], isIncomplete?: boolean);
7857
7865
  }
7858
7866
 
7859
7867
  /**
@@ -7878,7 +7886,7 @@ export module '@theia/plugin' {
7878
7886
  * @param token A cancellation token.
7879
7887
  * @param context How the completion was triggered.
7880
7888
  *
7881
- * @return An array of completions, a [completion list](#CompletionList), or a thenable that resolves to either.
7889
+ * @return An array of completions, a {@link CompletionList completion list}, or a thenable that resolves to either.
7882
7890
  * The lack of a result can be signaled by returning `undefined`, `null`, or an empty array.
7883
7891
  */
7884
7892
  provideCompletionItems(document: TextDocument,
@@ -7888,7 +7896,7 @@ export module '@theia/plugin' {
7888
7896
 
7889
7897
  /**
7890
7898
  * Given a completion item fill in more data, like [doc-comment](#CompletionItem.documentation)
7891
- * or [details](#CompletionItem.detail).
7899
+ * or {@link CompletionItem.detail details}.
7892
7900
  *
7893
7901
  * The editor will only resolve a completion item once.
7894
7902
  *
@@ -7947,7 +7955,7 @@ export module '@theia/plugin' {
7947
7955
  /**
7948
7956
  * An array of resources for which diagnostics have changed.
7949
7957
  */
7950
- readonly uris: Uri[];
7958
+ readonly uris: readonly Uri[];
7951
7959
  }
7952
7960
 
7953
7961
  /**
@@ -8043,7 +8051,7 @@ export module '@theia/plugin' {
8043
8051
  message: string;
8044
8052
 
8045
8053
  /**
8046
- * The severity, default is [error](#DiagnosticSeverity.Error).
8054
+ * The severity, default is {@link DiagnosticSeverity.Error error}.
8047
8055
  */
8048
8056
  severity: DiagnosticSeverity;
8049
8057
 
@@ -8056,7 +8064,7 @@ export module '@theia/plugin' {
8056
8064
  /**
8057
8065
  * A code or identifier for this diagnostics. Will not be surfaced
8058
8066
  * to the user, but should be used for later processing, e.g. when
8059
- * providing [code actions](#CodeActionContext).
8067
+ * providing {@link CodeActionContext code actions}.
8060
8068
  */
8061
8069
  code?: string | number;
8062
8070
 
@@ -8076,7 +8084,7 @@ export module '@theia/plugin' {
8076
8084
  *
8077
8085
  * @param range The range to which this diagnostic applies.
8078
8086
  * @param message The human-readable message.
8079
- * @param severity The severity, default is [error](#DiagnosticSeverity.Error).
8087
+ * @param severity The severity, default is {@link DiagnosticSeverity.Error error}.
8080
8088
  */
8081
8089
  constructor(range: Range, message: string, severity?: DiagnosticSeverity);
8082
8090
  }
@@ -8131,16 +8139,16 @@ export module '@theia/plugin' {
8131
8139
  * @param callback Function to execute for each entry.
8132
8140
  * @param thisArg The `this` context used when invoking the handler function.
8133
8141
  */
8134
- forEach(callback: (uri: Uri, diagnostics: Diagnostic[], collection: DiagnosticCollection) => any, thisArg?: any): void;
8142
+ forEach(callback: (uri: Uri, diagnostics: readonly Diagnostic[], collection: DiagnosticCollection) => any, thisArg?: any): void;
8135
8143
 
8136
8144
  /**
8137
8145
  * Get the diagnostics for a given resource. *Note* that you cannot
8138
8146
  * modify the diagnostics-array returned from this call.
8139
8147
  *
8140
8148
  * @param uri A resource identifier.
8141
- * @returns An immutable array of [diagnostics](#Diagnostic) or `undefined`.
8149
+ * @returns An immutable array of {@link Diagnostic diagnostics} or `undefined`.
8142
8150
  */
8143
- get(uri: Uri): Diagnostic[] | undefined;
8151
+ get(uri: Uri): readonly Diagnostic[] | undefined;
8144
8152
 
8145
8153
  /**
8146
8154
  * Check if this collection contains diagnostics for a
@@ -8153,7 +8161,7 @@ export module '@theia/plugin' {
8153
8161
 
8154
8162
  /**
8155
8163
  * Dispose and free associated resources. Calls
8156
- * [clear](#DiagnosticCollection.clear).
8164
+ * {@link DiagnosticCollection.clear clear}.
8157
8165
  */
8158
8166
  dispose(): void;
8159
8167
  }
@@ -8249,22 +8257,22 @@ export module '@theia/plugin' {
8249
8257
  title: string;
8250
8258
 
8251
8259
  /**
8252
- * [Diagnostics](#Diagnostic) that this code action resolves.
8260
+ * {@link Diagnostic Diagnostics} that this code action resolves.
8253
8261
  */
8254
8262
  diagnostics?: Diagnostic[];
8255
8263
 
8256
8264
  /**
8257
- * A [workspace edit](#WorkspaceEdit) this code action performs.
8265
+ * A {@link WorkspaceEdit workspace edit} this code action performs.
8258
8266
  */
8259
8267
  edit?: WorkspaceEdit;
8260
8268
 
8261
8269
  /**
8262
- * A [command](#Command) this code action executes.
8270
+ * A {@link Command command} this code action executes.
8263
8271
  */
8264
8272
  command?: Command;
8265
8273
 
8266
8274
  /**
8267
- * [Kind](#CodeActionKind) of the code action.
8275
+ * {@link CodeActionKind Kind} of the code action.
8268
8276
  *
8269
8277
  * Used to filter code actions.
8270
8278
  */
@@ -8283,8 +8291,8 @@ export module '@theia/plugin' {
8283
8291
  /**
8284
8292
  * Creates a new code action.
8285
8293
  *
8286
- * A code action must have at least a [title](#CodeAction.title) and [edits](#CodeAction.edit)
8287
- * and/or a [command](#CodeAction.command).
8294
+ * A code action must have at least a {@link CodeAction.title title} and {@link CodeAction.edit edits}
8295
+ * and/or a {@link CodeAction.command command}.
8288
8296
  *
8289
8297
  * @param title The title of the code action.
8290
8298
  * @param kind The kind of the code action.
@@ -8296,7 +8304,7 @@ export module '@theia/plugin' {
8296
8304
  * The code action interface defines the contract between extensions and
8297
8305
  * the [light bulb](https://code.visualstudio.com/docs/editor/editingevolved#_code-action) feature.
8298
8306
  *
8299
- * A code action can be any command that is [known](#commands.getCommands) to the system.
8307
+ * A code action can be any command that is {@link commands.getCommands known} to the system.
8300
8308
  */
8301
8309
  export interface CodeActionProvider<T extends CodeAction = CodeAction> {
8302
8310
  /**
@@ -8330,11 +8338,11 @@ export module '@theia/plugin' {
8330
8338
  }
8331
8339
 
8332
8340
  /**
8333
- * Metadata about the type of code actions that a [CodeActionProvider](#CodeActionProvider) providers
8341
+ * Metadata about the type of code actions that a {@link CodeActionProvider CodeActionProvider} providers
8334
8342
  */
8335
8343
  export interface CodeActionProviderMetadata {
8336
8344
  /**
8337
- * [CodeActionKinds](#CodeActionKind) that this provider may return.
8345
+ * {@link CodeActionKind CodeActionKinds} that this provider may return.
8338
8346
  *
8339
8347
  * The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the provider
8340
8348
  * may list our every specific kind they provide, such as `CodeActionKind.Refactor.Extract.append('function`)`
@@ -8350,7 +8358,7 @@ export module '@theia/plugin' {
8350
8358
  }
8351
8359
 
8352
8360
  /**
8353
- * A code lens represents a [command](#Command) that should be shown along with
8361
+ * A code lens represents a {@link Command command} that should be shown along with
8354
8362
  * source text, like the number of references, a way to run tests, etc.
8355
8363
  *
8356
8364
  * A code lens is _unresolved_ when no command is associated to it. For performance
@@ -8386,7 +8394,7 @@ export module '@theia/plugin' {
8386
8394
  }
8387
8395
 
8388
8396
  /**
8389
- * A code lens provider adds [commands](#Command) to source text. The commands will be shown
8397
+ * A code lens provider adds {@link Command commands} to source text. The commands will be shown
8390
8398
  * as dedicated horizontal lines in between the source text.
8391
8399
  */
8392
8400
  export interface CodeLensProvider<T extends CodeLens = CodeLens> {
@@ -8395,9 +8403,9 @@ export module '@theia/plugin' {
8395
8403
  */
8396
8404
  onDidChangeCodeLenses?: Event<void>;
8397
8405
  /**
8398
- * Compute a list of [lenses](#CodeLens). This call should return as fast as possible and if
8406
+ * Compute a list of {@link CodeLens lenses}. This call should return as fast as possible and if
8399
8407
  * computing the commands is expensive implementors should only return code lens objects with the
8400
- * range set and implement [resolve](#CodeLensProvider.resolveCodeLens).
8408
+ * range set and implement {@link CodeLensProvider.resolveCodeLens resolve}.
8401
8409
  *
8402
8410
  * @param document The document in which the command was invoked.
8403
8411
  * @param token A cancellation token.
@@ -8407,7 +8415,7 @@ export module '@theia/plugin' {
8407
8415
  provideCodeLenses(document: TextDocument, token: CancellationToken): ProviderResult<T[]>;
8408
8416
  /**
8409
8417
  * This function will be called for each visible code lens, usually when scrolling and after
8410
- * calls to [compute](#CodeLensProvider.provideCodeLenses)-lenses.
8418
+ * calls to {@link CodeLensProvider.provideCodeLenses compute}-lenses.
8411
8419
  *
8412
8420
  * @param codeLens code lens that must be resolved.
8413
8421
  * @param token A cancellation token.
@@ -8539,13 +8547,13 @@ export module '@theia/plugin' {
8539
8547
 
8540
8548
  /**
8541
8549
  * Contains additional diagnostic information about the context in which
8542
- * a [code action](#CodeActionProvider.provideCodeActions) is run.
8550
+ * a {@link CodeActionProvider.provideCodeActions code action} is run.
8543
8551
  */
8544
8552
  export interface CodeActionContext {
8545
8553
  /**
8546
8554
  * An array of diagnostics.
8547
8555
  */
8548
- readonly diagnostics: Diagnostic[];
8556
+ readonly diagnostics: readonly Diagnostic[];
8549
8557
 
8550
8558
  /**
8551
8559
  * Requested kind of actions to return.
@@ -8578,7 +8586,7 @@ export module '@theia/plugin' {
8578
8586
  description?: string;
8579
8587
 
8580
8588
  /**
8581
- * The icon path or [ThemeIcon](#ThemeIcon) for the edit.
8589
+ * The icon path or {@link ThemeIcon ThemeIcon} for the edit.
8582
8590
  */
8583
8591
  iconPath?: Uri | { light: Uri; dark: Uri } | ThemeIcon;
8584
8592
  }
@@ -8587,7 +8595,7 @@ export module '@theia/plugin' {
8587
8595
  * A workspace edit is a collection of textual and files changes for
8588
8596
  * multiple resources and documents.
8589
8597
  *
8590
- * Use the [applyEdit](#workspace.applyEdit)-function to apply a workspace edit.
8598
+ * Use the {@link workspace.applyEdit applyEdit}-function to apply a workspace edit.
8591
8599
  */
8592
8600
  export class WorkspaceEdit {
8593
8601
 
@@ -8832,13 +8840,13 @@ export module '@theia/plugin' {
8832
8840
  *
8833
8841
  * @param document The document in which the command was invoked.
8834
8842
  * @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
8843
+ * @return An array of {@link DocumentLink document links} or a thenable that resolves to such. The lack of a result
8836
8844
  * can be signaled by returning `undefined`, `null`, or an empty array.
8837
8845
  */
8838
8846
  provideDocumentLinks(document: TextDocument, token: CancellationToken): ProviderResult<T[]>;
8839
8847
 
8840
8848
  /**
8841
- * Given a link fill in its [target](#DocumentLink.target). This method is called when an incomplete
8849
+ * Given a link fill in its {@link DocumentLink.target target}. This method is called when an incomplete
8842
8850
  * link is selected in the UI. Providers can implement this method and return incomplete links
8843
8851
  * (without target) from the [`provideDocumentLinks`](#DocumentLinkProvider.provideDocumentLinks) method which
8844
8852
  * often helps to improve performance.
@@ -8934,8 +8942,8 @@ export module '@theia/plugin' {
8934
8942
 
8935
8943
  /**
8936
8944
  * 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.
8945
+ * @see {@link DocumentSemanticTokensProvider.provideDocumentSemanticTokens provideDocumentSemanticTokens} for an explanation of the format.
8946
+ * @see {@link SemanticTokensBuilder} for a helper to create an instance.
8939
8947
  */
8940
8948
  export class SemanticTokens {
8941
8949
  /**
@@ -8943,10 +8951,10 @@ export module '@theia/plugin' {
8943
8951
  *
8944
8952
  * This is the id that will be passed to `DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits` (if implemented).
8945
8953
  */
8946
- readonly resultId?: string;
8954
+ readonly resultId: string | undefined;
8947
8955
  /**
8948
8956
  * The actual tokens data.
8949
- * @see [provideDocumentSemanticTokens](#DocumentSemanticTokensProvider.provideDocumentSemanticTokens) for an explanation of the format.
8957
+ * @see {@link DocumentSemanticTokensProvider.provideDocumentSemanticTokens provideDocumentSemanticTokens} for an explanation of the format.
8950
8958
  */
8951
8959
  readonly data: Uint32Array;
8952
8960
 
@@ -8955,7 +8963,7 @@ export module '@theia/plugin' {
8955
8963
 
8956
8964
  /**
8957
8965
  * Represents edits to semantic tokens.
8958
- * @see [provideDocumentSemanticTokensEdits](#DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits) for an explanation of the format.
8966
+ * @see {@link DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits provideDocumentSemanticTokensEdits} for an explanation of the format.
8959
8967
  */
8960
8968
  export class SemanticTokensEdits {
8961
8969
  /**
@@ -8963,7 +8971,7 @@ export module '@theia/plugin' {
8963
8971
  *
8964
8972
  * This is the id that will be passed to `DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits` (if implemented).
8965
8973
  */
8966
- readonly resultId?: string;
8974
+ readonly resultId: string | undefined;
8967
8975
  /**
8968
8976
  * The edits to the tokens data.
8969
8977
  * All edits refer to the initial data state.
@@ -8975,7 +8983,7 @@ export module '@theia/plugin' {
8975
8983
 
8976
8984
  /**
8977
8985
  * Represents an edit to semantic tokens.
8978
- * @see [provideDocumentSemanticTokensEdits](#DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits) for an explanation of the format.
8986
+ * @see {@link DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits provideDocumentSemanticTokensEdits} for an explanation of the format.
8979
8987
  */
8980
8988
  export class SemanticTokensEdit {
8981
8989
  /**
@@ -8989,7 +8997,7 @@ export module '@theia/plugin' {
8989
8997
  /**
8990
8998
  * The elements to insert.
8991
8999
  */
8992
- readonly data?: Uint32Array;
9000
+ readonly data: Uint32Array | undefined;
8993
9001
 
8994
9002
  constructor(start: number, deleteCount: number, data?: Uint32Array);
8995
9003
  }
@@ -9059,7 +9067,7 @@ export module '@theia/plugin' {
9059
9067
  * [ 2,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ]
9060
9068
  * ```
9061
9069
  *
9062
- * @see [SemanticTokensBuilder](#SemanticTokensBuilder) for a helper to encode tokens as integers.
9070
+ * @see {@link SemanticTokensBuilder SemanticTokensBuilder} for a helper to encode tokens as integers.
9063
9071
  * *NOTE*: When doing edits, it is possible that multiple edits occur until VS Code decides to invoke the semantic tokens provider.
9064
9072
  * *NOTE*: If the provider cannot temporarily compute semantic tokens, it can indicate this by throwing an error with the message 'Busy'.
9065
9073
  */
@@ -9103,7 +9111,7 @@ export module '@theia/plugin' {
9103
9111
  */
9104
9112
  export interface DocumentRangeSemanticTokensProvider {
9105
9113
  /**
9106
- * @see [provideDocumentSemanticTokens](#DocumentSemanticTokensProvider.provideDocumentSemanticTokens).
9114
+ * @see {@link DocumentSemanticTokensProvider.provideDocumentSemanticTokens provideDocumentSemanticTokens}.
9107
9115
  */
9108
9116
  provideDocumentRangeSemanticTokens(document: TextDocument, range: Range, token: CancellationToken): ProviderResult<SemanticTokens>;
9109
9117
  }
@@ -9116,7 +9124,7 @@ export module '@theia/plugin' {
9116
9124
  export function getLanguages(): Thenable<string[]>;
9117
9125
 
9118
9126
  /**
9119
- * Set (and change) the [language](#TextDocument.languageId) that is associated
9127
+ * Set (and change) the {@link TextDocument.languageId language} that is associated
9120
9128
  * with the given document.
9121
9129
  *
9122
9130
  * *Note* that calling this function will trigger the [`onDidCloseTextDocument`](#workspace.onDidCloseTextDocument) event
@@ -9129,7 +9137,7 @@ export module '@theia/plugin' {
9129
9137
  export function setTextDocumentLanguage(document: TextDocument, languageId: string): Thenable<TextDocument>;
9130
9138
 
9131
9139
  /**
9132
- * Compute the match between a document [selector](#DocumentSelector) and a document. Values
9140
+ * Compute the match between a document {@link DocumentSelector selector} and a document. Values
9133
9141
  * greater than zero mean the selector matches the document.
9134
9142
  *
9135
9143
  * A match is computed according to these rules:
@@ -9168,7 +9176,7 @@ export module '@theia/plugin' {
9168
9176
  export function match(selector: DocumentSelector, document: TextDocument): number;
9169
9177
 
9170
9178
  /**
9171
- * An [event](#Event) which fires when the global set of diagnostics changes. This is
9179
+ * An {@link Event event} which fires when the global set of diagnostics changes. This is
9172
9180
  * newly added and removed diagnostics.
9173
9181
  */
9174
9182
  export const onDidChangeDiagnostics: Event<DiagnosticChangeEvent>;
@@ -9178,7 +9186,7 @@ export module '@theia/plugin' {
9178
9186
  * all extensions but *not yet* from the task framework.
9179
9187
  *
9180
9188
  * @param resource A resource
9181
- * @returns An array of [diagnostics](#Diagnostic) objects or an empty array.
9189
+ * @returns An array of {@link Diagnostic diagnostics} objects or an empty array.
9182
9190
  */
9183
9191
  export function getDiagnostics(resource: Uri): Diagnostic[];
9184
9192
 
@@ -9193,17 +9201,17 @@ export module '@theia/plugin' {
9193
9201
  /**
9194
9202
  * Create a diagnostics collection.
9195
9203
  *
9196
- * @param name The [name](#DiagnosticCollection.name) of the collection.
9204
+ * @param name The {@link DiagnosticCollection.name name} of the collection.
9197
9205
  * @return A new diagnostic collection.
9198
9206
  */
9199
9207
  export function createDiagnosticCollection(name?: string): DiagnosticCollection;
9200
9208
 
9201
9209
  /**
9202
- * Set a [language configuration](#LanguageConfiguration) for a language.
9210
+ * Set a {@link LanguageConfiguration language configuration} for a language.
9203
9211
  *
9204
9212
  * @param language A language identifier like `typescript`.
9205
9213
  * @param configuration Language configuration.
9206
- * @return A [disposable](#Disposable) that unsets this configuration.
9214
+ * @return A {@link Disposable disposable} that unsets this configuration.
9207
9215
  */
9208
9216
  export function setLanguageConfiguration(language: string, configuration: LanguageConfiguration): Disposable;
9209
9217
 
@@ -9211,7 +9219,7 @@ export module '@theia/plugin' {
9211
9219
  * Register a completion provider.
9212
9220
  *
9213
9221
  * 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
9222
+ * by their {@link languages.match score} and groups of equal score are sequentially asked for
9215
9223
  * completion items. The process stops when one or many providers of a group return a
9216
9224
  * result. A failing provider (rejected promise or exception) will not fail the whole
9217
9225
  * operation.
@@ -9219,7 +9227,7 @@ export module '@theia/plugin' {
9219
9227
  * @param selector A selector that defines the documents this provider is applicable to.
9220
9228
  * @param provider A completion provider.
9221
9229
  * @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.
9230
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9223
9231
  */
9224
9232
  export function registerCompletionItemProvider(selector: DocumentSelector, provider: CompletionItemProvider, ...triggerCharacters: string[]): Disposable;
9225
9233
 
@@ -9232,7 +9240,7 @@ export module '@theia/plugin' {
9232
9240
  *
9233
9241
  * @param selector A selector that defines the documents this provider is applicable to.
9234
9242
  * @param provider A definition provider.
9235
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9243
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9236
9244
  */
9237
9245
  export function registerDefinitionProvider(selector: DocumentSelector, provider: DefinitionProvider): Disposable;
9238
9246
 
@@ -9245,7 +9253,7 @@ export module '@theia/plugin' {
9245
9253
  *
9246
9254
  * @param selector A selector that defines the documents this provider is applicable to.
9247
9255
  * @param provider A declaration provider.
9248
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9256
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9249
9257
  */
9250
9258
  export function registerDeclarationProvider(selector: DocumentSelector, provider: DeclarationProvider): Disposable;
9251
9259
 
@@ -9253,14 +9261,14 @@ export module '@theia/plugin' {
9253
9261
  * Register a signature help provider.
9254
9262
  *
9255
9263
  * 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
9264
+ * by their {@link languages.match score} and called sequentially until a provider returns a
9257
9265
  * valid result.
9258
9266
  *
9259
9267
  * @param selector A selector that defines the documents this provider is applicable to.
9260
9268
  * @param provider A signature help provider.
9261
9269
  * @param triggerCharacters Trigger signature help when the user types one of the characters, like `,` or `(`.
9262
9270
  * @param metadata Information about the provider.
9263
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9271
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9264
9272
  */
9265
9273
  export function registerSignatureHelpProvider(selector: DocumentSelector, provider: SignatureHelpProvider, ...triggerCharacters: string[]): Disposable;
9266
9274
  export function registerSignatureHelpProvider(selector: DocumentSelector, provider: SignatureHelpProvider, metadata: SignatureHelpProviderMetadata): Disposable;
@@ -9274,7 +9282,7 @@ export module '@theia/plugin' {
9274
9282
  *
9275
9283
  * @param selector A selector that defines the documents this provider is applicable to.
9276
9284
  * @param provider A type definition provider.
9277
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9285
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9278
9286
  */
9279
9287
  export function registerTypeDefinitionProvider(selector: DocumentSelector, provider: TypeDefinitionProvider): Disposable;
9280
9288
 
@@ -9287,7 +9295,7 @@ export module '@theia/plugin' {
9287
9295
  *
9288
9296
  * @param selector A selector that defines the documents this provider is applicable to.
9289
9297
  * @param provider An implementation provider.
9290
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9298
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9291
9299
  */
9292
9300
  export function registerImplementationProvider(selector: DocumentSelector, provider: ImplementationProvider): Disposable;
9293
9301
 
@@ -9300,7 +9308,7 @@ export module '@theia/plugin' {
9300
9308
  *
9301
9309
  * @param selector A selector that defines the documents this provider is applicable to.
9302
9310
  * @param provider A hover provider.
9303
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9311
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9304
9312
  */
9305
9313
  export function registerHoverProvider(selector: DocumentSelector, provider: HoverProvider): Disposable;
9306
9314
 
@@ -9324,7 +9332,7 @@ export module '@theia/plugin' {
9324
9332
  * not cause a failure of the whole operation.
9325
9333
  *
9326
9334
  * @param provider A workspace symbol provider.
9327
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9335
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9328
9336
  */
9329
9337
  export function registerWorkspaceSymbolProvider(provider: WorkspaceSymbolProvider): Disposable;
9330
9338
 
@@ -9332,12 +9340,12 @@ export module '@theia/plugin' {
9332
9340
  * Register a document highlight provider.
9333
9341
  *
9334
9342
  * 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.
9343
+ * by their {@link languages.match score} and groups sequentially asked for document highlights.
9336
9344
  * The process stops when a provider returns a `non-falsy` or `non-failure` result.
9337
9345
  *
9338
9346
  * @param selector A selector that defines the documents this provider is applicable to.
9339
9347
  * @param provider A document highlight provider.
9340
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9348
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9341
9349
  */
9342
9350
  export function registerDocumentHighlightProvider(selector: DocumentSelector, provider: DocumentHighlightProvider): Disposable;
9343
9351
 
@@ -9345,29 +9353,29 @@ export module '@theia/plugin' {
9345
9353
  * Register a formatting provider for a document.
9346
9354
  *
9347
9355
  * 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
9356
+ * by their {@link languages.match score} and the best-matching provider is used. Failure
9349
9357
  * of the selected provider will cause a failure of the whole operation.
9350
9358
  *
9351
9359
  * @param selector A selector that defines the documents this provider is applicable to.
9352
9360
  * @param provider A document formatting edit provider.
9353
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9361
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9354
9362
  */
9355
9363
  export function registerDocumentFormattingEditProvider(selector: DocumentSelector, provider: DocumentFormattingEditProvider): Disposable;
9356
9364
 
9357
9365
  /**
9358
9366
  * Register a formatting provider for a document range.
9359
9367
  *
9360
- * *Note:* A document range provider is also a [document formatter](#DocumentFormattingEditProvider)
9361
- * which means there is no need to [register](#registerDocumentFormattingEditProvider) a document
9368
+ * *Note:* A document range provider is also a {@link DocumentFormattingEditProvider document formatter}
9369
+ * which means there is no need to {@link registerDocumentFormattingEditProvider register} a document
9362
9370
  * formatter when also registering a range provider.
9363
9371
  *
9364
9372
  * 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
9373
+ * by their {@link languages.match score} and the best-matching provider is used. Failure
9366
9374
  * of the selected provider will cause a failure of the whole operation.
9367
9375
  *
9368
9376
  * @param selector A selector that defines the documents this provider is applicable to.
9369
9377
  * @param provider A document range formatting edit provider.
9370
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9378
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9371
9379
  */
9372
9380
  export function registerDocumentRangeFormattingEditProvider(selector: DocumentSelector, provider: DocumentRangeFormattingEditProvider): Disposable;
9373
9381
 
@@ -9381,7 +9389,7 @@ export module '@theia/plugin' {
9381
9389
  * @param selector A selector that defines the documents this provider is applicable to.
9382
9390
  * @param provider A code action provider.
9383
9391
  * @param metadata Metadata about the kind of code actions the provider providers.
9384
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9392
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9385
9393
  */
9386
9394
  export function registerCodeActionsProvider(selector: DocumentSelector, provider: CodeActionProvider, metadata?: CodeActionProviderMetadata): Disposable;
9387
9395
 
@@ -9394,7 +9402,7 @@ export module '@theia/plugin' {
9394
9402
  *
9395
9403
  * @param selector A selector that defines the documents this provider is applicable to.
9396
9404
  * @param provider A code lens provider.
9397
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9405
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9398
9406
  */
9399
9407
  export function registerCodeLensProvider(selector: DocumentSelector, provider: CodeLensProvider): Disposable;
9400
9408
 
@@ -9402,14 +9410,14 @@ export module '@theia/plugin' {
9402
9410
  * Register a formatting provider that works on type. The provider is active when the user enables the setting `editor.formatOnType`.
9403
9411
  *
9404
9412
  * 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
9413
+ * by their {@link languages.match score} and the best-matching provider is used. Failure
9406
9414
  * of the selected provider will cause a failure of the whole operation.
9407
9415
  *
9408
9416
  * @param selector A selector that defines the documents this provider is applicable to.
9409
9417
  * @param provider An on type formatting edit provider.
9410
9418
  * @param firstTriggerCharacter A character on which formatting should be triggered, like `}`.
9411
9419
  * @param moreTriggerCharacter More trigger characters.
9412
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9420
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9413
9421
  */
9414
9422
  export function registerOnTypeFormattingEditProvider(
9415
9423
  selector: DocumentSelector,
@@ -9427,7 +9435,7 @@ export module '@theia/plugin' {
9427
9435
  *
9428
9436
  * @param selector A selector that defines the documents this provider is applicable to.
9429
9437
  * @param provider A document link provider.
9430
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9438
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9431
9439
  */
9432
9440
  export function registerDocumentLinkProvider(selector: DocumentSelector, provider: DocumentLinkProvider): Disposable;
9433
9441
 
@@ -9440,7 +9448,7 @@ export module '@theia/plugin' {
9440
9448
  *
9441
9449
  * @param selector A selector that defines the documents this provider is applicable to.
9442
9450
  * @param provider A reference provider.
9443
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9451
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9444
9452
  */
9445
9453
  export function registerReferenceProvider(selector: DocumentSelector, provider: ReferenceProvider): Disposable;
9446
9454
 
@@ -9468,7 +9476,7 @@ export module '@theia/plugin' {
9468
9476
  *
9469
9477
  * @param selector A selector that defines the documents this provider is applicable to.
9470
9478
  * @param provider A color provider.
9471
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9479
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9472
9480
  */
9473
9481
  export function registerColorProvider(selector: DocumentSelector, provider: DocumentColorProvider): Disposable;
9474
9482
 
@@ -9485,7 +9493,7 @@ export module '@theia/plugin' {
9485
9493
  *
9486
9494
  * @param selector A selector that defines the documents this provider is applicable to.
9487
9495
  * @param provider A folding range provider.
9488
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9496
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9489
9497
  */
9490
9498
  export function registerFoldingRangeProvider(selector: DocumentSelector, provider: FoldingRangeProvider): Disposable;
9491
9499
 
@@ -9498,7 +9506,7 @@ export module '@theia/plugin' {
9498
9506
  *
9499
9507
  * @param selector A selector that defines the documents this provider is applicable to.
9500
9508
  * @param provider A selection range provider.
9501
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9509
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9502
9510
  */
9503
9511
  export function registerSelectionRangeProvider(selector: DocumentSelector, provider: SelectionRangeProvider): Disposable;
9504
9512
 
@@ -9506,12 +9514,12 @@ export module '@theia/plugin' {
9506
9514
  * Register a reference provider.
9507
9515
  *
9508
9516
  * 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
9517
+ * by their {@link languages.match score} and the best-matching provider is used. Failure
9510
9518
  * of the selected provider will cause a failure of the whole operation.
9511
9519
  *
9512
9520
  * @param selector A selector that defines the documents this provider is applicable to.
9513
9521
  * @param provider A rename provider.
9514
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9522
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9515
9523
  */
9516
9524
  export function registerRenameProvider(selector: DocumentSelector, provider: RenameProvider): Disposable;
9517
9525
 
@@ -9519,12 +9527,12 @@ export module '@theia/plugin' {
9519
9527
  * Register a semantic tokens provider for a whole document.
9520
9528
  *
9521
9529
  * 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
9530
+ * by their {@link languages.match score} and the best-matching provider is used. Failure
9523
9531
  * of the selected provider will cause a failure of the whole operation.
9524
9532
  *
9525
9533
  * @param selector A selector that defines the documents this provider is applicable to.
9526
9534
  * @param provider A document semantic tokens provider.
9527
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9535
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9528
9536
  */
9529
9537
  export function registerDocumentSemanticTokensProvider(selector: DocumentSelector, provider: DocumentSemanticTokensProvider, legend: SemanticTokensLegend): Disposable;
9530
9538
 
@@ -9538,12 +9546,12 @@ export module '@theia/plugin' {
9538
9546
  * will be used.
9539
9547
  *
9540
9548
  * 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
9549
+ * by their {@link languages.match score} and the best-matching provider is used. Failure
9542
9550
  * of the selected provider will cause a failure of the whole operation.
9543
9551
  *
9544
9552
  * @param selector A selector that defines the documents this provider is applicable to.
9545
9553
  * @param provider A document range semantic tokens provider.
9546
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9554
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9547
9555
  */
9548
9556
  export function registerDocumentRangeSemanticTokensProvider(selector: DocumentSelector, provider: DocumentRangeSemanticTokensProvider, legend: SemanticTokensLegend): Disposable;
9549
9557
 
@@ -9556,7 +9564,7 @@ export module '@theia/plugin' {
9556
9564
  *
9557
9565
  * @param selector A selector that defines the documents this provider is applicable to.
9558
9566
  * @param service A call hierarchy provider.
9559
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
9567
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
9560
9568
  */
9561
9569
  export function registerCallHierarchyProvider(selector: DocumentSelector, provider: CallHierarchyProvider): Disposable;
9562
9570
 
@@ -9591,7 +9599,7 @@ export module '@theia/plugin' {
9591
9599
  /**
9592
9600
  * The contents of this hover.
9593
9601
  */
9594
- contents: MarkedString[];
9602
+ contents: Array<MarkdownString | MarkedString>;
9595
9603
 
9596
9604
  /**
9597
9605
  * The range to which this hover applies. When missing, the
@@ -9711,7 +9719,7 @@ export module '@theia/plugin' {
9711
9719
  range: Range;
9712
9720
 
9713
9721
  /**
9714
- * The highlight kind, default is [text](#DocumentHighlightKind.Text).
9722
+ * The highlight kind, default is {@link DocumentHighlightKind.Text text}.
9715
9723
  */
9716
9724
  kind?: DocumentHighlightKind;
9717
9725
 
@@ -9719,7 +9727,7 @@ export module '@theia/plugin' {
9719
9727
  * Creates a new document highlight object.
9720
9728
  *
9721
9729
  * @param range The range the highlight applies to.
9722
- * @param kind The highlight kind, default is [text](#DocumentHighlightKind.Text).
9730
+ * @param kind The highlight kind, default is {@link DocumentHighlightKind.Text text}.
9723
9731
  */
9724
9732
  constructor(range: Range, kind?: DocumentHighlightKind);
9725
9733
  }
@@ -9767,7 +9775,7 @@ export module '@theia/plugin' {
9767
9775
  interface QuickDiffProvider {
9768
9776
 
9769
9777
  /**
9770
- * Provide a [uri](#Uri) to the original resource of any given resource uri.
9778
+ * Provide a {@link Uri uri} to the original resource of any given resource uri.
9771
9779
  *
9772
9780
  * @param uri The uri of the resource open in a text editor.
9773
9781
  * @param token A cancellation token.
@@ -9778,38 +9786,38 @@ export module '@theia/plugin' {
9778
9786
 
9779
9787
  /**
9780
9788
  * The theme-aware decorations for a
9781
- * [source control resource state](#SourceControlResourceState).
9789
+ * {@link SourceControlResourceState source control resource state}.
9782
9790
  */
9783
9791
  export interface SourceControlResourceThemableDecorations {
9784
9792
 
9785
9793
  /**
9786
9794
  * The icon path for a specific
9787
- * [source control resource state](#SourceControlResourceState).
9795
+ * {@link SourceControlResourceState source control resource state}.
9788
9796
  */
9789
9797
  readonly iconPath?: string | Uri;
9790
9798
  }
9791
9799
 
9792
9800
  /**
9793
- * The decorations for a [source control resource state](#SourceControlResourceState).
9801
+ * The decorations for a {@link SourceControlResourceState source control resource state}.
9794
9802
  * Can be independently specified for light and dark themes.
9795
9803
  */
9796
9804
  export interface SourceControlResourceDecorations extends SourceControlResourceThemableDecorations {
9797
9805
 
9798
9806
  /**
9799
- * Whether the [source control resource state](#SourceControlResourceState) should
9807
+ * Whether the {@link SourceControlResourceState source control resource state} should
9800
9808
  * be striked-through in the UI.
9801
9809
  */
9802
9810
  readonly strikeThrough?: boolean;
9803
9811
 
9804
9812
  /**
9805
- * Whether the [source control resource state](#SourceControlResourceState) should
9813
+ * Whether the {@link SourceControlResourceState source control resource state} should
9806
9814
  * be faded in the UI.
9807
9815
  */
9808
9816
  readonly faded?: boolean;
9809
9817
 
9810
9818
  /**
9811
9819
  * The title for a specific
9812
- * [source control resource state](#SourceControlResourceState).
9820
+ * {@link SourceControlResourceState source control resource state}.
9813
9821
  */
9814
9822
  readonly tooltip?: string;
9815
9823
 
@@ -9826,23 +9834,23 @@ export module '@theia/plugin' {
9826
9834
 
9827
9835
  /**
9828
9836
  * An source control resource state represents the state of an underlying workspace
9829
- * resource within a certain [source control group](#SourceControlResourceGroup).
9837
+ * resource within a certain {@link SourceControlResourceGroup source control group}.
9830
9838
  */
9831
9839
  export interface SourceControlResourceState {
9832
9840
 
9833
9841
  /**
9834
- * The [uri](#Uri) of the underlying resource inside the workspace.
9842
+ * The {@link Uri uri} of the underlying resource inside the workspace.
9835
9843
  */
9836
9844
  readonly resourceUri: Uri;
9837
9845
 
9838
9846
  /**
9839
- * The [command](#Command) which should be run when the resource
9847
+ * The {@link Command command} which should be run when the resource
9840
9848
  * state is open in the Source Control viewlet.
9841
9849
  */
9842
9850
  readonly command?: Command;
9843
9851
 
9844
9852
  /**
9845
- * The [decorations](#SourceControlResourceDecorations) for this source control
9853
+ * The {@link SourceControlResourceDecorations decorations} for this source control
9846
9854
  * resource state.
9847
9855
  */
9848
9856
  readonly decorations?: SourceControlResourceDecorations;
@@ -9870,7 +9878,7 @@ export module '@theia/plugin' {
9870
9878
 
9871
9879
  /**
9872
9880
  * A source control resource group is a collection of
9873
- * [source control resource states](#SourceControlResourceState).
9881
+ * {@link SourceControlResourceState source control resource states}.
9874
9882
  */
9875
9883
  export interface SourceControlResourceGroup {
9876
9884
 
@@ -9886,13 +9894,13 @@ export module '@theia/plugin' {
9886
9894
 
9887
9895
  /**
9888
9896
  * Whether this source control resource group is hidden when it contains
9889
- * no [source control resource states](#SourceControlResourceState).
9897
+ * no {@link SourceControlResourceState source control resource states}.
9890
9898
  */
9891
9899
  hideWhenEmpty?: boolean;
9892
9900
 
9893
9901
  /**
9894
9902
  * This group's collection of
9895
- * [source control resource states](#SourceControlResourceState).
9903
+ * {@link SourceControlResourceState source control resource states}.
9896
9904
  */
9897
9905
  resourceStates: SourceControlResourceState[];
9898
9906
 
@@ -9903,7 +9911,7 @@ export module '@theia/plugin' {
9903
9911
  }
9904
9912
 
9905
9913
  /**
9906
- * An source control is able to provide [resource states](#SourceControlResourceState)
9914
+ * An source control is able to provide {@link SourceControlResourceState resource states}
9907
9915
  * to the editor and interact with the editor in several source control related ways.
9908
9916
  */
9909
9917
  export interface SourceControl {
@@ -9924,21 +9932,21 @@ export module '@theia/plugin' {
9924
9932
  readonly rootUri: Uri | undefined;
9925
9933
 
9926
9934
  /**
9927
- * The [input box](#SourceControlInputBox) for this source control.
9935
+ * The {@link SourceControlInputBox input box} for this source control.
9928
9936
  */
9929
9937
  readonly inputBox: SourceControlInputBox;
9930
9938
 
9931
9939
  /**
9932
- * The UI-visible count of [resource states](#SourceControlResourceState) of
9940
+ * The UI-visible count of {@link SourceControlResourceState resource states} of
9933
9941
  * this source control.
9934
9942
  *
9935
- * Equals to the total number of [resource state](#SourceControlResourceState)
9943
+ * Equals to the total number of {@link SourceControlResourceState resource state}
9936
9944
  * of this source control, if undefined.
9937
9945
  */
9938
9946
  count?: number;
9939
9947
 
9940
9948
  /**
9941
- * An optional [quick diff provider](#QuickDiffProvider).
9949
+ * An optional {@link QuickDiffProvider quick diff provider}.
9942
9950
  */
9943
9951
  quickDiffProvider?: QuickDiffProvider;
9944
9952
 
@@ -9966,7 +9974,7 @@ export module '@theia/plugin' {
9966
9974
  statusBarCommands?: Command[];
9967
9975
 
9968
9976
  /**
9969
- * Create a new [resource group](#SourceControlResourceGroup).
9977
+ * Create a new {@link SourceControlResourceGroup resource group}.
9970
9978
  */
9971
9979
  createResourceGroup(id: string, label: string): SourceControlResourceGroup;
9972
9980
 
@@ -9979,7 +9987,7 @@ export module '@theia/plugin' {
9979
9987
  export namespace scm {
9980
9988
 
9981
9989
  /**
9982
- * ~~The [input box](#SourceControlInputBox) for the last source control
9990
+ * ~~The {@link SourceControlInputBox input box} for the last source control
9983
9991
  * created by the extension.~~
9984
9992
  *
9985
9993
  * @deprecated Use SourceControl.inputBox instead
@@ -9987,12 +9995,12 @@ export module '@theia/plugin' {
9987
9995
  export const inputBox: SourceControlInputBox;
9988
9996
 
9989
9997
  /**
9990
- * Creates a new [source control](#SourceControl) instance.
9998
+ * Creates a new {@link SourceControl source control} instance.
9991
9999
  *
9992
10000
  * @param id An `id` for the source control. Something short, eg: `git`.
9993
10001
  * @param label A human-readable string for the source control. Eg: `Git`.
9994
10002
  * @param rootUri An optional Uri of the root of the source control. Eg: `Uri.parse(workspaceRoot)`.
9995
- * @return An instance of [source control](#SourceControl).
10003
+ * @return An instance of {@link SourceControl source control}.
9996
10004
  */
9997
10005
  export function createSourceControl(id: string, label: string, rootUri?: Uri): SourceControl;
9998
10006
  }
@@ -10054,12 +10062,12 @@ export module '@theia/plugin' {
10054
10062
  readonly id: string;
10055
10063
 
10056
10064
  /**
10057
- * The debug session's type from the [debug configuration](#DebugConfiguration).
10065
+ * The debug session's type from the {@link DebugConfiguration debug configuration}.
10058
10066
  */
10059
10067
  readonly type: string;
10060
10068
 
10061
10069
  /**
10062
- * The debug session's name from the [debug configuration](#DebugConfiguration).
10070
+ * The debug session's name from the {@link DebugConfiguration debug configuration}.
10063
10071
  */
10064
10072
  readonly name: string;
10065
10073
 
@@ -10069,7 +10077,7 @@ export module '@theia/plugin' {
10069
10077
  readonly workspaceFolder: WorkspaceFolder | undefined;
10070
10078
 
10071
10079
  /**
10072
- * The "resolved" [debug configuration](#DebugConfiguration) of this session.
10080
+ * The "resolved" {@link DebugConfiguration debug configuration} of this session.
10073
10081
  */
10074
10082
  readonly configuration: DebugConfiguration;
10075
10083
 
@@ -10089,23 +10097,23 @@ export module '@theia/plugin' {
10089
10097
  }
10090
10098
 
10091
10099
  /**
10092
- * A custom Debug Adapter Protocol event received from a [debug session](#DebugSession).
10100
+ * A custom Debug Adapter Protocol event received from a {@link DebugSession debug session}.
10093
10101
  */
10094
10102
  export interface DebugSessionCustomEvent {
10095
10103
  /**
10096
- * The [debug session](#DebugSession) for which the custom event was received.
10104
+ * The {@link DebugSession debug session} for which the custom event was received.
10097
10105
  */
10098
- session: DebugSession;
10106
+ readonly session: DebugSession;
10099
10107
 
10100
10108
  /**
10101
10109
  * Type of event.
10102
10110
  */
10103
- event: string;
10111
+ readonly event: string;
10104
10112
 
10105
10113
  /**
10106
10114
  * Event specific information.
10107
10115
  */
10108
- body?: any;
10116
+ readonly body?: any;
10109
10117
  }
10110
10118
 
10111
10119
  /**
@@ -10147,7 +10155,7 @@ export module '@theia/plugin' {
10147
10155
  */
10148
10156
  export interface DebugConfigurationProvider {
10149
10157
  /**
10150
- * Provides initial [debug configuration](#DebugConfiguration). If more than one debug configuration provider is
10158
+ * Provides initial {@link DebugConfiguration debug configuration}. If more than one debug configuration provider is
10151
10159
  * registered for the same type, debug configurations are concatenated in arbitrary order.
10152
10160
  *
10153
10161
  * @param folder The workspace folder for which the configurations are used or undefined for a folderless setup.
@@ -10157,14 +10165,14 @@ export module '@theia/plugin' {
10157
10165
  provideDebugConfigurations?(folder: WorkspaceFolder | undefined, token?: CancellationToken): ProviderResult<DebugConfiguration[]>;
10158
10166
 
10159
10167
  /**
10160
- * Resolves a [debug configuration](#DebugConfiguration) by filling in missing values or by adding/changing/removing attributes.
10168
+ * Resolves a {@link DebugConfiguration debug configuration} by filling in missing values or by adding/changing/removing attributes.
10161
10169
  * If more than one debug configuration provider is registered for the same type, the resolveDebugConfiguration calls are chained
10162
10170
  * in arbitrary order and the initial debug configuration is piped through the chain.
10163
10171
  * Returning the value 'undefined' prevents the debug session from starting.
10164
10172
  * Returning the value 'null' prevents the debug session from starting and opens the underlying debug configuration instead.
10165
10173
  *
10166
10174
  * @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.
10175
+ * @param debugConfiguration The {@link DebugConfiguration debug configuration} to resolve.
10168
10176
  * @param token A cancellation token.
10169
10177
  * @return The resolved debug configuration or undefined or null.
10170
10178
  */
@@ -10172,14 +10180,14 @@ export module '@theia/plugin' {
10172
10180
 
10173
10181
  /**
10174
10182
  * 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.
10183
+ * 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
10184
  * If more than one debug configuration provider is registered for the same type, the 'resolveDebugConfigurationWithSubstitutedVariables' calls are chained
10177
10185
  * in arbitrary order and the initial debug configuration is piped through the chain.
10178
10186
  * Returning the value 'undefined' prevents the debug session from starting.
10179
10187
  * Returning the value 'null' prevents the debug session from starting and opens the underlying debug configuration instead.
10180
10188
  *
10181
10189
  * @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.
10190
+ * @param debugConfiguration The {@link DebugConfiguration debug configuration} to resolve.
10183
10191
  * @param token A cancellation token.
10184
10192
  * @return The resolved debug configuration or undefined or null.
10185
10193
  */
@@ -10221,8 +10229,8 @@ export module '@theia/plugin' {
10221
10229
  * The method 'createDebugAdapterTracker' is called at the start of a debug session in order
10222
10230
  * to return a "tracker" object that provides read-access to the communication between VS Code and a debug adapter.
10223
10231
  *
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.
10232
+ * @param session The {@link DebugSession debug session} for which the debug adapter tracker will be used.
10233
+ * @return A {@link DebugAdapterTracker debug adapter tracker} or undefined.
10226
10234
  */
10227
10235
  createDebugAdapterTracker(session: DebugSession): ProviderResult<DebugAdapterTracker>;
10228
10236
  }
@@ -10350,10 +10358,10 @@ export module '@theia/plugin' {
10350
10358
  export interface DebugAdapterDescriptorFactory {
10351
10359
  /**
10352
10360
  * '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).
10361
+ * These details must be returned as objects of type {@link DebugAdapterDescriptor DebugAdapterDescriptor}.
10354
10362
  * 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)).
10363
+ * - a debug adapter executable is specified as a command path and arguments (see {@link DebugAdapterExecutable DebugAdapterExecutable}),
10364
+ * - a debug adapter server reachable via a communication port (see {@link DebugAdapterServer DebugAdapterServer}).
10357
10365
  * If the method is not implemented the default behavior is this:
10358
10366
  * createDebugAdapter(session: DebugSession, executable: DebugAdapterExecutable) {
10359
10367
  * if (typeof session.configuration.debugServer === 'number') {
@@ -10361,9 +10369,9 @@ export module '@theia/plugin' {
10361
10369
  * }
10362
10370
  * return executable;
10363
10371
  * }
10364
- * @param session The [debug session](#DebugSession) for which the debug adapter will be used.
10372
+ * @param session The {@link DebugSession debug session} for which the debug adapter will be used.
10365
10373
  * @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.
10374
+ * @return a {@link DebugAdapterDescriptor debug adapter descriptor} or undefined.
10367
10375
  */
10368
10376
  createDebugAdapterDescriptor(session: DebugSession, executable: DebugAdapterExecutable | undefined): ProviderResult<DebugAdapterDescriptor>;
10369
10377
  }
@@ -10405,23 +10413,23 @@ export module '@theia/plugin' {
10405
10413
  }
10406
10414
 
10407
10415
  /**
10408
- * An event describing the changes to the set of [breakpoints](#Breakpoint).
10416
+ * An event describing the changes to the set of {@link Breakpoint breakpoints}.
10409
10417
  */
10410
10418
  export interface BreakpointsChangeEvent {
10411
10419
  /**
10412
10420
  * Added breakpoints.
10413
10421
  */
10414
- readonly added: Breakpoint[];
10422
+ readonly added: readonly Breakpoint[];
10415
10423
 
10416
10424
  /**
10417
10425
  * Removed breakpoints.
10418
10426
  */
10419
- readonly removed: Breakpoint[];
10427
+ readonly removed: readonly Breakpoint[];
10420
10428
 
10421
10429
  /**
10422
10430
  * Changed breakpoints.
10423
10431
  */
10424
- readonly changed: Breakpoint[];
10432
+ readonly changed: readonly Breakpoint[];
10425
10433
  }
10426
10434
 
10427
10435
  /**
@@ -10507,57 +10515,57 @@ export module '@theia/plugin' {
10507
10515
  export namespace debug {
10508
10516
 
10509
10517
  /**
10510
- * The currently active [debug session](#DebugSession) or `undefined`. The active debug session is the one
10518
+ * The currently active {@link DebugSession debug session} or `undefined`. The active debug session is the one
10511
10519
  * represented by the debug action floating window or the one currently shown in the drop down menu of the debug action floating window.
10512
10520
  * If no debug session is active, the value is `undefined`.
10513
10521
  */
10514
10522
  export let activeDebugSession: DebugSession | undefined;
10515
10523
 
10516
10524
  /**
10517
- * The currently active [debug console](#DebugConsole).
10525
+ * The currently active {@link DebugConsole debug console}.
10518
10526
  */
10519
10527
  export let activeDebugConsole: DebugConsole;
10520
10528
 
10521
10529
  /**
10522
10530
  * List of breakpoints.
10523
10531
  */
10524
- export let breakpoints: Breakpoint[];
10532
+ export let breakpoints: readonly Breakpoint[];
10525
10533
 
10526
10534
  /**
10527
- * An [event](#Event) which fires when the [active debug session](#debug.activeDebugSession)
10535
+ * An {@link Event event} which fires when the {@link debug.activeDebugSession active debug session}
10528
10536
  * has changed. *Note* that the event also fires when the active debug session changes
10529
10537
  * to `undefined`.
10530
10538
  */
10531
10539
  export const onDidChangeActiveDebugSession: Event<DebugSession | undefined>;
10532
10540
 
10533
10541
  /**
10534
- * An [event](#Event) which fires when a new [debug session](#DebugSession) has been started.
10542
+ * An {@link Event event} which fires when a new {@link DebugSession debug session} has been started.
10535
10543
  */
10536
10544
  export const onDidStartDebugSession: Event<DebugSession>;
10537
10545
 
10538
10546
  /**
10539
- * An [event](#Event) which fires when a custom DAP event is received from the [debug session](#DebugSession).
10547
+ * An {@link Event event} which fires when a custom DAP event is received from the {@link DebugSession debug session}.
10540
10548
  */
10541
10549
  export const onDidReceiveDebugSessionCustomEvent: Event<DebugSessionCustomEvent>;
10542
10550
 
10543
10551
  /**
10544
- * An [event](#Event) which fires when a [debug session](#DebugSession) has terminated.
10552
+ * An {@link Event event} which fires when a {@link DebugSession debug session} has terminated.
10545
10553
  */
10546
10554
  export const onDidTerminateDebugSession: Event<DebugSession>;
10547
10555
 
10548
10556
  /**
10549
- * An [event](#Event) that is emitted when the set of breakpoints is added, removed, or changed.
10557
+ * An {@link Event event} that is emitted when the set of breakpoints is added, removed, or changed.
10550
10558
  */
10551
10559
  export const onDidChangeBreakpoints: Event<BreakpointsChangeEvent>;
10552
10560
 
10553
10561
  /**
10554
- * Register a [debug adapter descriptor factory](#DebugAdapterDescriptorFactory) for a specific debug type.
10562
+ * Register a {@link DebugAdapterDescriptorFactory debug adapter descriptor factory} for a specific debug type.
10555
10563
  * An extension is only allowed to register a DebugAdapterDescriptorFactory for the debug type(s) defined by the extension. Otherwise an error is thrown.
10556
10564
  * Registering more than one DebugAdapterDescriptorFactory for a debug type results in an error.
10557
10565
  *
10558
10566
  * @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.
10567
+ * @param factory The {@link DebugAdapterDescriptorFactory debug adapter descriptor factory} to register.
10568
+ * @return A {@link Disposable disposable} that unregisters this factory when being disposed.
10561
10569
  */
10562
10570
  export function registerDebugAdapterDescriptorFactory(debugType: string, factory: DebugAdapterDescriptorFactory): Disposable;
10563
10571
 
@@ -10592,19 +10600,19 @@ export module '@theia/plugin' {
10592
10600
  * Register a debug adapter tracker factory for the given debug type.
10593
10601
  *
10594
10602
  * @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.
10603
+ * @param factory The {@link DebugAdapterTrackerFactory debug adapter tracker factory} to register.
10604
+ * @return A {@link Disposable disposable} that unregisters this factory when being disposed.
10597
10605
  */
10598
10606
  export function registerDebugAdapterTrackerFactory(debugType: string, factory: DebugAdapterTrackerFactory): Disposable;
10599
10607
 
10600
10608
  /**
10601
10609
  * Start debugging by using either a named launch or named compound configuration,
10602
- * or by directly passing a [DebugConfiguration](#DebugConfiguration).
10610
+ * or by directly passing a {@link DebugConfiguration DebugConfiguration}.
10603
10611
  * The named configurations are looked up in '.vscode/launch.json' found in the given folder.
10604
10612
  * Before debugging starts, all unsaved files are saved and the launch configurations are brought up-to-date.
10605
10613
  * 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.
10614
+ * @param folder The {@link WorkspaceFolder workspace folder} for looking up named configurations and resolving variables or `undefined` for a non-folder setup.
10615
+ * @param nameOrConfiguration Either the name of a debug or compound configuration or a {@link DebugConfiguration DebugConfiguration} object.
10608
10616
  * @param parentSessionOrOptions Debug session options. When passed a parent debug session, assumes options with just this parent session.
10609
10617
  * @return A thenable that resolves when debugging could be successfully started.
10610
10618
  */
@@ -10612,7 +10620,7 @@ export module '@theia/plugin' {
10612
10620
 
10613
10621
  /**
10614
10622
  * 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.
10623
+ * @param session The {@link DebugSession debug session} to stop; if omitted all sessions are stopped.
10616
10624
  */
10617
10625
  export function stopDebugging(session?: DebugSession): Thenable<void>;
10618
10626
 
@@ -10632,31 +10640,31 @@ export module '@theia/plugin' {
10632
10640
  }
10633
10641
 
10634
10642
  /**
10635
- * Represents options to configure the behavior of showing a [document](#TextDocument) in an [editor](#TextEditor).
10643
+ * Represents options to configure the behavior of showing a {@link TextDocument document} in an {@link TextEditor editor}.
10636
10644
  */
10637
10645
  export interface TextDocumentShowOptions {
10638
10646
  /**
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
10647
+ * An optional view column in which the {@link TextEditor editor} should be shown.
10648
+ * The default is the {@link ViewColumn.Active active}, other values are adjusted to
10649
+ * be `Min(column, columnCount + 1)`, the {@link ViewColumn.Active active}-column is
10642
10650
  * not adjusted. Use [`ViewColumn.Beside`](#ViewColumn.Beside) to open the
10643
10651
  * editor to the side of the currently active one.
10644
10652
  */
10645
10653
  viewColumn?: ViewColumn;
10646
10654
 
10647
10655
  /**
10648
- * An optional flag that when `true` will stop the [editor](#TextEditor) from taking focus.
10656
+ * An optional flag that when `true` will stop the {@link TextEditor editor} from taking focus.
10649
10657
  */
10650
10658
  preserveFocus?: boolean;
10651
10659
 
10652
10660
  /**
10653
- * An optional flag that controls if an [editor](#TextEditor)-tab will be replaced
10661
+ * An optional flag that controls if an {@link TextEditor editor}-tab will be replaced
10654
10662
  * with the next editor or if it will be kept.
10655
10663
  */
10656
10664
  preview?: boolean;
10657
10665
 
10658
10666
  /**
10659
- * An optional selection to apply for the document in the [editor](#TextEditor).
10667
+ * An optional selection to apply for the document in the {@link TextEditor editor}.
10660
10668
  */
10661
10669
  selection?: Range;
10662
10670
  }
@@ -10875,8 +10883,6 @@ export module '@theia/plugin' {
10875
10883
  * were in the task definition will be resolved and passed into the callback as `resolvedDefinition`.
10876
10884
  */
10877
10885
  constructor(callback: (resolvedDefinition: TaskDefinition) => Thenable<Pseudoterminal>);
10878
-
10879
- readonly callback;
10880
10886
  }
10881
10887
 
10882
10888
  export enum TaskScope {
@@ -11106,7 +11112,7 @@ export module '@theia/plugin' {
11106
11112
  /**
11107
11113
  * The task item representing the task that got started.
11108
11114
  */
11109
- execution: TaskExecution;
11115
+ readonly execution: TaskExecution;
11110
11116
  }
11111
11117
 
11112
11118
  /**
@@ -11118,7 +11124,7 @@ export module '@theia/plugin' {
11118
11124
  /**
11119
11125
  * The task item representing the task that finished.
11120
11126
  */
11121
- execution: TaskExecution;
11127
+ readonly execution: TaskExecution;
11122
11128
  }
11123
11129
 
11124
11130
  /**
@@ -11129,7 +11135,7 @@ export module '@theia/plugin' {
11129
11135
  /**
11130
11136
  * The task execution for which the process got started.
11131
11137
  */
11132
- execution: TaskExecution;
11138
+ readonly execution: TaskExecution;
11133
11139
 
11134
11140
  /**
11135
11141
  * The underlying process id.
@@ -11146,7 +11152,7 @@ export module '@theia/plugin' {
11146
11152
  /**
11147
11153
  * The task execution for which the process got started.
11148
11154
  */
11149
- execution: TaskExecution;
11155
+ readonly execution: TaskExecution;
11150
11156
 
11151
11157
  /**
11152
11158
  * The process's exit code.
@@ -11174,7 +11180,7 @@ export module '@theia/plugin' {
11174
11180
  *
11175
11181
  * @param type The task kind type this provider is registered for.
11176
11182
  * @param provider A task provider.
11177
- * @return A [disposable](#Disposable) that unregisters this provider when being disposed.
11183
+ * @return A {@link Disposable disposable} that unregisters this provider when being disposed.
11178
11184
  */
11179
11185
  export function registerTaskProvider(type: string, provider: TaskProvider): Disposable;
11180
11186
 
@@ -11198,7 +11204,7 @@ export module '@theia/plugin' {
11198
11204
  /**
11199
11205
  * The currently active task executions or an empty array.
11200
11206
  */
11201
- export const taskExecutions: ReadonlyArray<TaskExecution>;
11207
+ export const taskExecutions: readonly TaskExecution[];
11202
11208
 
11203
11209
  /** Fires when a task starts. */
11204
11210
  export const onDidStartTask: Event<TaskStartEvent>;
@@ -11221,39 +11227,6 @@ export module '@theia/plugin' {
11221
11227
  export const onDidEndTaskProcess: Event<TaskProcessEndEvent>;
11222
11228
  }
11223
11229
 
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
11230
  /* The workspace symbol provider interface defines the contract between extensions
11258
11231
  * and the [symbol search](https://code.visualstudio.com/docs/editor/intellisense)-feature.
11259
11232
  */
@@ -11280,7 +11253,7 @@ export module '@theia/plugin' {
11280
11253
  provideWorkspaceSymbols(query: string, token: CancellationToken): ProviderResult<T[]>;
11281
11254
 
11282
11255
  /**
11283
- * Given a symbol fill in its [location](#SymbolInformation.location). This method is called whenever a symbol
11256
+ * Given a symbol fill in its {@link SymbolInformation.location location}. This method is called whenever a symbol
11284
11257
  * is selected in the UI. Providers can implement this method and return incomplete symbols from
11285
11258
  * [`provideWorkspaceSymbols`](#WorkspaceSymbolProvider.provideWorkspaceSymbols) which often helps to improve
11286
11259
  * performance.
@@ -11297,7 +11270,7 @@ export module '@theia/plugin' {
11297
11270
  // #region Comments
11298
11271
 
11299
11272
  /**
11300
- * Collapsible state of a [comment thread](#CommentThread)
11273
+ * Collapsible state of a {@link CommentThread comment thread}
11301
11274
  */
11302
11275
  export enum CommentThreadCollapsibleState {
11303
11276
  /**
@@ -11312,7 +11285,7 @@ export module '@theia/plugin' {
11312
11285
  }
11313
11286
 
11314
11287
  /**
11315
- * Comment mode of a [comment](#Comment)
11288
+ * Comment mode of a {@link Comment comment}
11316
11289
  */
11317
11290
  export enum CommentMode {
11318
11291
  /**
@@ -11327,7 +11300,7 @@ export module '@theia/plugin' {
11327
11300
  }
11328
11301
 
11329
11302
  /**
11330
- * A collection of [comments](#Comment) representing a conversation at a particular range in a document.
11303
+ * A collection of {@link Comment comments} representing a conversation at a particular range in a document.
11331
11304
  */
11332
11305
  export interface CommentThread {
11333
11306
  /**
@@ -11373,7 +11346,7 @@ export module '@theia/plugin' {
11373
11346
  contextValue?: string;
11374
11347
 
11375
11348
  /**
11376
- * The optional human-readable label describing the [Comment Thread](#CommentThread)
11349
+ * The optional human-readable label describing the {@link CommentThread Comment Thread}
11377
11350
  */
11378
11351
  label?: string;
11379
11352
 
@@ -11391,7 +11364,7 @@ export module '@theia/plugin' {
11391
11364
  }
11392
11365
 
11393
11366
  /**
11394
- * Author information of a [comment](#Comment)
11367
+ * Author information of a {@link Comment comment}
11395
11368
  */
11396
11369
  export interface CommentAuthorInformation {
11397
11370
  /**
@@ -11406,7 +11379,7 @@ export module '@theia/plugin' {
11406
11379
  }
11407
11380
 
11408
11381
  /**
11409
- * Reactions of a [comment](#Comment)
11382
+ * Reactions of a {@link Comment comment}
11410
11383
  */
11411
11384
  export interface CommentReaction {
11412
11385
  /**
@@ -11440,12 +11413,12 @@ export module '@theia/plugin' {
11440
11413
  body: string | MarkdownString;
11441
11414
 
11442
11415
  /**
11443
- * [Comment mode](#CommentMode) of the comment
11416
+ * {@link CommentMode Comment mode} of the comment
11444
11417
  */
11445
11418
  mode: CommentMode;
11446
11419
 
11447
11420
  /**
11448
- * The [author information](#CommentAuthorInformation) of the comment
11421
+ * The {@link CommentAuthorInformation author information} of the comment
11449
11422
  */
11450
11423
  author: CommentAuthorInformation;
11451
11424
 
@@ -11470,12 +11443,12 @@ export module '@theia/plugin' {
11470
11443
  contextValue?: string;
11471
11444
 
11472
11445
  /**
11473
- * Optional reactions of the [comment](#Comment)
11446
+ * Optional reactions of the {@link Comment comment}
11474
11447
  */
11475
11448
  reactions?: CommentReaction[];
11476
11449
 
11477
11450
  /**
11478
- * Optional label describing the [Comment](#Comment)
11451
+ * Optional label describing the {@link Comment Comment}
11479
11452
  * Label will be rendered next to authorName if exists.
11480
11453
  */
11481
11454
  label?: string;
@@ -11486,7 +11459,7 @@ export module '@theia/plugin' {
11486
11459
  */
11487
11460
  export interface CommentReply {
11488
11461
  /**
11489
- * The active [comment thread](#CommentThread)
11462
+ * The active {@link CommentThread comment thread}
11490
11463
  */
11491
11464
  thread: CommentThread;
11492
11465
 
@@ -11497,7 +11470,7 @@ export module '@theia/plugin' {
11497
11470
  }
11498
11471
 
11499
11472
  /**
11500
- * Commenting range provider for a [comment controller](#CommentController).
11473
+ * Commenting range provider for a {@link CommentController comment controller}.
11501
11474
  */
11502
11475
  export interface CommentingRangeProvider {
11503
11476
  /**
@@ -11507,7 +11480,7 @@ export module '@theia/plugin' {
11507
11480
  }
11508
11481
 
11509
11482
  /**
11510
- * Represents a [comment controller](#CommentController)'s [options](#CommentController.options).
11483
+ * Represents a {@link CommentController comment controller}'s {@link CommentController.options options}.
11511
11484
  */
11512
11485
  export interface CommentOptions {
11513
11486
  /**
@@ -11522,7 +11495,7 @@ export module '@theia/plugin' {
11522
11495
  }
11523
11496
 
11524
11497
  /**
11525
- * A comment controller is able to provide [comments](#CommentThread) support to the editor and
11498
+ * A comment controller is able to provide {@link CommentThread comments} support to the editor and
11526
11499
  * provide users various ways to interact with comments.
11527
11500
  */
11528
11501
  export interface CommentController {
@@ -11542,14 +11515,14 @@ export module '@theia/plugin' {
11542
11515
  options?: CommentOptions;
11543
11516
 
11544
11517
  /**
11545
- * Optional commenting range provider. Provide a list [ranges](#Range) which support commenting to any given resource uri.
11518
+ * Optional commenting range provider. Provide a list {@link Range ranges} which support commenting to any given resource uri.
11546
11519
  *
11547
11520
  * If not provided, users can leave comments in any document opened in the editor.
11548
11521
  */
11549
11522
  commentingRangeProvider?: CommentingRangeProvider;
11550
11523
 
11551
11524
  /**
11552
- * Create a [comment thread](#CommentThread). The comment thread will be displayed in visible text editors (if the resource matches)
11525
+ * Create a {@link CommentThread comment thread}. The comment thread will be displayed in visible text editors (if the resource matches)
11553
11526
  * and Comments Panel once created.
11554
11527
  *
11555
11528
  * @param uri The uri of the document the thread has been created on.
@@ -11559,14 +11532,14 @@ export module '@theia/plugin' {
11559
11532
  createCommentThread(uri: Uri, range: Range, comments: Comment[]): CommentThread;
11560
11533
 
11561
11534
  /**
11562
- * Optional reaction handler for creating and deleting reactions on a [comment](#Comment).
11535
+ * Optional reaction handler for creating and deleting reactions on a {@link Comment comment}.
11563
11536
  */
11564
- reactionHandler?: (comment: Comment, reaction: CommentReaction) => Promise<void>;
11537
+ reactionHandler?: (comment: Comment, reaction: CommentReaction) => Thenable<void>;
11565
11538
 
11566
11539
  /**
11567
11540
  * Dispose this comment controller.
11568
11541
  *
11569
- * Once disposed, all [comment threads](#CommentThread) created by this comment controller will also be removed from the editor
11542
+ * Once disposed, all {@link CommentThread comment threads} created by this comment controller will also be removed from the editor
11570
11543
  * and Comments Panel.
11571
11544
  */
11572
11545
  dispose(): void;
@@ -11574,11 +11547,11 @@ export module '@theia/plugin' {
11574
11547
 
11575
11548
  namespace comments {
11576
11549
  /**
11577
- * Creates a new [comment controller](#CommentController) instance.
11550
+ * Creates a new {@link CommentController comment controller} instance.
11578
11551
  *
11579
11552
  * @param id An `id` for the comment controller.
11580
11553
  * @param label A human-readable string for the comment controller.
11581
- * @return An instance of [comment controller](#CommentController).
11554
+ * @return An instance of {@link CommentController comment controller}.
11582
11555
  */
11583
11556
  export function createCommentController(id: string, label: string): CommentController;
11584
11557
  }
@@ -11592,7 +11565,7 @@ export module '@theia/plugin' {
11592
11565
  export class SelectionRange {
11593
11566
 
11594
11567
  /**
11595
- * The [range](#Range) of this selection range.
11568
+ * The {@link Range range} of this selection range.
11596
11569
  */
11597
11570
  range: Range;
11598
11571
 
@@ -11616,7 +11589,7 @@ export module '@theia/plugin' {
11616
11589
  *
11617
11590
  * Selection ranges should be computed individually and independent for each position. The editor will merge
11618
11591
  * and deduplicate ranges but providers must return hierarchies of selection ranges so that a range
11619
- * is [contained](#Range.contains) by its parent.
11592
+ * is {@link Range.contains contained} by its parent.
11620
11593
  *
11621
11594
  * @param document The document in which the command was invoked.
11622
11595
  * @param positions The positions at which the command was invoked.
@@ -11798,7 +11771,7 @@ export module '@theia/plugin' {
11798
11771
  * An optional word pattern that describes valid contents for the given ranges.
11799
11772
  * If no pattern is provided, the language configuration's word pattern will be used.
11800
11773
  */
11801
- readonly wordPattern?: RegExp;
11774
+ readonly wordPattern: RegExp | undefined;
11802
11775
  }
11803
11776
 
11804
11777
  /**
@@ -11841,13 +11814,13 @@ export module '@theia/plugin' {
11841
11814
 
11842
11815
  /**
11843
11816
  * The permissions granted by the session's access token. Available scopes
11844
- * are defined by the [AuthenticationProvider](#AuthenticationProvider).
11817
+ * are defined by the {@link AuthenticationProvider AuthenticationProvider}.
11845
11818
  */
11846
11819
  readonly scopes: readonly string[];
11847
11820
  }
11848
11821
 
11849
11822
  /**
11850
- * The information of an account associated with an [AuthenticationSession](#AuthenticationSession).
11823
+ * The information of an account associated with an {@link AuthenticationSession AuthenticationSession}.
11851
11824
  */
11852
11825
  export interface AuthenticationSessionAccountInformation {
11853
11826
  /**
@@ -11862,7 +11835,7 @@ export module '@theia/plugin' {
11862
11835
  }
11863
11836
 
11864
11837
  /**
11865
- * Options to be used when getting an [AuthenticationSession](#AuthenticationSession) from an [AuthenticationProvider](#AuthenticationProvider).
11838
+ * Options to be used when getting an {@link AuthenticationSession AuthenticationSession} from an {@link AuthenticationProvider AuthenticationProvider}.
11866
11839
  */
11867
11840
  export interface AuthenticationGetSessionOptions {
11868
11841
  /**
@@ -11880,8 +11853,8 @@ export module '@theia/plugin' {
11880
11853
  * Whether the existing user session preference should be cleared.
11881
11854
  *
11882
11855
  * 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.
11856
+ * prompted to select an account to use when {@link authentication.getSession getSession} is called. This preference
11857
+ * is remembered until {@link authentication.getSession getSession} is called with this flag.
11885
11858
  *
11886
11859
  * Defaults to false.
11887
11860
  */
@@ -11911,7 +11884,7 @@ export module '@theia/plugin' {
11911
11884
  }
11912
11885
 
11913
11886
  /**
11914
- * Basic information about an [authenticationProvider](#AuthenticationProvider)
11887
+ * Basic information about an {@link AuthenticationProvider authenticationProvider}
11915
11888
  */
11916
11889
  export interface AuthenticationProviderInformation {
11917
11890
  /**
@@ -11926,11 +11899,11 @@ export module '@theia/plugin' {
11926
11899
  }
11927
11900
 
11928
11901
  /**
11929
- * An [event](#Event) which fires when an [AuthenticationSession](#AuthenticationSession) is added, removed, or changed.
11902
+ * An {@link Event event} which fires when an {@link AuthenticationSession AuthenticationSession} is added, removed, or changed.
11930
11903
  */
11931
11904
  export interface AuthenticationSessionsChangeEvent {
11932
11905
  /**
11933
- * The [authenticationProvider](#AuthenticationProvider) that has had its sessions change.
11906
+ * The {@link AuthenticationProvider authenticationProvider} that has had its sessions change.
11934
11907
  */
11935
11908
  readonly provider: AuthenticationProviderInformation;
11936
11909
  }
@@ -12026,7 +11999,7 @@ export module '@theia/plugin' {
12026
11999
  * to VS Code that implement GitHub and Microsoft authentication: their providerId's are 'github' and 'microsoft'.
12027
12000
  * @param providerId The id of the provider to use
12028
12001
  * @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
12002
+ * @param options The {@link GetSessionOptions getSessionOptions} to use
12030
12003
  * @returns A thenable that resolves to an authentication session
12031
12004
  */
12032
12005
  export function getSession(providerId: string, scopes: readonly string[], options: AuthenticationGetSessionOptions & { createIfNone: true }): Thenable<AuthenticationSession>;
@@ -12054,13 +12027,13 @@ export module '@theia/plugin' {
12054
12027
  *
12055
12028
  * @param providerId The id of the provider to use
12056
12029
  * @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
12030
+ * @param options The {@link GetSessionOptions getSessionOptions} to use
12058
12031
  * @returns A thenable that resolves to an authentication session if available, or undefined if there are no sessions
12059
12032
  */
12060
12033
  export function getSession(providerId: string, scopes: readonly string[], options?: AuthenticationGetSessionOptions): Thenable<AuthenticationSession | undefined>;
12061
12034
 
12062
12035
  /**
12063
- * An [event](#Event) which fires when the authentication sessions of an authentication provider have
12036
+ * An {@link Event event} which fires when the authentication sessions of an authentication provider have
12064
12037
  * been added, removed, or changed.
12065
12038
  */
12066
12039
  export const onDidChangeSessions: Event<AuthenticationSessionsChangeEvent>;