@theia/plugin-ext 1.34.0-next.7 → 1.34.0

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.
Files changed (175) hide show
  1. package/lib/common/plugin-api-rpc.d.ts +30 -10
  2. package/lib/common/plugin-api-rpc.d.ts.map +1 -1
  3. package/lib/common/plugin-api-rpc.js +23 -11
  4. package/lib/common/plugin-api-rpc.js.map +1 -1
  5. package/lib/common/plugin-protocol.d.ts +15 -0
  6. package/lib/common/plugin-protocol.d.ts.map +1 -1
  7. package/lib/common/plugin-protocol.js.map +1 -1
  8. package/lib/common/rpc-protocol.d.ts.map +1 -1
  9. package/lib/common/rpc-protocol.js +3 -4
  10. package/lib/common/rpc-protocol.js.map +1 -1
  11. package/lib/common/types.d.ts +1 -1
  12. package/lib/common/types.d.ts.map +1 -1
  13. package/lib/common/types.js +2 -3
  14. package/lib/common/types.js.map +1 -1
  15. package/lib/hosted/browser/hosted-plugin.d.ts +1 -0
  16. package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
  17. package/lib/hosted/browser/hosted-plugin.js +3 -0
  18. package/lib/hosted/browser/hosted-plugin.js.map +1 -1
  19. package/lib/hosted/node/hosted-plugin-localization-service.d.ts.map +1 -1
  20. package/lib/hosted/node/hosted-plugin-localization-service.js +2 -2
  21. package/lib/hosted/node/hosted-plugin-localization-service.js.map +1 -1
  22. package/lib/hosted/node/plugin-host.d.ts +1 -1
  23. package/lib/hosted/node/plugin-host.d.ts.map +1 -1
  24. package/lib/hosted/node/plugin-host.js +1 -2
  25. package/lib/hosted/node/plugin-host.js.map +1 -1
  26. package/lib/hosted/node/scanners/scanner-theia.d.ts +2 -1
  27. package/lib/hosted/node/scanners/scanner-theia.d.ts.map +1 -1
  28. package/lib/hosted/node/scanners/scanner-theia.js +13 -0
  29. package/lib/hosted/node/scanners/scanner-theia.js.map +1 -1
  30. package/lib/main/browser/authentication-main.js +1 -1
  31. package/lib/main/browser/authentication-main.js.map +1 -1
  32. package/lib/main/browser/commands.js +1 -1
  33. package/lib/main/browser/commands.js.map +1 -1
  34. package/lib/main/browser/debug/debug-main.d.ts.map +1 -1
  35. package/lib/main/browser/debug/debug-main.js +1 -0
  36. package/lib/main/browser/debug/debug-main.js.map +1 -1
  37. package/lib/main/browser/dialogs-main.d.ts.map +1 -1
  38. package/lib/main/browser/dialogs-main.js +2 -1
  39. package/lib/main/browser/dialogs-main.js.map +1 -1
  40. package/lib/main/browser/menus/plugin-menu-command-adapter.d.ts +2 -2
  41. package/lib/main/browser/menus/plugin-menu-command-adapter.d.ts.map +1 -1
  42. package/lib/main/browser/menus/plugin-menu-command-adapter.js +6 -2
  43. package/lib/main/browser/menus/plugin-menu-command-adapter.js.map +1 -1
  44. package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts +2 -2
  45. package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts.map +1 -1
  46. package/lib/main/browser/menus/vscode-theia-menu-mappings.js +6 -0
  47. package/lib/main/browser/menus/vscode-theia-menu-mappings.js.map +1 -1
  48. package/lib/main/browser/plugin-contribution-handler.d.ts +6 -0
  49. package/lib/main/browser/plugin-contribution-handler.d.ts.map +1 -1
  50. package/lib/main/browser/plugin-contribution-handler.js +35 -0
  51. package/lib/main/browser/plugin-contribution-handler.js.map +1 -1
  52. package/lib/main/browser/plugin-ext-frontend-module.d.ts.map +1 -1
  53. package/lib/main/browser/plugin-ext-frontend-module.js +8 -3
  54. package/lib/main/browser/plugin-ext-frontend-module.js.map +1 -1
  55. package/lib/main/browser/plugin-terminal-registry.d.ts +5 -0
  56. package/lib/main/browser/plugin-terminal-registry.d.ts.map +1 -0
  57. package/lib/main/browser/plugin-terminal-registry.js +35 -0
  58. package/lib/main/browser/plugin-terminal-registry.js.map +1 -0
  59. package/lib/main/browser/scm-main.d.ts +1 -0
  60. package/lib/main/browser/scm-main.d.ts.map +1 -1
  61. package/lib/main/browser/scm-main.js +7 -0
  62. package/lib/main/browser/scm-main.js.map +1 -1
  63. package/lib/main/browser/terminal-main.d.ts +10 -4
  64. package/lib/main/browser/terminal-main.d.ts.map +1 -1
  65. package/lib/main/browser/terminal-main.js +51 -25
  66. package/lib/main/browser/terminal-main.js.map +1 -1
  67. package/lib/main/browser/view/dnd-file-content-store.d.ts +8 -0
  68. package/lib/main/browser/view/dnd-file-content-store.d.ts.map +1 -0
  69. package/lib/main/browser/view/dnd-file-content-store.js +52 -0
  70. package/lib/main/browser/view/dnd-file-content-store.js.map +1 -0
  71. package/lib/main/browser/view/plugin-view-registry.d.ts.map +1 -1
  72. package/lib/main/browser/view/plugin-view-registry.js +1 -1
  73. package/lib/main/browser/view/plugin-view-registry.js.map +1 -1
  74. package/lib/main/browser/view/tree-view-decorator-service.d.ts +2 -4
  75. package/lib/main/browser/view/tree-view-decorator-service.d.ts.map +1 -1
  76. package/lib/main/browser/view/tree-view-decorator-service.js +1 -2
  77. package/lib/main/browser/view/tree-view-decorator-service.js.map +1 -1
  78. package/lib/main/browser/view/tree-view-widget.d.ts +25 -9
  79. package/lib/main/browser/view/tree-view-widget.d.ts.map +1 -1
  80. package/lib/main/browser/view/tree-view-widget.js +184 -38
  81. package/lib/main/browser/view/tree-view-widget.js.map +1 -1
  82. package/lib/main/browser/view/tree-views-main.d.ts +5 -2
  83. package/lib/main/browser/view/tree-views-main.d.ts.map +1 -1
  84. package/lib/main/browser/view/tree-views-main.js +16 -2
  85. package/lib/main/browser/view/tree-views-main.js.map +1 -1
  86. package/lib/main/browser/webview/webview.d.ts +1 -1
  87. package/lib/main/browser/webview/webview.d.ts.map +1 -1
  88. package/lib/main/browser/webview/webview.js +7 -2
  89. package/lib/main/browser/webview/webview.js.map +1 -1
  90. package/lib/main/node/handlers/plugin-theia-directory-handler.d.ts +1 -1
  91. package/lib/main/node/handlers/plugin-theia-directory-handler.d.ts.map +1 -1
  92. package/lib/plugin/debug/debug-ext.d.ts +3 -0
  93. package/lib/plugin/debug/debug-ext.d.ts.map +1 -1
  94. package/lib/plugin/debug/debug-ext.js +10 -0
  95. package/lib/plugin/debug/debug-ext.js.map +1 -1
  96. package/lib/plugin/languages/code-action.d.ts.map +1 -1
  97. package/lib/plugin/languages/code-action.js +8 -8
  98. package/lib/plugin/languages/code-action.js.map +1 -1
  99. package/lib/plugin/plugin-context.d.ts.map +1 -1
  100. package/lib/plugin/plugin-context.js +8 -0
  101. package/lib/plugin/plugin-context.js.map +1 -1
  102. package/lib/plugin/plugin-manager.d.ts.map +1 -1
  103. package/lib/plugin/plugin-manager.js +1 -0
  104. package/lib/plugin/plugin-manager.js.map +1 -1
  105. package/lib/plugin/preference-registry.d.ts.map +1 -1
  106. package/lib/plugin/preference-registry.js +4 -2
  107. package/lib/plugin/preference-registry.js.map +1 -1
  108. package/lib/plugin/quick-open.d.ts +3 -0
  109. package/lib/plugin/quick-open.d.ts.map +1 -1
  110. package/lib/plugin/quick-open.js +7 -0
  111. package/lib/plugin/quick-open.js.map +1 -1
  112. package/lib/plugin/scm.d.ts +3 -0
  113. package/lib/plugin/scm.d.ts.map +1 -1
  114. package/lib/plugin/scm.js +7 -0
  115. package/lib/plugin/scm.js.map +1 -1
  116. package/lib/plugin/tabs.js +2 -2
  117. package/lib/plugin/tabs.js.map +1 -1
  118. package/lib/plugin/terminal-ext.d.ts +9 -1
  119. package/lib/plugin/terminal-ext.d.ts.map +1 -1
  120. package/lib/plugin/terminal-ext.js +63 -7
  121. package/lib/plugin/terminal-ext.js.map +1 -1
  122. package/lib/plugin/tree/tree-views.d.ts +13 -7
  123. package/lib/plugin/tree/tree-views.d.ts.map +1 -1
  124. package/lib/plugin/tree/tree-views.js +93 -24
  125. package/lib/plugin/tree/tree-views.js.map +1 -1
  126. package/lib/plugin/type-converters.d.ts +4 -0
  127. package/lib/plugin/type-converters.d.ts.map +1 -1
  128. package/lib/plugin/type-converters.js +48 -46
  129. package/lib/plugin/type-converters.js.map +1 -1
  130. package/lib/plugin/type-converters.spec.js +19 -0
  131. package/lib/plugin/type-converters.spec.js.map +1 -1
  132. package/lib/plugin/types-impl.d.ts +61 -6
  133. package/lib/plugin/types-impl.d.ts.map +1 -1
  134. package/lib/plugin/types-impl.js +117 -17
  135. package/lib/plugin/types-impl.js.map +1 -1
  136. package/package.json +26 -26
  137. package/src/common/plugin-api-rpc.ts +36 -18
  138. package/src/common/plugin-protocol.ts +18 -0
  139. package/src/common/rpc-protocol.ts +2 -3
  140. package/src/common/types.ts +4 -4
  141. package/src/hosted/browser/hosted-plugin.ts +4 -0
  142. package/src/hosted/node/hosted-plugin-localization-service.ts +3 -3
  143. package/src/hosted/node/plugin-host.ts +1 -2
  144. package/src/hosted/node/scanners/scanner-theia.ts +15 -1
  145. package/src/main/browser/authentication-main.ts +1 -1
  146. package/src/main/browser/commands.ts +1 -1
  147. package/src/main/browser/debug/debug-main.ts +1 -0
  148. package/src/main/browser/dialogs-main.ts +2 -1
  149. package/src/main/browser/menus/plugin-menu-command-adapter.ts +7 -4
  150. package/src/main/browser/menus/vscode-theia-menu-mappings.ts +6 -0
  151. package/src/main/browser/plugin-contribution-handler.ts +35 -0
  152. package/src/main/browser/plugin-ext-frontend-module.ts +10 -4
  153. package/src/main/browser/plugin-terminal-registry.ts +27 -0
  154. package/src/main/browser/scm-main.ts +10 -0
  155. package/src/main/browser/terminal-main.ts +55 -25
  156. package/src/main/browser/view/dnd-file-content-store.ts +42 -0
  157. package/src/main/browser/view/plugin-view-registry.ts +4 -1
  158. package/src/main/browser/view/tree-view-decorator-service.ts +4 -5
  159. package/src/main/browser/view/tree-view-widget.tsx +189 -35
  160. package/src/main/browser/view/tree-views-main.ts +20 -4
  161. package/src/main/browser/webview/pre/main.js +112 -111
  162. package/src/main/browser/webview/webview.ts +7 -3
  163. package/src/plugin/debug/debug-ext.ts +12 -0
  164. package/src/plugin/languages/code-action.ts +8 -8
  165. package/src/plugin/plugin-context.ts +16 -3
  166. package/src/plugin/plugin-manager.ts +1 -0
  167. package/src/plugin/preference-registry.ts +4 -2
  168. package/src/plugin/quick-open.ts +10 -0
  169. package/src/plugin/scm.ts +11 -0
  170. package/src/plugin/tabs.ts +2 -2
  171. package/src/plugin/terminal-ext.ts +68 -8
  172. package/src/plugin/tree/tree-views.ts +98 -31
  173. package/src/plugin/type-converters.spec.ts +20 -0
  174. package/src/plugin/type-converters.ts +51 -50
  175. package/src/plugin/types-impl.ts +143 -21
@@ -31,6 +31,7 @@ import { SymbolKind } from '../common/plugin-api-rpc-model';
31
31
  import { FileSystemProviderErrorCode, markAsFileSystemProviderError } from '@theia/filesystem/lib/common/files';
32
32
  import * as paths from 'path';
33
33
  import { es5ClassCompat } from '../common/types';
34
+ import { isObject, isStringArray } from '@theia/core/lib/common';
34
35
 
35
36
  /**
36
37
  * This is an implementation of #theia.Uri based on vscode-uri.
@@ -540,14 +541,13 @@ export class Range {
540
541
  return new Range(start, end);
541
542
  }
542
543
 
543
- static isRange(thing: unknown): thing is theia.Range {
544
- if (thing instanceof Range) {
544
+ static isRange(arg: unknown): arg is theia.Range {
545
+ if (arg instanceof Range) {
545
546
  return true;
546
547
  }
547
- const range = thing as theia.Range;
548
- return !!thing && typeof thing === 'object'
549
- && Position.isPosition(range.start)
550
- && Position.isPosition(range.end);
548
+ return isObject<theia.Range>(arg)
549
+ && Position.isPosition(arg.start)
550
+ && Position.isPosition(arg.end);
551
551
  }
552
552
 
553
553
  toJSON(): unknown {
@@ -730,7 +730,7 @@ export class ThemeIcon {
730
730
 
731
731
  export namespace ThemeIcon {
732
732
  export function is(item: unknown): item is ThemeIcon {
733
- return typeof item === 'object' && !!item && 'id' in item;
733
+ return isObject(item) && 'id' in item;
734
734
  }
735
735
  }
736
736
 
@@ -1279,6 +1279,30 @@ export class NotebookRange implements theia.NotebookRange {
1279
1279
 
1280
1280
  }
1281
1281
 
1282
+ export class SnippetTextEdit implements theia.SnippetTextEdit {
1283
+ range: Range;
1284
+ snippet: SnippetString;
1285
+
1286
+ static isSnippetTextEdit(thing: unknown): thing is SnippetTextEdit {
1287
+ return thing instanceof SnippetTextEdit || isObject<SnippetTextEdit>(thing)
1288
+ && Range.isRange((<SnippetTextEdit>thing).range)
1289
+ && SnippetString.isSnippetString((<SnippetTextEdit>thing).snippet);
1290
+ }
1291
+
1292
+ static replace(range: Range, snippet: SnippetString): SnippetTextEdit {
1293
+ return new SnippetTextEdit(range, snippet);
1294
+ }
1295
+
1296
+ static insert(position: Position, snippet: SnippetString): SnippetTextEdit {
1297
+ return SnippetTextEdit.replace(new Range(position, position), snippet);
1298
+ }
1299
+
1300
+ constructor(range: Range, snippet: SnippetString) {
1301
+ this.range = range;
1302
+ this.snippet = snippet;
1303
+ }
1304
+ }
1305
+
1282
1306
  @es5ClassCompat
1283
1307
  export class NotebookEdit implements theia.NotebookEdit {
1284
1308
  range: theia.NotebookRange;
@@ -1623,11 +1647,17 @@ export interface WorkspaceEditMetadata {
1623
1647
  } | {
1624
1648
  light: URI;
1625
1649
  dark: URI;
1626
- };
1650
+ } | ThemeIcon;
1651
+ }
1652
+
1653
+ export const enum FileEditType {
1654
+ File = 1,
1655
+ Text = 2,
1656
+ Snippet = 6,
1627
1657
  }
1628
1658
 
1629
1659
  export interface FileOperation {
1630
- _type: 1;
1660
+ _type: FileEditType.File;
1631
1661
  from: URI | undefined;
1632
1662
  to: URI | undefined;
1633
1663
  options?: FileOperationOptions;
@@ -1635,16 +1665,26 @@ export interface FileOperation {
1635
1665
  }
1636
1666
 
1637
1667
  export interface FileTextEdit {
1638
- _type: 2;
1668
+ _type: FileEditType.Text;
1639
1669
  uri: URI;
1640
1670
  edit: TextEdit;
1641
1671
  metadata?: WorkspaceEditMetadata;
1642
1672
  }
1643
1673
 
1674
+ export interface FileSnippetTextEdit {
1675
+ readonly _type: FileEditType.Snippet;
1676
+ readonly uri: URI;
1677
+ readonly range: Range;
1678
+ readonly edit: SnippetTextEdit;
1679
+ readonly metadata?: theia.WorkspaceEditEntryMetadata;
1680
+ }
1681
+
1682
+ type WorkspaceEditEntry = FileOperation | FileTextEdit | FileSnippetTextEdit | undefined;
1683
+
1644
1684
  @es5ClassCompat
1645
1685
  export class WorkspaceEdit implements theia.WorkspaceEdit {
1646
1686
 
1647
- private _edits = new Array<FileOperation | FileTextEdit | undefined>();
1687
+ private _edits = new Array<WorkspaceEditEntry>();
1648
1688
 
1649
1689
  renameFile(from: theia.Uri, to: theia.Uri, options?: { overwrite?: boolean, ignoreIfExists?: boolean }, metadata?: WorkspaceEditMetadata): void {
1650
1690
  this._edits.push({ _type: 1, from, to, options, metadata });
@@ -1679,21 +1719,41 @@ export class WorkspaceEdit implements theia.WorkspaceEdit {
1679
1719
  return false;
1680
1720
  }
1681
1721
 
1682
- set(uri: URI, edits: TextEdit[]): void {
1722
+ set(uri: URI, edits: ReadonlyArray<TextEdit | SnippetTextEdit>): void;
1723
+ set(uri: URI, edits: ReadonlyArray<[TextEdit | SnippetTextEdit, theia.WorkspaceEditEntryMetadata]>): void;
1724
+
1725
+ set(uri: URI, edits: ReadonlyArray<TextEdit | SnippetTextEdit | [TextEdit | SnippetTextEdit, theia.WorkspaceEditEntryMetadata]>): void {
1683
1726
  if (!edits) {
1684
1727
  // remove all text edits for `uri`
1685
1728
  for (let i = 0; i < this._edits.length; i++) {
1686
1729
  const element = this._edits[i];
1687
- if (element && element._type === 2 && element.uri.toString() === uri.toString()) {
1730
+ if (element &&
1731
+ (element._type === FileEditType.Text || element._type === FileEditType.Snippet) &&
1732
+ element.uri.toString() === uri.toString()) {
1688
1733
  this._edits[i] = undefined;
1689
1734
  }
1690
1735
  }
1691
1736
  this._edits = this._edits.filter(e => !!e);
1692
1737
  } else {
1693
1738
  // append edit to the end
1694
- for (const edit of edits) {
1695
- if (edit) {
1696
- this._edits.push({ _type: 2, uri, edit });
1739
+ for (const editOrTuple of edits) {
1740
+ if (!editOrTuple) {
1741
+ continue;
1742
+ }
1743
+
1744
+ let edit: TextEdit | SnippetTextEdit;
1745
+ let metadata: theia.WorkspaceEditEntryMetadata | undefined;
1746
+ if (Array.isArray(editOrTuple)) {
1747
+ edit = editOrTuple[0];
1748
+ metadata = editOrTuple[1];
1749
+ } else {
1750
+ edit = editOrTuple;
1751
+ }
1752
+
1753
+ if (SnippetTextEdit.isSnippetTextEdit(edit)) {
1754
+ this._edits.push({ _type: FileEditType.Snippet, uri, range: edit.range, edit, metadata });
1755
+ } else {
1756
+ this._edits.push({ _type: FileEditType.Text, uri, edit });
1697
1757
  }
1698
1758
  }
1699
1759
  }
@@ -1715,7 +1775,7 @@ export class WorkspaceEdit implements theia.WorkspaceEdit {
1715
1775
  entries(): [URI, TextEdit[]][] {
1716
1776
  const textEdits = new Map<string, [URI, TextEdit[]]>();
1717
1777
  for (const candidate of this._edits) {
1718
- if (candidate && candidate._type === 2) {
1778
+ if (candidate && candidate._type === FileEditType.Text) {
1719
1779
  let textEdit = textEdits.get(candidate.uri.toString());
1720
1780
  if (!textEdit) {
1721
1781
  textEdit = [candidate.uri, []];
@@ -1729,13 +1789,13 @@ export class WorkspaceEdit implements theia.WorkspaceEdit {
1729
1789
  return result;
1730
1790
  }
1731
1791
 
1732
- _allEntries(): ([URI, TextEdit[], WorkspaceEditMetadata] | [URI, URI, FileOperationOptions, WorkspaceEditMetadata])[] {
1733
- const res: ([URI, TextEdit[], WorkspaceEditMetadata] | [URI, URI, FileOperationOptions, WorkspaceEditMetadata])[] = [];
1792
+ _allEntries(): ([URI, Array<TextEdit | SnippetTextEdit>, theia.WorkspaceEditEntryMetadata] | [URI, URI, FileOperationOptions, WorkspaceEditMetadata])[] {
1793
+ const res: ([URI, Array<TextEdit | SnippetTextEdit>, theia.WorkspaceEditEntryMetadata] | [URI, URI, FileOperationOptions, WorkspaceEditMetadata])[] = [];
1734
1794
  for (const edit of this._edits) {
1735
1795
  if (!edit) {
1736
1796
  continue;
1737
1797
  }
1738
- if (edit._type === 1) {
1798
+ if (edit._type === FileEditType.File) {
1739
1799
  res.push([edit.from!, edit.to!, edit.options!, edit.metadata!]);
1740
1800
  } else {
1741
1801
  res.push([edit.uri, [edit.edit], edit.metadata!]);
@@ -1754,6 +1814,55 @@ export class WorkspaceEdit implements theia.WorkspaceEdit {
1754
1814
  }
1755
1815
  }
1756
1816
 
1817
+ export class DataTransferItem {
1818
+ asString(): Thenable<string> {
1819
+ return Promise.resolve(typeof this.value === 'string' ? this.value : JSON.stringify(this.value));
1820
+ }
1821
+
1822
+ asFile(): theia.DataTransferFile | undefined {
1823
+ return undefined;
1824
+ }
1825
+
1826
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1827
+ constructor(readonly value: any) {
1828
+ }
1829
+ }
1830
+
1831
+ /**
1832
+ * A map containing a mapping of the mime type of the corresponding transferred data.
1833
+ *
1834
+ * Drag and drop controllers that implement {@link TreeDragAndDropController.handleDrag `handleDrag`} can add additional mime types to the
1835
+ * data transfer. These additional mime types will only be included in the `handleDrop` when the the drag was initiated from
1836
+ * an element in the same drag and drop controller.
1837
+ */
1838
+ @es5ClassCompat
1839
+ export class DataTransfer implements Iterable<[mimeType: string, item: DataTransferItem]> {
1840
+ private items = new Map<string, DataTransferItem>();
1841
+ get(mimeType: string): DataTransferItem | undefined {
1842
+ return this.items.get(mimeType);
1843
+ }
1844
+ set(mimeType: string, value: DataTransferItem): void {
1845
+ this.items.set(mimeType, value);
1846
+ }
1847
+
1848
+ has(mimeType: string): boolean {
1849
+ return this.items.has(mimeType);
1850
+ }
1851
+
1852
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1853
+ forEach(callbackfn: (item: DataTransferItem, mimeType: string, dataTransfer: DataTransfer) => void, thisArg?: any): void {
1854
+ this.items.forEach((item, mimetype) => {
1855
+ callbackfn.call(thisArg, item, mimetype, this);
1856
+ });
1857
+ }
1858
+ [Symbol.iterator](): IterableIterator<[mimeType: string, item: DataTransferItem]> {
1859
+ return this.items[Symbol.iterator]();
1860
+ }
1861
+
1862
+ clear(): void {
1863
+ this.items.clear();
1864
+ }
1865
+ }
1757
1866
  @es5ClassCompat
1758
1867
  export class TreeItem {
1759
1868
 
@@ -1910,6 +2019,19 @@ export class TerminalLink {
1910
2019
  }
1911
2020
  }
1912
2021
 
2022
+ export enum TerminalLocation {
2023
+ Panel = 1,
2024
+ Editor = 2
2025
+ }
2026
+ export class TerminalProfile {
2027
+ /**
2028
+ * Creates a new terminal profile.
2029
+ * @param options The options that the terminal will launch with.
2030
+ */
2031
+ constructor(readonly options: theia.TerminalOptions | theia.ExtensionTerminalOptions) {
2032
+ }
2033
+ }
2034
+
1913
2035
  @es5ClassCompat
1914
2036
  export class FileDecoration {
1915
2037
 
@@ -3016,7 +3138,7 @@ export class SemanticTokensLegend {
3016
3138
  }
3017
3139
 
3018
3140
  function isStrArrayOrUndefined(arg: unknown): arg is string[] | undefined {
3019
- return ((typeof arg === 'undefined') || (Array.isArray(arg) && arg.every(e => typeof e === 'string')));
3141
+ return typeof arg === 'undefined' || isStringArray(arg);
3020
3142
  }
3021
3143
 
3022
3144
  @es5ClassCompat