@theia/plugin-ext 1.34.3 → 1.34.4

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 (839) hide show
  1. package/LICENSE +641 -641
  2. package/README.md +54 -54
  3. package/lib/common/arrays.d.ts +19 -19
  4. package/lib/common/arrays.js +46 -46
  5. package/lib/common/assert.d.ts +1 -1
  6. package/lib/common/assert.js +25 -25
  7. package/lib/common/cache.d.ts +11 -11
  8. package/lib/common/cache.js +47 -47
  9. package/lib/common/character-classifier.d.ts +18 -18
  10. package/lib/common/character-classifier.js +60 -60
  11. package/lib/common/collections.d.ts +4 -4
  12. package/lib/common/collections.js +39 -39
  13. package/lib/common/connection.d.ts +54 -54
  14. package/lib/common/connection.js +107 -107
  15. package/lib/common/disposable-util.d.ts +6 -6
  16. package/lib/common/disposable-util.js +37 -37
  17. package/lib/common/editor-options.d.ts +30 -30
  18. package/lib/common/editor-options.js +72 -72
  19. package/lib/common/env.d.ts +3 -3
  20. package/lib/common/env.js +17 -17
  21. package/lib/common/errors.d.ts +3 -3
  22. package/lib/common/errors.js +42 -42
  23. package/lib/common/id-generator.d.ts +6 -6
  24. package/lib/common/id-generator.js +28 -28
  25. package/lib/common/index.d.ts +3 -3
  26. package/lib/common/index.js +33 -33
  27. package/lib/common/link-computer.d.ts +41 -41
  28. package/lib/common/link-computer.js +275 -275
  29. package/lib/common/object-identifier.d.ts +8 -8
  30. package/lib/common/object-identifier.js +32 -32
  31. package/lib/common/objects.d.ts +1 -1
  32. package/lib/common/objects.js +46 -46
  33. package/lib/common/paths-util.d.ts +3 -3
  34. package/lib/common/paths-util.js +144 -144
  35. package/lib/common/plugin-api-rpc-model.d.ts +728 -728
  36. package/lib/common/plugin-api-rpc-model.js +173 -173
  37. package/lib/common/plugin-api-rpc.d.ts +1710 -1710
  38. package/lib/common/plugin-api-rpc.js +279 -279
  39. package/lib/common/plugin-ext-api-contribution.d.ts +58 -58
  40. package/lib/common/plugin-ext-api-contribution.js +5 -5
  41. package/lib/common/plugin-identifiers.d.ts +40 -40
  42. package/lib/common/plugin-identifiers.js +80 -80
  43. package/lib/common/plugin-protocol.d.ts +840 -840
  44. package/lib/common/plugin-protocol.js +67 -67
  45. package/lib/common/proxy-handler.d.ts +65 -65
  46. package/lib/common/proxy-handler.js +97 -97
  47. package/lib/common/reference-map.d.ts +7 -7
  48. package/lib/common/reference-map.js +39 -39
  49. package/lib/common/rpc-protocol.d.ts +65 -65
  50. package/lib/common/rpc-protocol.js +229 -229
  51. package/lib/common/semantic-tokens-dto.d.ts +18 -18
  52. package/lib/common/semantic-tokens-dto.js +162 -162
  53. package/lib/common/types.d.ts +37 -37
  54. package/lib/common/types.js +121 -121
  55. package/lib/common/uint.d.ts +7 -7
  56. package/lib/common/uint.js +33 -33
  57. package/lib/common/uri-components.d.ts +39 -39
  58. package/lib/common/uri-components.js +66 -66
  59. package/lib/hosted/browser/hosted-plugin-watcher.d.ts +15 -15
  60. package/lib/hosted/browser/hosted-plugin-watcher.js +59 -59
  61. package/lib/hosted/browser/hosted-plugin.d.ts +145 -145
  62. package/lib/hosted/browser/hosted-plugin.js +787 -787
  63. package/lib/hosted/browser/plugin-worker.d.ts +6 -6
  64. package/lib/hosted/browser/plugin-worker.js +57 -57
  65. package/lib/hosted/browser/worker/debug-stub.d.ts +3 -3
  66. package/lib/hosted/browser/worker/debug-stub.js +29 -29
  67. package/lib/hosted/browser/worker/plugin-manifest-loader.d.ts +2 -2
  68. package/lib/hosted/browser/worker/plugin-manifest-loader.js +107 -107
  69. package/lib/hosted/browser/worker/worker-env-ext.d.ts +14 -14
  70. package/lib/hosted/browser/worker/worker-env-ext.js +38 -38
  71. package/lib/hosted/browser/worker/worker-main.d.ts +1 -1
  72. package/lib/hosted/browser/worker/worker-main.js +192 -192
  73. package/lib/hosted/node/hosted-plugin-cli-contribution.d.ts +16 -16
  74. package/lib/hosted/node/hosted-plugin-cli-contribution.js +76 -76
  75. package/lib/hosted/node/hosted-plugin-deployer-handler.d.ts +42 -42
  76. package/lib/hosted/node/hosted-plugin-deployer-handler.js +264 -264
  77. package/lib/hosted/node/hosted-plugin-localization-service.d.ts +34 -34
  78. package/lib/hosted/node/hosted-plugin-localization-service.js +239 -239
  79. package/lib/hosted/node/hosted-plugin-process.d.ts +47 -47
  80. package/lib/hosted/node/hosted-plugin-process.js +224 -224
  81. package/lib/hosted/node/hosted-plugin-protocol.d.ts +21 -21
  82. package/lib/hosted/node/hosted-plugin-protocol.js +36 -36
  83. package/lib/hosted/node/hosted-plugin.d.ts +36 -36
  84. package/lib/hosted/node/hosted-plugin.js +118 -118
  85. package/lib/hosted/node/metadata-scanner.d.ts +17 -17
  86. package/lib/hosted/node/metadata-scanner.js +82 -82
  87. package/lib/hosted/node/plugin-ext-hosted-backend-module.d.ts +3 -3
  88. package/lib/hosted/node/plugin-ext-hosted-backend-module.js +73 -73
  89. package/lib/hosted/node/plugin-host-proxy.d.ts +17 -17
  90. package/lib/hosted/node/plugin-host-proxy.js +69 -69
  91. package/lib/hosted/node/plugin-host-rpc.d.ts +21 -21
  92. package/lib/hosted/node/plugin-host-rpc.js +216 -216
  93. package/lib/hosted/node/plugin-host.d.ts +1 -1
  94. package/lib/hosted/node/plugin-host.js +101 -101
  95. package/lib/hosted/node/plugin-manifest-loader.d.ts +1 -1
  96. package/lib/hosted/node/plugin-manifest-loader.js +34 -34
  97. package/lib/hosted/node/plugin-reader.d.ts +25 -25
  98. package/lib/hosted/node/plugin-reader.js +141 -141
  99. package/lib/hosted/node/plugin-service.d.ts +39 -39
  100. package/lib/hosted/node/plugin-service.js +193 -193
  101. package/lib/hosted/node/scanners/backend-init-theia.d.ts +2 -2
  102. package/lib/hosted/node/scanners/backend-init-theia.js +60 -60
  103. package/lib/hosted/node/scanners/file-plugin-uri-factory.d.ts +10 -10
  104. package/lib/hosted/node/scanners/file-plugin-uri-factory.js +40 -40
  105. package/lib/hosted/node/scanners/grammars-reader.d.ts +5 -5
  106. package/lib/hosted/node/scanners/grammars-reader.js +63 -63
  107. package/lib/hosted/node/scanners/plugin-uri-factory.d.ts +16 -16
  108. package/lib/hosted/node/scanners/plugin-uri-factory.js +19 -19
  109. package/lib/hosted/node/scanners/scanner-theia.d.ts +56 -56
  110. package/lib/hosted/node/scanners/scanner-theia.js +842 -842
  111. package/lib/hosted/node-electron/plugin-ext-hosted-electron-backend-module.d.ts +2 -2
  112. package/lib/hosted/node-electron/plugin-ext-hosted-electron-backend-module.js +26 -26
  113. package/lib/hosted/node-electron/scanner-theia-electron.d.ts +5 -5
  114. package/lib/hosted/node-electron/scanner-theia-electron.js +40 -40
  115. package/lib/main/browser/authentication-main.d.ts +51 -51
  116. package/lib/main/browser/authentication-main.js +299 -299
  117. package/lib/main/browser/clipboard-main.d.ts +9 -9
  118. package/lib/main/browser/clipboard-main.js +32 -32
  119. package/lib/main/browser/command-registry-main.d.ts +23 -23
  120. package/lib/main/browser/command-registry-main.js +97 -97
  121. package/lib/main/browser/commands.d.ts +12 -12
  122. package/lib/main/browser/commands.js +102 -102
  123. package/lib/main/browser/comments/comment-glyph-widget.d.ts +12 -12
  124. package/lib/main/browser/comments/comment-glyph-widget.js +42 -42
  125. package/lib/main/browser/comments/comment-thread-widget.d.ts +153 -153
  126. package/lib/main/browser/comments/comment-thread-widget.js +466 -466
  127. package/lib/main/browser/comments/comments-context-key-service.d.ts +17 -17
  128. package/lib/main/browser/comments/comments-context-key-service.js +80 -80
  129. package/lib/main/browser/comments/comments-contribution.d.ts +31 -31
  130. package/lib/main/browser/comments/comments-contribution.js +264 -264
  131. package/lib/main/browser/comments/comments-decorator.d.ts +15 -15
  132. package/lib/main/browser/comments/comments-decorator.js +107 -107
  133. package/lib/main/browser/comments/comments-main.d.ts +106 -106
  134. package/lib/main/browser/comments/comments-main.js +341 -341
  135. package/lib/main/browser/comments/comments-service.d.ts +75 -75
  136. package/lib/main/browser/comments/comments-service.js +120 -120
  137. package/lib/main/browser/custom-editors/custom-editor-contribution.d.ts +6 -6
  138. package/lib/main/browser/custom-editors/custom-editor-contribution.js +50 -50
  139. package/lib/main/browser/custom-editors/custom-editor-opener.d.ts +21 -21
  140. package/lib/main/browser/custom-editors/custom-editor-opener.js +111 -111
  141. package/lib/main/browser/custom-editors/custom-editor-service.d.ts +16 -16
  142. package/lib/main/browser/custom-editors/custom-editor-service.js +102 -102
  143. package/lib/main/browser/custom-editors/custom-editor-widget-factory.d.ts +9 -9
  144. package/lib/main/browser/custom-editors/custom-editor-widget-factory.js +39 -39
  145. package/lib/main/browser/custom-editors/custom-editor-widget.d.ts +36 -36
  146. package/lib/main/browser/custom-editors/custom-editor-widget.js +115 -115
  147. package/lib/main/browser/custom-editors/custom-editors-main.d.ts +120 -120
  148. package/lib/main/browser/custom-editors/custom-editors-main.js +447 -447
  149. package/lib/main/browser/custom-editors/plugin-custom-editor-registry.d.ts +23 -23
  150. package/lib/main/browser/custom-editors/plugin-custom-editor-registry.js +142 -142
  151. package/lib/main/browser/custom-editors/undo-redo-service.d.ts +23 -23
  152. package/lib/main/browser/custom-editors/undo-redo-service.js +110 -110
  153. package/lib/main/browser/debug/debug-main.d.ts +48 -48
  154. package/lib/main/browser/debug/debug-main.js +295 -295
  155. package/lib/main/browser/debug/plugin-debug-adapter-contribution.d.ts +18 -18
  156. package/lib/main/browser/debug/plugin-debug-adapter-contribution.js +42 -42
  157. package/lib/main/browser/debug/plugin-debug-configuration-provider.d.ts +12 -12
  158. package/lib/main/browser/debug/plugin-debug-configuration-provider.js +38 -38
  159. package/lib/main/browser/debug/plugin-debug-service.d.ts +52 -52
  160. package/lib/main/browser/debug/plugin-debug-service.js +283 -283
  161. package/lib/main/browser/debug/plugin-debug-session-contribution-registry.d.ts +30 -30
  162. package/lib/main/browser/debug/plugin-debug-session-contribution-registry.js +75 -75
  163. package/lib/main/browser/debug/plugin-debug-session-factory.d.ts +55 -55
  164. package/lib/main/browser/debug/plugin-debug-session-factory.js +70 -70
  165. package/lib/main/browser/decorations/decorations-main.d.ts +15 -15
  166. package/lib/main/browser/decorations/decorations-main.js +119 -119
  167. package/lib/main/browser/dialogs/modal-notification.d.ts +18 -18
  168. package/lib/main/browser/dialogs/modal-notification.js +107 -107
  169. package/lib/main/browser/dialogs-main.d.ts +16 -16
  170. package/lib/main/browser/dialogs-main.js +162 -162
  171. package/lib/main/browser/documents-main.d.ts +50 -50
  172. package/lib/main/browser/documents-main.js +249 -249
  173. package/lib/main/browser/editors-and-documents-main.d.ts +32 -32
  174. package/lib/main/browser/editors-and-documents-main.js +301 -301
  175. package/lib/main/browser/env-main.d.ts +15 -15
  176. package/lib/main/browser/env-main.js +82 -82
  177. package/lib/main/browser/file-system-main-impl.d.ts +27 -27
  178. package/lib/main/browser/file-system-main-impl.js +199 -199
  179. package/lib/main/browser/hierarchy/hierarchy-types-converters.d.ts +24 -24
  180. package/lib/main/browser/hierarchy/hierarchy-types-converters.js +174 -174
  181. package/lib/main/browser/keybindings/keybindings-contribution-handler.d.ts +9 -9
  182. package/lib/main/browser/keybindings/keybindings-contribution-handler.js +77 -77
  183. package/lib/main/browser/label-service-main.d.ts +10 -10
  184. package/lib/main/browser/label-service-main.js +46 -46
  185. package/lib/main/browser/languages-main.d.ts +136 -136
  186. package/lib/main/browser/languages-main.js +1116 -1116
  187. package/lib/main/browser/main-context.d.ts +3 -3
  188. package/lib/main/browser/main-context.js +137 -137
  189. package/lib/main/browser/main-file-system-event-service.d.ts +7 -7
  190. package/lib/main/browser/main-file-system-event-service.js +65 -65
  191. package/lib/main/browser/menus/menus-contribution-handler.d.ts +29 -29
  192. package/lib/main/browser/menus/menus-contribution-handler.js +194 -194
  193. package/lib/main/browser/menus/plugin-menu-command-adapter.d.ts +43 -43
  194. package/lib/main/browser/menus/plugin-menu-command-adapter.js +279 -279
  195. package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts +17 -17
  196. package/lib/main/browser/menus/vscode-theia-menu-mappings.js +93 -93
  197. package/lib/main/browser/message-registry-main.d.ts +8 -8
  198. package/lib/main/browser/message-registry-main.js +52 -52
  199. package/lib/main/browser/notification-main.d.ts +18 -18
  200. package/lib/main/browser/notification-main.js +75 -75
  201. package/lib/main/browser/output-channel-registry-main.d.ts +10 -10
  202. package/lib/main/browser/output-channel-registry-main.js +60 -60
  203. package/lib/main/browser/plugin-authentication-service.d.ts +13 -13
  204. package/lib/main/browser/plugin-authentication-service.js +80 -80
  205. package/lib/main/browser/plugin-contribution-handler.d.ts +66 -66
  206. package/lib/main/browser/plugin-contribution-handler.js +580 -580
  207. package/lib/main/browser/plugin-ext-frontend-module.d.ts +7 -7
  208. package/lib/main/browser/plugin-ext-frontend-module.js +216 -216
  209. package/lib/main/browser/plugin-ext-widget.d.ts +28 -28
  210. package/lib/main/browser/plugin-ext-widget.js +129 -129
  211. package/lib/main/browser/plugin-frontend-contribution.d.ts +6 -6
  212. package/lib/main/browser/plugin-frontend-contribution.js +45 -45
  213. package/lib/main/browser/plugin-frontend-view-contribution.d.ts +6 -6
  214. package/lib/main/browser/plugin-frontend-view-contribution.js +50 -50
  215. package/lib/main/browser/plugin-icon-theme-service.d.ts +135 -135
  216. package/lib/main/browser/plugin-icon-theme-service.js +519 -519
  217. package/lib/main/browser/plugin-shared-style.d.ts +36 -36
  218. package/lib/main/browser/plugin-shared-style.js +126 -126
  219. package/lib/main/browser/plugin-storage.d.ts +13 -13
  220. package/lib/main/browser/plugin-storage.js +46 -46
  221. package/lib/main/browser/plugin-terminal-registry.d.ts +4 -4
  222. package/lib/main/browser/plugin-terminal-registry.js +34 -34
  223. package/lib/main/browser/preference-registry-main.d.ts +19 -19
  224. package/lib/main/browser/preference-registry-main.js +104 -104
  225. package/lib/main/browser/quick-open-main.d.ts +31 -31
  226. package/lib/main/browser/quick-open-main.js +274 -274
  227. package/lib/main/browser/scm-main.d.ts +100 -100
  228. package/lib/main/browser/scm-main.js +330 -330
  229. package/lib/main/browser/secrets-main.d.ts +12 -12
  230. package/lib/main/browser/secrets-main.js +67 -67
  231. package/lib/main/browser/selection-provider-command.d.ts +12 -12
  232. package/lib/main/browser/selection-provider-command.js +57 -57
  233. package/lib/main/browser/status-bar-message-registry-main.d.ts +16 -16
  234. package/lib/main/browser/status-bar-message-registry-main.js +55 -55
  235. package/lib/main/browser/tabs/tabs-main.d.ts +40 -40
  236. package/lib/main/browser/tabs/tabs-main.js +282 -282
  237. package/lib/main/browser/tasks-main.d.ts +33 -33
  238. package/lib/main/browser/tasks-main.js +205 -205
  239. package/lib/main/browser/terminal-main.d.ts +49 -49
  240. package/lib/main/browser/terminal-main.js +268 -268
  241. package/lib/main/browser/text-editor-main.d.ts +47 -47
  242. package/lib/main/browser/text-editor-main.js +374 -374
  243. package/lib/main/browser/text-editor-model-service.d.ts +28 -28
  244. package/lib/main/browser/text-editor-model-service.js +108 -108
  245. package/lib/main/browser/text-editors-main.d.ts +38 -38
  246. package/lib/main/browser/text-editors-main.js +158 -158
  247. package/lib/main/browser/theme-icon-override.d.ts +1 -1
  248. package/lib/main/browser/theme-icon-override.js +247 -247
  249. package/lib/main/browser/theming-main.d.ts +9 -9
  250. package/lib/main/browser/theming-main.js +35 -35
  251. package/lib/main/browser/timeline-main.d.ts +13 -13
  252. package/lib/main/browser/timeline-main.js +46 -46
  253. package/lib/main/browser/view/dnd-file-content-store.d.ts +7 -7
  254. package/lib/main/browser/view/dnd-file-content-store.js +51 -51
  255. package/lib/main/browser/view/plugin-tree-view-node-label-provider.d.ts +11 -11
  256. package/lib/main/browser/view/plugin-tree-view-node-label-provider.js +90 -90
  257. package/lib/main/browser/view/plugin-view-registry.d.ts +106 -106
  258. package/lib/main/browser/view/plugin-view-registry.js +836 -836
  259. package/lib/main/browser/view/plugin-view-widget.d.ts +50 -50
  260. package/lib/main/browser/view/plugin-view-widget.js +166 -166
  261. package/lib/main/browser/view/tree-view-decorator-service.d.ts +30 -30
  262. package/lib/main/browser/view/tree-view-decorator-service.js +68 -68
  263. package/lib/main/browser/view/tree-view-widget.d.ts +160 -160
  264. package/lib/main/browser/view/tree-view-widget.js +761 -761
  265. package/lib/main/browser/view/tree-views-main.d.ts +31 -31
  266. package/lib/main/browser/view/tree-views-main.js +163 -163
  267. package/lib/main/browser/view/view-context-key-service.d.ts +30 -30
  268. package/lib/main/browser/view/view-context-key-service.js +84 -84
  269. package/lib/main/browser/view-column-service.d.ts +23 -23
  270. package/lib/main/browser/view-column-service.js +129 -129
  271. package/lib/main/browser/webview/webview-environment.d.ts +15 -15
  272. package/lib/main/browser/webview/webview-environment.js +93 -93
  273. package/lib/main/browser/webview/webview-frontend-security-warnings.d.ts +11 -11
  274. package/lib/main/browser/webview/webview-frontend-security-warnings.js +73 -73
  275. package/lib/main/browser/webview/webview-preferences.d.ts +12 -12
  276. package/lib/main/browser/webview/webview-preferences.js +57 -57
  277. package/lib/main/browser/webview/webview-resource-cache.d.ts +17 -17
  278. package/lib/main/browser/webview/webview-resource-cache.js +90 -90
  279. package/lib/main/browser/webview/webview-theme-data-provider.d.ts +30 -30
  280. package/lib/main/browser/webview/webview-theme-data-provider.js +132 -132
  281. package/lib/main/browser/webview/webview-widget-factory.d.ts +8 -8
  282. package/lib/main/browser/webview/webview-widget-factory.js +38 -38
  283. package/lib/main/browser/webview/webview.d.ts +130 -130
  284. package/lib/main/browser/webview/webview.js +549 -549
  285. package/lib/main/browser/webview-views/webview-views-main.d.ts +30 -30
  286. package/lib/main/browser/webview-views/webview-views-main.js +126 -126
  287. package/lib/main/browser/webview-views/webview-views.d.ts +14 -14
  288. package/lib/main/browser/webview-views/webview-views.js +22 -22
  289. package/lib/main/browser/webviews-main.d.ts +39 -39
  290. package/lib/main/browser/webviews-main.js +231 -231
  291. package/lib/main/browser/window-state-main.d.ts +16 -16
  292. package/lib/main/browser/window-state-main.js +61 -61
  293. package/lib/main/browser/workspace-main.d.ts +69 -69
  294. package/lib/main/browser/workspace-main.js +316 -316
  295. package/lib/main/common/plugin-paths-protocol.d.ts +8 -8
  296. package/lib/main/common/plugin-paths-protocol.js +21 -21
  297. package/lib/main/common/plugin-theia-environment.d.ts +7 -7
  298. package/lib/main/common/plugin-theia-environment.js +47 -47
  299. package/lib/main/common/webview-protocol.d.ts +12 -12
  300. package/lib/main/common/webview-protocol.js +31 -31
  301. package/lib/main/electron-browser/plugin-ext-frontend-electron-module.d.ts +3 -3
  302. package/lib/main/electron-browser/plugin-ext-frontend-electron-module.js +25 -25
  303. package/lib/main/electron-browser/webview/electron-webview-widget-factory.d.ts +22 -22
  304. package/lib/main/electron-browser/webview/electron-webview-widget-factory.js +64 -64
  305. package/lib/main/node/handlers/plugin-theia-directory-handler.d.ts +10 -10
  306. package/lib/main/node/handlers/plugin-theia-directory-handler.js +113 -113
  307. package/lib/main/node/handlers/plugin-theia-file-handler.d.ts +9 -9
  308. package/lib/main/node/handlers/plugin-theia-file-handler.js +66 -66
  309. package/lib/main/node/paths/const.d.ts +5 -5
  310. package/lib/main/node/paths/const.js +24 -24
  311. package/lib/main/node/paths/plugin-paths-service.d.ts +23 -23
  312. package/lib/main/node/paths/plugin-paths-service.js +169 -169
  313. package/lib/main/node/plugin-cli-contribution.d.ts +21 -21
  314. package/lib/main/node/plugin-cli-contribution.js +84 -84
  315. package/lib/main/node/plugin-deployer-contribution.d.ts +8 -8
  316. package/lib/main/node/plugin-deployer-contribution.js +47 -47
  317. package/lib/main/node/plugin-deployer-directory-handler-context-impl.d.ts +7 -7
  318. package/lib/main/node/plugin-deployer-directory-handler-context-impl.js +44 -44
  319. package/lib/main/node/plugin-deployer-entry-impl.d.ts +34 -34
  320. package/lib/main/node/plugin-deployer-entry-impl.js +109 -109
  321. package/lib/main/node/plugin-deployer-file-handler-context-impl.d.ts +7 -7
  322. package/lib/main/node/plugin-deployer-file-handler-context-impl.js +31 -31
  323. package/lib/main/node/plugin-deployer-impl.d.ts +61 -61
  324. package/lib/main/node/plugin-deployer-impl.js +341 -341
  325. package/lib/main/node/plugin-deployer-proxy-entry-impl.d.ts +29 -29
  326. package/lib/main/node/plugin-deployer-proxy-entry-impl.js +98 -98
  327. package/lib/main/node/plugin-deployer-resolver-context-impl.d.ts +15 -15
  328. package/lib/main/node/plugin-deployer-resolver-context-impl.js +42 -42
  329. package/lib/main/node/plugin-ext-backend-module.d.ts +2 -2
  330. package/lib/main/node/plugin-ext-backend-module.js +70 -70
  331. package/lib/main/node/plugin-github-resolver.d.ts +21 -21
  332. package/lib/main/node/plugin-github-resolver.js +142 -142
  333. package/lib/main/node/plugin-http-resolver.d.ts +18 -18
  334. package/lib/main/node/plugin-http-resolver.js +91 -91
  335. package/lib/main/node/plugin-localization-backend-contribution.d.ts +9 -9
  336. package/lib/main/node/plugin-localization-backend-contribution.js +58 -58
  337. package/lib/main/node/plugin-server-handler.d.ts +16 -16
  338. package/lib/main/node/plugin-server-handler.js +74 -74
  339. package/lib/main/node/plugin-service.d.ts +19 -19
  340. package/lib/main/node/plugin-service.js +91 -91
  341. package/lib/main/node/plugin-theia-deployer-participant.d.ts +6 -6
  342. package/lib/main/node/plugin-theia-deployer-participant.js +43 -43
  343. package/lib/main/node/plugin-uninstallation-manager.d.ts +14 -14
  344. package/lib/main/node/plugin-uninstallation-manager.js +84 -84
  345. package/lib/main/node/plugins-key-value-storage.d.ts +15 -15
  346. package/lib/main/node/plugins-key-value-storage.js +128 -128
  347. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.d.ts +7 -7
  348. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js +43 -43
  349. package/lib/main/node/resolvers/local-plugin-deployer-resolver.d.ts +8 -8
  350. package/lib/main/node/resolvers/local-plugin-deployer-resolver.js +59 -59
  351. package/lib/main/node/temp-dir-util.d.ts +1 -1
  352. package/lib/main/node/temp-dir-util.js +30 -30
  353. package/lib/main/node/webview-backend-security-warnings.d.ts +5 -5
  354. package/lib/main/node/webview-backend-security-warnings.js +51 -51
  355. package/lib/plugin/authentication-ext.d.ts +34 -34
  356. package/lib/plugin/authentication-ext.js +94 -94
  357. package/lib/plugin/clipboard-ext.d.ts +9 -9
  358. package/lib/plugin/clipboard-ext.js +31 -31
  359. package/lib/plugin/command-registry.d.ts +43 -43
  360. package/lib/plugin/command-registry.js +176 -176
  361. package/lib/plugin/comments.d.ts +89 -89
  362. package/lib/plugin/comments.js +368 -368
  363. package/lib/plugin/custom-editors.d.ts +47 -47
  364. package/lib/plugin/custom-editors.js +255 -255
  365. package/lib/plugin/debug/debug-ext.d.ts +86 -86
  366. package/lib/plugin/debug/debug-ext.js +391 -391
  367. package/lib/plugin/debug/plugin-debug-adapter-creator.d.ts +10 -10
  368. package/lib/plugin/debug/plugin-debug-adapter-creator.js +41 -41
  369. package/lib/plugin/debug/plugin-debug-adapter-session.d.ts +26 -26
  370. package/lib/plugin/debug/plugin-debug-adapter-session.js +96 -96
  371. package/lib/plugin/debug/plugin-debug-adapter-tracker.d.ts +12 -12
  372. package/lib/plugin/debug/plugin-debug-adapter-tracker.js +77 -77
  373. package/lib/plugin/decorations.d.ts +14 -14
  374. package/lib/plugin/decorations.js +112 -112
  375. package/lib/plugin/dialogs.d.ts +10 -10
  376. package/lib/plugin/dialogs.js +91 -91
  377. package/lib/plugin/document-data.d.ts +38 -38
  378. package/lib/plugin/document-data.js +309 -309
  379. package/lib/plugin/documents.d.ts +56 -56
  380. package/lib/plugin/documents.js +253 -253
  381. package/lib/plugin/editors-and-documents.d.ts +26 -26
  382. package/lib/plugin/editors-and-documents.js +137 -137
  383. package/lib/plugin/env.d.ts +42 -42
  384. package/lib/plugin/env.js +101 -101
  385. package/lib/plugin/file-system-event-service-ext-impl.d.ts +40 -40
  386. package/lib/plugin/file-system-event-service-ext-impl.js +203 -203
  387. package/lib/plugin/file-system-ext-impl.d.ts +50 -50
  388. package/lib/plugin/file-system-ext-impl.js +354 -354
  389. package/lib/plugin/known-commands.d.ts +5 -5
  390. package/lib/plugin/known-commands.js +386 -386
  391. package/lib/plugin/known-commands.spec.d.ts +1 -1
  392. package/lib/plugin/known-commands.spec.js +42 -42
  393. package/lib/plugin/label-service.d.ts +11 -11
  394. package/lib/plugin/label-service.js +35 -35
  395. package/lib/plugin/languages/call-hierarchy.d.ts +20 -20
  396. package/lib/plugin/languages/call-hierarchy.js +101 -101
  397. package/lib/plugin/languages/code-action.d.ts +24 -24
  398. package/lib/plugin/languages/code-action.js +137 -137
  399. package/lib/plugin/languages/color.d.ts +12 -12
  400. package/lib/plugin/languages/color.js +58 -58
  401. package/lib/plugin/languages/completion.d.ts +20 -20
  402. package/lib/plugin/languages/completion.js +161 -161
  403. package/lib/plugin/languages/declaration.d.ts +11 -11
  404. package/lib/plugin/languages/declaration.js +58 -58
  405. package/lib/plugin/languages/definition.d.ts +11 -11
  406. package/lib/plugin/languages/definition.js +58 -58
  407. package/lib/plugin/languages/diagnostics.d.ts +49 -49
  408. package/lib/plugin/languages/diagnostics.js +281 -281
  409. package/lib/plugin/languages/document-formatting.d.ts +10 -10
  410. package/lib/plugin/languages/document-formatting.js +40 -40
  411. package/lib/plugin/languages/document-highlight.d.ts +12 -12
  412. package/lib/plugin/languages/document-highlight.js +50 -50
  413. package/lib/plugin/languages/evaluatable-expression.d.ts +11 -11
  414. package/lib/plugin/languages/evaluatable-expression.js +40 -40
  415. package/lib/plugin/languages/folding.d.ts +10 -10
  416. package/lib/plugin/languages/folding.js +39 -39
  417. package/lib/plugin/languages/hover.d.ts +11 -11
  418. package/lib/plugin/languages/hover.js +48 -48
  419. package/lib/plugin/languages/implementation.d.ts +11 -11
  420. package/lib/plugin/languages/implementation.js +58 -58
  421. package/lib/plugin/languages/inlay-hints.d.ts +19 -19
  422. package/lib/plugin/languages/inlay-hints.js +127 -127
  423. package/lib/plugin/languages/inline-completion.d.ts +20 -20
  424. package/lib/plugin/languages/inline-completion.js +93 -93
  425. package/lib/plugin/languages/inline-values.d.ts +10 -10
  426. package/lib/plugin/languages/inline-values.js +44 -44
  427. package/lib/plugin/languages/lens.d.ts +19 -19
  428. package/lib/plugin/languages/lens.js +89 -89
  429. package/lib/plugin/languages/link-provider.d.ts +14 -14
  430. package/lib/plugin/languages/link-provider.js +71 -71
  431. package/lib/plugin/languages/linked-editing-range.d.ts +11 -11
  432. package/lib/plugin/languages/linked-editing-range.js +40 -40
  433. package/lib/plugin/languages/on-type-formatting.d.ts +11 -11
  434. package/lib/plugin/languages/on-type-formatting.js +41 -41
  435. package/lib/plugin/languages/outline.d.ts +20 -20
  436. package/lib/plugin/languages/outline.js +115 -115
  437. package/lib/plugin/languages/range-formatting.d.ts +10 -10
  438. package/lib/plugin/languages/range-formatting.js +41 -41
  439. package/lib/plugin/languages/reference.d.ts +11 -11
  440. package/lib/plugin/languages/reference.js +47 -47
  441. package/lib/plugin/languages/rename.d.ts +14 -14
  442. package/lib/plugin/languages/rename.js +114 -114
  443. package/lib/plugin/languages/selection-range.d.ts +11 -11
  444. package/lib/plugin/languages/selection-range.js +65 -65
  445. package/lib/plugin/languages/semantic-highlighting.d.ts +28 -28
  446. package/lib/plugin/languages/semantic-highlighting.js +175 -175
  447. package/lib/plugin/languages/signature.d.ts +15 -15
  448. package/lib/plugin/languages/signature.js +71 -71
  449. package/lib/plugin/languages/type-definition.d.ts +11 -11
  450. package/lib/plugin/languages/type-definition.js +58 -58
  451. package/lib/plugin/languages/type-hierarchy.d.ts +18 -18
  452. package/lib/plugin/languages/type-hierarchy.js +95 -95
  453. package/lib/plugin/languages/util.d.ts +4 -4
  454. package/lib/plugin/languages/util.js +27 -27
  455. package/lib/plugin/languages/workspace-symbol.d.ts +8 -8
  456. package/lib/plugin/languages/workspace-symbol.js +61 -61
  457. package/lib/plugin/languages-utils.d.ts +5 -5
  458. package/lib/plugin/languages-utils.js +52 -52
  459. package/lib/plugin/languages.d.ts +118 -118
  460. package/lib/plugin/languages.js +679 -679
  461. package/lib/plugin/markdown-string.d.ts +24 -24
  462. package/lib/plugin/markdown-string.js +124 -124
  463. package/lib/plugin/message-registry.d.ts +8 -8
  464. package/lib/plugin/message-registry.js +60 -60
  465. package/lib/plugin/node/debug/debug.spec.d.ts +1 -1
  466. package/lib/plugin/node/debug/debug.spec.js +67 -67
  467. package/lib/plugin/node/debug/plugin-node-debug-adapter-creator.d.ts +17 -17
  468. package/lib/plugin/node/debug/plugin-node-debug-adapter-creator.js +154 -154
  469. package/lib/plugin/node/env-node-ext.d.ts +21 -21
  470. package/lib/plugin/node/env-node-ext.js +63 -63
  471. package/lib/plugin/notification.d.ts +17 -17
  472. package/lib/plugin/notification.js +67 -67
  473. package/lib/plugin/output-channel/output-channel-item.d.ts +17 -17
  474. package/lib/plugin/output-channel/output-channel-item.js +51 -51
  475. package/lib/plugin/output-channel-registry.d.ts +8 -8
  476. package/lib/plugin/output-channel-registry.js +35 -35
  477. package/lib/plugin/path.d.ts +2 -2
  478. package/lib/plugin/path.js +59 -59
  479. package/lib/plugin/path.spec.d.ts +1 -1
  480. package/lib/plugin/path.spec.js +34 -34
  481. package/lib/plugin/plugin-context.d.ts +56 -56
  482. package/lib/plugin/plugin-context.js +1072 -1072
  483. package/lib/plugin/plugin-icon-path.d.ts +11 -11
  484. package/lib/plugin/plugin-icon-path.js +49 -49
  485. package/lib/plugin/plugin-manager.d.ts +80 -80
  486. package/lib/plugin/plugin-manager.js +366 -366
  487. package/lib/plugin/plugin-storage.d.ts +36 -36
  488. package/lib/plugin/plugin-storage.js +99 -99
  489. package/lib/plugin/preference-registry.d.ts +36 -36
  490. package/lib/plugin/preference-registry.js +295 -295
  491. package/lib/plugin/preference-registry.spec.d.ts +1 -1
  492. package/lib/plugin/preference-registry.spec.js +251 -251
  493. package/lib/plugin/prefix-sum-computer.d.ts +30 -30
  494. package/lib/plugin/prefix-sum-computer.js +172 -172
  495. package/lib/plugin/quick-open.d.ts +202 -202
  496. package/lib/plugin/quick-open.js +637 -637
  497. package/lib/plugin/scm.d.ts +53 -53
  498. package/lib/plugin/scm.js +713 -713
  499. package/lib/plugin/secrets-ext.d.ts +30 -30
  500. package/lib/plugin/secrets-ext.js +68 -68
  501. package/lib/plugin/status-bar/status-bar-item.d.ts +44 -44
  502. package/lib/plugin/status-bar/status-bar-item.js +122 -122
  503. package/lib/plugin/status-bar-message-registry.d.ts +20 -20
  504. package/lib/plugin/status-bar-message-registry.js +84 -84
  505. package/lib/plugin/stubs/tests-api.d.ts +22 -22
  506. package/lib/plugin/stubs/tests-api.js +66 -66
  507. package/lib/plugin/tabs.d.ts +22 -22
  508. package/lib/plugin/tabs.js +358 -358
  509. package/lib/plugin/tasks/task-provider.d.ts +8 -8
  510. package/lib/plugin/tasks/task-provider.js +56 -56
  511. package/lib/plugin/tasks/tasks.d.ts +45 -45
  512. package/lib/plugin/tasks/tasks.js +210 -210
  513. package/lib/plugin/terminal-ext.d.ts +101 -101
  514. package/lib/plugin/terminal-ext.js +422 -422
  515. package/lib/plugin/text-editor.d.ts +100 -100
  516. package/lib/plugin/text-editor.js +409 -409
  517. package/lib/plugin/text-editors.d.ts +37 -37
  518. package/lib/plugin/text-editors.js +126 -126
  519. package/lib/plugin/theming.d.ts +15 -15
  520. package/lib/plugin/theming.js +61 -61
  521. package/lib/plugin/timeline.d.ts +20 -20
  522. package/lib/plugin/timeline.js +152 -152
  523. package/lib/plugin/tree/tree-views.d.ts +93 -93
  524. package/lib/plugin/tree/tree-views.js +523 -523
  525. package/lib/plugin/type-converters.d.ts +131 -131
  526. package/lib/plugin/type-converters.js +1292 -1292
  527. package/lib/plugin/type-converters.spec.d.ts +1 -1
  528. package/lib/plugin/type-converters.spec.js +391 -391
  529. package/lib/plugin/types-impl.d.ts +1464 -1464
  530. package/lib/plugin/types-impl.js +2956 -2956
  531. package/lib/plugin/types-impl.spec.d.ts +1 -1
  532. package/lib/plugin/types-impl.spec.js +78 -78
  533. package/lib/plugin/webview-views.d.ts +52 -52
  534. package/lib/plugin/webview-views.js +144 -144
  535. package/lib/plugin/webviews.d.ts +95 -95
  536. package/lib/plugin/webviews.js +340 -340
  537. package/lib/plugin/window-state.d.ts +16 -16
  538. package/lib/plugin/window-state.js +55 -55
  539. package/lib/plugin/word-helper.d.ts +21 -21
  540. package/lib/plugin/word-helper.js +125 -125
  541. package/lib/plugin/workspace.d.ts +53 -53
  542. package/lib/plugin/workspace.js +371 -371
  543. package/lib/plugin-ext-backend-electron-module.d.ts +3 -3
  544. package/lib/plugin-ext-backend-electron-module.js +24 -24
  545. package/lib/plugin-ext-backend-module.d.ts +3 -3
  546. package/lib/plugin-ext-backend-module.js +24 -24
  547. package/lib/plugin-ext-frontend-electron-module.d.ts +2 -2
  548. package/lib/plugin-ext-frontend-electron-module.js +19 -19
  549. package/lib/plugin-ext-frontend-module.d.ts +2 -2
  550. package/lib/plugin-ext-frontend-module.js +19 -19
  551. package/package.json +27 -27
  552. package/src/common/arrays.ts +54 -54
  553. package/src/common/assert.ts +23 -23
  554. package/src/common/cache.ts +51 -51
  555. package/src/common/character-classifier.ts +73 -73
  556. package/src/common/collections.ts +37 -37
  557. package/src/common/connection.ts +137 -137
  558. package/src/common/disposable-util.ts +39 -39
  559. package/src/common/editor-options.ts +74 -74
  560. package/src/common/env.ts +19 -19
  561. package/src/common/errors.ts +37 -37
  562. package/src/common/id-generator.ts +26 -26
  563. package/src/common/index.ts +24 -24
  564. package/src/common/link-computer.ts +354 -354
  565. package/src/common/object-identifier.ts +33 -33
  566. package/src/common/objects.ts +50 -50
  567. package/src/common/paths-util.ts +158 -158
  568. package/src/common/plugin-api-rpc-model.ts +864 -864
  569. package/src/common/plugin-api-rpc.ts +2202 -2202
  570. package/src/common/plugin-ext-api-contribution.ts +82 -82
  571. package/src/common/plugin-identifiers.ts +84 -84
  572. package/src/common/plugin-protocol.ts +987 -987
  573. package/src/common/proxy-handler.ts +126 -126
  574. package/src/common/reference-map.ts +38 -38
  575. package/src/common/rpc-protocol.ts +272 -272
  576. package/src/common/semantic-tokens-dto.ts +182 -182
  577. package/src/common/types.ts +129 -129
  578. package/src/common/uint.ts +37 -37
  579. package/src/common/uri-components.ts +85 -85
  580. package/src/hosted/browser/hosted-plugin-watcher.ts +54 -54
  581. package/src/hosted/browser/hosted-plugin.ts +830 -830
  582. package/src/hosted/browser/plugin-worker.ts +52 -52
  583. package/src/hosted/browser/worker/debug-stub.ts +28 -28
  584. package/src/hosted/browser/worker/plugin-manifest-loader.ts +114 -114
  585. package/src/hosted/browser/worker/worker-env-ext.ts +41 -41
  586. package/src/hosted/browser/worker/worker-main.ts +221 -221
  587. package/src/hosted/node/hosted-plugin-cli-contribution.ts +75 -75
  588. package/src/hosted/node/hosted-plugin-deployer-handler.ts +261 -261
  589. package/src/hosted/node/hosted-plugin-localization-service.ts +254 -254
  590. package/src/hosted/node/hosted-plugin-process.ts +248 -248
  591. package/src/hosted/node/hosted-plugin-protocol.ts +49 -49
  592. package/src/hosted/node/hosted-plugin.ts +116 -116
  593. package/src/hosted/node/metadata-scanner.ts +64 -64
  594. package/src/hosted/node/plugin-ext-hosted-backend-module.ts +80 -80
  595. package/src/hosted/node/plugin-host-proxy.ts +80 -80
  596. package/src/hosted/node/plugin-host-rpc.ts +245 -245
  597. package/src/hosted/node/plugin-host.ts +108 -108
  598. package/src/hosted/node/plugin-manifest-loader.ts +31 -31
  599. package/src/hosted/node/plugin-reader.ts +131 -131
  600. package/src/hosted/node/plugin-service.ts +175 -175
  601. package/src/hosted/node/scanners/backend-init-theia.ts +71 -71
  602. package/src/hosted/node/scanners/file-plugin-uri-factory.ts +32 -32
  603. package/src/hosted/node/scanners/grammars-reader.ts +56 -56
  604. package/src/hosted/node/scanners/plugin-uri-factory.ts +33 -33
  605. package/src/hosted/node/scanners/scanner-theia.ts +938 -938
  606. package/src/hosted/node-electron/plugin-ext-hosted-electron-backend-module.ts +26 -26
  607. package/src/hosted/node-electron/scanner-theia-electron.ts +32 -32
  608. package/src/main/browser/authentication-main.ts +369 -369
  609. package/src/main/browser/clipboard-main.ts +38 -38
  610. package/src/main/browser/command-registry-main.ts +110 -110
  611. package/src/main/browser/commands.ts +104 -104
  612. package/src/main/browser/comments/comment-glyph-widget.ts +66 -66
  613. package/src/main/browser/comments/comment-thread-widget.tsx +691 -691
  614. package/src/main/browser/comments/comments-context-key-service.ts +68 -68
  615. package/src/main/browser/comments/comments-contribution.ts +264 -264
  616. package/src/main/browser/comments/comments-decorator.ts +110 -110
  617. package/src/main/browser/comments/comments-main.ts +465 -465
  618. package/src/main/browser/comments/comments-service.ts +205 -205
  619. package/src/main/browser/custom-editors/custom-editor-contribution.ts +38 -38
  620. package/src/main/browser/custom-editors/custom-editor-opener.tsx +105 -105
  621. package/src/main/browser/custom-editors/custom-editor-service.ts +108 -108
  622. package/src/main/browser/custom-editors/custom-editor-widget-factory.ts +44 -44
  623. package/src/main/browser/custom-editors/custom-editor-widget.ts +127 -127
  624. package/src/main/browser/custom-editors/custom-editors-main.ts +606 -606
  625. package/src/main/browser/custom-editors/plugin-custom-editor-registry.ts +142 -142
  626. package/src/main/browser/custom-editors/undo-redo-service.ts +120 -120
  627. package/src/main/browser/debug/debug-main.ts +373 -373
  628. package/src/main/browser/debug/plugin-debug-adapter-contribution.ts +48 -48
  629. package/src/main/browser/debug/plugin-debug-configuration-provider.ts +63 -63
  630. package/src/main/browser/debug/plugin-debug-service.ts +338 -338
  631. package/src/main/browser/debug/plugin-debug-session-contribution-registry.ts +76 -76
  632. package/src/main/browser/debug/plugin-debug-session-factory.ts +105 -105
  633. package/src/main/browser/decorations/decorations-main.ts +146 -146
  634. package/src/main/browser/dialogs/modal-notification.ts +110 -110
  635. package/src/main/browser/dialogs/style/modal-notification.css +123 -123
  636. package/src/main/browser/dialogs-main.ts +185 -185
  637. package/src/main/browser/documents-main.ts +289 -289
  638. package/src/main/browser/editors-and-documents-main.ts +394 -394
  639. package/src/main/browser/env-main.ts +87 -87
  640. package/src/main/browser/file-system-main-impl.ts +263 -263
  641. package/src/main/browser/hierarchy/hierarchy-types-converters.ts +189 -189
  642. package/src/main/browser/keybindings/keybindings-contribution-handler.ts +66 -66
  643. package/src/main/browser/label-service-main.ts +51 -51
  644. package/src/main/browser/languages-main.ts +1387 -1387
  645. package/src/main/browser/main-context.ts +187 -187
  646. package/src/main/browser/main-file-system-event-service.ts +76 -76
  647. package/src/main/browser/menus/menus-contribution-handler.ts +162 -162
  648. package/src/main/browser/menus/plugin-menu-command-adapter.ts +264 -264
  649. package/src/main/browser/menus/vscode-theia-menu-mappings.ts +91 -91
  650. package/src/main/browser/message-registry-main.ts +56 -56
  651. package/src/main/browser/notification-main.ts +86 -86
  652. package/src/main/browser/output-channel-registry-main.ts +53 -53
  653. package/src/main/browser/plugin-authentication-service.ts +71 -71
  654. package/src/main/browser/plugin-contribution-handler.ts +609 -609
  655. package/src/main/browser/plugin-ext-frontend-module.ts +249 -249
  656. package/src/main/browser/plugin-ext-widget.tsx +132 -132
  657. package/src/main/browser/plugin-frontend-contribution.ts +35 -35
  658. package/src/main/browser/plugin-frontend-view-contribution.ts +38 -38
  659. package/src/main/browser/plugin-icon-theme-service.ts +585 -585
  660. package/src/main/browser/plugin-shared-style.ts +133 -133
  661. package/src/main/browser/plugin-storage.ts +55 -55
  662. package/src/main/browser/plugin-terminal-registry.ts +27 -27
  663. package/src/main/browser/preference-registry-main.ts +123 -123
  664. package/src/main/browser/quick-open-main.ts +324 -324
  665. package/src/main/browser/scm-main.ts +453 -453
  666. package/src/main/browser/secrets-main.ts +82 -82
  667. package/src/main/browser/selection-provider-command.ts +46 -46
  668. package/src/main/browser/status-bar-message-registry-main.ts +90 -90
  669. package/src/main/browser/style/comments.css +345 -345
  670. package/src/main/browser/style/index.css +85 -85
  671. package/src/main/browser/style/plugin-sidebar.css +73 -73
  672. package/src/main/browser/style/test.svg +13 -13
  673. package/src/main/browser/style/tree.css +52 -52
  674. package/src/main/browser/style/webview.css +53 -53
  675. package/src/main/browser/tabs/tabs-main.ts +323 -323
  676. package/src/main/browser/tasks-main.ts +268 -268
  677. package/src/main/browser/terminal-main.ts +301 -301
  678. package/src/main/browser/text-editor-main.ts +463 -463
  679. package/src/main/browser/text-editor-model-service.ts +102 -102
  680. package/src/main/browser/text-editors-main.ts +206 -206
  681. package/src/main/browser/theme-icon-override.ts +252 -252
  682. package/src/main/browser/theming-main.ts +42 -42
  683. package/src/main/browser/timeline-main.ts +80 -80
  684. package/src/main/browser/view/dnd-file-content-store.ts +42 -42
  685. package/src/main/browser/view/plugin-tree-view-node-label-provider.ts +81 -81
  686. package/src/main/browser/view/plugin-view-registry.ts +885 -885
  687. package/src/main/browser/view/plugin-view-widget.ts +173 -173
  688. package/src/main/browser/view/tree-view-decorator-service.ts +51 -51
  689. package/src/main/browser/view/tree-view-widget.tsx +859 -859
  690. package/src/main/browser/view/tree-views-main.ts +191 -191
  691. package/src/main/browser/view/view-context-key-service.ts +77 -77
  692. package/src/main/browser/view-column-service.ts +125 -125
  693. package/src/main/browser/webview/pre/fake.html +14 -14
  694. package/src/main/browser/webview/pre/host.js +130 -130
  695. package/src/main/browser/webview/pre/index.html +17 -17
  696. package/src/main/browser/webview/pre/main.js +632 -632
  697. package/src/main/browser/webview/pre/service-worker.js +295 -295
  698. package/src/main/browser/webview/webview-environment.ts +83 -83
  699. package/src/main/browser/webview/webview-frontend-security-warnings.ts +59 -59
  700. package/src/main/browser/webview/webview-preferences.ts +72 -72
  701. package/src/main/browser/webview/webview-resource-cache.ts +88 -88
  702. package/src/main/browser/webview/webview-theme-data-provider.ts +124 -124
  703. package/src/main/browser/webview/webview-widget-factory.ts +43 -43
  704. package/src/main/browser/webview/webview.ts +629 -629
  705. package/src/main/browser/webview-views/webview-views-main.ts +142 -142
  706. package/src/main/browser/webview-views/webview-views.ts +38 -38
  707. package/src/main/browser/webviews-main.ts +269 -269
  708. package/src/main/browser/window-state-main.ts +76 -76
  709. package/src/main/browser/workspace-main.ts +383 -383
  710. package/src/main/common/plugin-paths-protocol.ts +26 -26
  711. package/src/main/common/plugin-theia-environment.ts +36 -36
  712. package/src/main/common/webview-protocol.ts +28 -28
  713. package/src/main/electron-browser/plugin-ext-frontend-electron-module.ts +25 -25
  714. package/src/main/electron-browser/webview/electron-webview-widget-factory.ts +70 -70
  715. package/src/main/node/handlers/plugin-theia-directory-handler.ts +105 -105
  716. package/src/main/node/handlers/plugin-theia-file-handler.ts +54 -54
  717. package/src/main/node/paths/const.ts +21 -21
  718. package/src/main/node/paths/plugin-paths-service.ts +170 -170
  719. package/src/main/node/plugin-cli-contribution.ts +85 -85
  720. package/src/main/node/plugin-deployer-contribution.ts +34 -34
  721. package/src/main/node/plugin-deployer-directory-handler-context-impl.ts +45 -45
  722. package/src/main/node/plugin-deployer-entry-impl.ts +130 -130
  723. package/src/main/node/plugin-deployer-file-handler-context-impl.ts +33 -33
  724. package/src/main/node/plugin-deployer-impl.ts +367 -367
  725. package/src/main/node/plugin-deployer-proxy-entry-impl.ts +96 -96
  726. package/src/main/node/plugin-deployer-resolver-context-impl.ts +55 -55
  727. package/src/main/node/plugin-ext-backend-module.ts +93 -93
  728. package/src/main/node/plugin-github-resolver.ts +148 -148
  729. package/src/main/node/plugin-http-resolver.ts +91 -91
  730. package/src/main/node/plugin-localization-backend-contribution.ts +42 -42
  731. package/src/main/node/plugin-server-handler.ts +69 -69
  732. package/src/main/node/plugin-service.ts +82 -82
  733. package/src/main/node/plugin-theia-deployer-participant.ts +32 -32
  734. package/src/main/node/plugin-uninstallation-manager.ts +74 -74
  735. package/src/main/node/plugins-key-value-storage.ts +117 -117
  736. package/src/main/node/resolvers/local-directory-plugin-deployer-resolver.ts +37 -37
  737. package/src/main/node/resolvers/local-plugin-deployer-resolver.ts +56 -56
  738. package/src/main/node/temp-dir-util.ts +27 -27
  739. package/src/main/node/webview-backend-security-warnings.ts +45 -45
  740. package/src/main/style/status-bar.css +35 -35
  741. package/src/plugin/authentication-ext.ts +125 -125
  742. package/src/plugin/clipboard-ext.ts +37 -37
  743. package/src/plugin/command-registry.ts +218 -218
  744. package/src/plugin/comments.ts +518 -518
  745. package/src/plugin/custom-editors.ts +336 -336
  746. package/src/plugin/debug/debug-ext.ts +487 -487
  747. package/src/plugin/debug/plugin-debug-adapter-creator.ts +50 -50
  748. package/src/plugin/debug/plugin-debug-adapter-session.ts +106 -106
  749. package/src/plugin/debug/plugin-debug-adapter-tracker.ts +85 -85
  750. package/src/plugin/decorations.ts +140 -140
  751. package/src/plugin/dialogs.ts +96 -96
  752. package/src/plugin/document-data.ts +366 -366
  753. package/src/plugin/documents.ts +283 -283
  754. package/src/plugin/editors-and-documents.ts +170 -170
  755. package/src/plugin/env.ts +134 -134
  756. package/src/plugin/file-system-event-service-ext-impl.ts +256 -256
  757. package/src/plugin/file-system-ext-impl.ts +412 -412
  758. package/src/plugin/known-commands.spec.ts +50 -50
  759. package/src/plugin/known-commands.ts +412 -412
  760. package/src/plugin/label-service.ts +36 -36
  761. package/src/plugin/languages/call-hierarchy.ts +124 -124
  762. package/src/plugin/languages/code-action.ts +162 -162
  763. package/src/plugin/languages/color.ts +75 -75
  764. package/src/plugin/languages/completion.ts +179 -179
  765. package/src/plugin/languages/declaration.ts +72 -72
  766. package/src/plugin/languages/definition.ts +73 -73
  767. package/src/plugin/languages/diagnostics.ts +325 -325
  768. package/src/plugin/languages/document-formatting.ts +47 -47
  769. package/src/plugin/languages/document-highlight.ts +61 -61
  770. package/src/plugin/languages/evaluatable-expression.ts +47 -47
  771. package/src/plugin/languages/folding.ts +46 -46
  772. package/src/plugin/languages/hover.ts +58 -58
  773. package/src/plugin/languages/implementation.ts +73 -73
  774. package/src/plugin/languages/inlay-hints.ts +149 -149
  775. package/src/plugin/languages/inline-completion.ts +126 -126
  776. package/src/plugin/languages/inline-values.ts +50 -50
  777. package/src/plugin/languages/lens.ts +102 -102
  778. package/src/plugin/languages/link-provider.ts +79 -79
  779. package/src/plugin/languages/linked-editing-range.ts +48 -48
  780. package/src/plugin/languages/on-type-formatting.ts +50 -50
  781. package/src/plugin/languages/outline.ts +126 -126
  782. package/src/plugin/languages/range-formatting.ts +48 -48
  783. package/src/plugin/languages/reference.ts +58 -58
  784. package/src/plugin/languages/rename.ts +130 -130
  785. package/src/plugin/languages/selection-range.ts +80 -80
  786. package/src/plugin/languages/semantic-highlighting.ts +211 -211
  787. package/src/plugin/languages/signature.ts +82 -82
  788. package/src/plugin/languages/type-definition.ts +73 -73
  789. package/src/plugin/languages/type-hierarchy.ts +117 -117
  790. package/src/plugin/languages/util.ts +26 -26
  791. package/src/plugin/languages/workspace-symbol.ts +66 -66
  792. package/src/plugin/languages-utils.ts +56 -56
  793. package/src/plugin/languages.ts +969 -969
  794. package/src/plugin/markdown-string.ts +115 -115
  795. package/src/plugin/message-registry.ts +65 -65
  796. package/src/plugin/node/debug/debug.spec.ts +94 -94
  797. package/src/plugin/node/debug/plugin-node-debug-adapter-creator.ts +167 -167
  798. package/src/plugin/node/env-node-ext.ts +69 -69
  799. package/src/plugin/notification.ts +80 -80
  800. package/src/plugin/output-channel/output-channel-item.ts +73 -73
  801. package/src/plugin/output-channel-registry.ts +39 -39
  802. package/src/plugin/path.spec.ts +40 -40
  803. package/src/plugin/path.ts +68 -68
  804. package/src/plugin/plugin-context.ts +1387 -1387
  805. package/src/plugin/plugin-icon-path.ts +50 -50
  806. package/src/plugin/plugin-manager.ts +446 -446
  807. package/src/plugin/plugin-storage.ts +120 -120
  808. package/src/plugin/preference-registry.spec.ts +299 -299
  809. package/src/plugin/preference-registry.ts +337 -337
  810. package/src/plugin/prefix-sum-computer.ts +218 -218
  811. package/src/plugin/quick-open.ts +772 -772
  812. package/src/plugin/scm.ts +910 -910
  813. package/src/plugin/secrets-ext.ts +84 -84
  814. package/src/plugin/status-bar/status-bar-item.ts +193 -193
  815. package/src/plugin/status-bar-message-registry.ts +103 -103
  816. package/src/plugin/stubs/tests-api.ts +96 -96
  817. package/src/plugin/tabs.ts +426 -426
  818. package/src/plugin/tasks/task-provider.ts +60 -60
  819. package/src/plugin/tasks/tasks.ts +247 -247
  820. package/src/plugin/terminal-ext.ts +494 -494
  821. package/src/plugin/text-editor.ts +522 -522
  822. package/src/plugin/text-editors.ts +150 -150
  823. package/src/plugin/theming.ts +73 -73
  824. package/src/plugin/timeline.ts +186 -186
  825. package/src/plugin/tree/tree-views.ts +612 -612
  826. package/src/plugin/type-converters.spec.ts +476 -476
  827. package/src/plugin/type-converters.ts +1350 -1350
  828. package/src/plugin/types-impl.spec.ts +85 -85
  829. package/src/plugin/types-impl.ts +3407 -3407
  830. package/src/plugin/webview-views.ts +213 -213
  831. package/src/plugin/webviews.ts +433 -433
  832. package/src/plugin/window-state.ts +68 -68
  833. package/src/plugin/word-helper.ts +162 -162
  834. package/src/plugin/workspace.ts +448 -448
  835. package/src/plugin-ext-backend-electron-module.ts +24 -24
  836. package/src/plugin-ext-backend-module.ts +24 -24
  837. package/src/plugin-ext-frontend-electron-module.ts +19 -19
  838. package/src/plugin-ext-frontend-module.ts +19 -19
  839. package/src/typings/index.d.ts +25 -25
@@ -1,467 +1,467 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CommentAction = exports.CommentActions = exports.CommentsInlineAction = exports.CommentEditContainer = exports.CommentBody = exports.ReviewComment = exports.CommentForm = exports.CommentThreadWidget = exports.COMMENT_TITLE = exports.COMMENT_CONTEXT = exports.COMMENT_THREAD_CONTEXT = void 0;
4
- // *****************************************************************************
5
- // Copyright (C) 2020 Red Hat, Inc. and others.
6
- //
7
- // This program and the accompanying materials are made available under the
8
- // terms of the Eclipse Public License v. 2.0 which is available at
9
- // http://www.eclipse.org/legal/epl-2.0.
10
- //
11
- // This Source Code may also be made available under the following Secondary
12
- // Licenses when the conditions for such availability set forth in the Eclipse
13
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
14
- // with the GNU Classpath Exception which is available at
15
- // https://www.gnu.org/software/classpath/license.html.
16
- //
17
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
18
- // *****************************************************************************
19
- const monaco_editor_zone_widget_1 = require("@theia/monaco/lib/browser/monaco-editor-zone-widget");
20
- const plugin_api_rpc_model_1 = require("../../../common/plugin-api-rpc-model");
21
- const comment_glyph_widget_1 = require("./comment-glyph-widget");
22
- const browser_1 = require("@theia/core/lib/browser");
23
- const React = require("@theia/core/shared/react");
24
- const browser_2 = require("@theia/editor/lib/browser");
25
- const common_1 = require("@theia/core/lib/common");
26
- const monaco = require("@theia/monaco-editor-core");
27
- const client_1 = require("@theia/core/shared/react-dom/client");
28
- /*---------------------------------------------------------------------------------------------
29
- * Copyright (c) Microsoft Corporation. All rights reserved.
30
- * Licensed under the MIT License. See License.txt in the project root for license information.
31
- *--------------------------------------------------------------------------------------------*/
32
- // some code copied and modified from https://github.com/microsoft/vscode/blob/1.49.3/src/vs/workbench/contrib/comments/browser/commentThreadWidget.ts
33
- exports.COMMENT_THREAD_CONTEXT = ['comment_thread-context-menu'];
34
- exports.COMMENT_CONTEXT = ['comment-context-menu'];
35
- exports.COMMENT_TITLE = ['comment-title-menu'];
36
- class CommentThreadWidget extends browser_1.BaseWidget {
37
- constructor(editor, _owner, _commentThread, commentService, menus, contextKeyService, commands) {
38
- super();
39
- this._owner = _owner;
40
- this._commentThread = _commentThread;
41
- this.commentService = commentService;
42
- this.menus = menus;
43
- this.contextKeyService = contextKeyService;
44
- this.commands = commands;
45
- this.commentFormRef = React.createRef();
46
- this.toDispose.push(this.zoneWidget = new monaco_editor_zone_widget_1.MonacoEditorZoneWidget(editor));
47
- this.containerNodeRoot = (0, client_1.createRoot)(this.zoneWidget.containerNode);
48
- this.toDispose.push(this.commentGlyphWidget = new comment_glyph_widget_1.CommentGlyphWidget(editor));
49
- this.toDispose.push(this._commentThread.onDidChangeCollapsibleState(state => {
50
- if (state === plugin_api_rpc_model_1.CommentThreadCollapsibleState.Expanded && !this.isExpanded) {
51
- const lineNumber = this._commentThread.range.startLineNumber;
52
- this.display({ afterLineNumber: lineNumber, afterColumn: 1, heightInLines: 2 });
53
- return;
54
- }
55
- if (state === plugin_api_rpc_model_1.CommentThreadCollapsibleState.Collapsed && this.isExpanded) {
56
- this.hide();
57
- return;
58
- }
59
- }));
60
- this.contextKeyService.commentIsEmpty.set(true);
61
- this.toDispose.push(this.zoneWidget.editor.onMouseDown(e => this.onEditorMouseDown(e)));
62
- this.toDispose.push(this.contextKeyService.onDidChange(() => {
63
- const commentForm = this.commentFormRef.current;
64
- if (commentForm) {
65
- commentForm.update();
66
- }
67
- }));
68
- this.toDispose.push(this._commentThread.onDidChangeCanReply(_canReply => {
69
- const commentForm = this.commentFormRef.current;
70
- if (commentForm) {
71
- commentForm.update();
72
- }
73
- }));
74
- this.contextMenu = this.menus.getMenu(exports.COMMENT_THREAD_CONTEXT);
75
- this.contextMenu.children.map(node => node instanceof common_1.ActionMenuNode && node.when).forEach(exp => {
76
- if (typeof exp === 'string') {
77
- this.contextKeyService.setExpression(exp);
78
- }
79
- });
80
- }
81
- getGlyphPosition() {
82
- return this.commentGlyphWidget.getPosition();
83
- }
84
- collapse() {
85
- this._commentThread.collapsibleState = plugin_api_rpc_model_1.CommentThreadCollapsibleState.Collapsed;
86
- if (this._commentThread.comments && this._commentThread.comments.length === 0) {
87
- this.deleteCommentThread();
88
- }
89
- this.hide();
90
- }
91
- deleteCommentThread() {
92
- this.dispose();
93
- this.commentService.disposeCommentThread(this.owner, this._commentThread.threadId);
94
- }
95
- dispose() {
96
- super.dispose();
97
- if (this.commentGlyphWidget) {
98
- this.commentGlyphWidget.dispose();
99
- }
100
- }
101
- toggleExpand(lineNumber) {
102
- if (this.isExpanded) {
103
- this._commentThread.collapsibleState = plugin_api_rpc_model_1.CommentThreadCollapsibleState.Collapsed;
104
- this.hide();
105
- if (!this._commentThread.comments || !this._commentThread.comments.length) {
106
- this.deleteCommentThread();
107
- }
108
- }
109
- else {
110
- this._commentThread.collapsibleState = plugin_api_rpc_model_1.CommentThreadCollapsibleState.Expanded;
111
- this.display({ afterLineNumber: lineNumber, afterColumn: 1, heightInLines: 2 });
112
- }
113
- }
114
- hide() {
115
- this.zoneWidget.hide();
116
- this.isExpanded = false;
117
- super.hide();
118
- }
119
- display(options) {
120
- this.isExpanded = true;
121
- if (this._commentThread.collapsibleState && this._commentThread.collapsibleState !== plugin_api_rpc_model_1.CommentThreadCollapsibleState.Expanded) {
122
- return;
123
- }
124
- this.commentGlyphWidget.setLineNumber(options.afterLineNumber);
125
- this._commentThread.collapsibleState = plugin_api_rpc_model_1.CommentThreadCollapsibleState.Expanded;
126
- this.zoneWidget.show(options);
127
- this.update();
128
- }
129
- onEditorMouseDown(e) {
130
- const range = e.target.range;
131
- if (!range) {
132
- return;
133
- }
134
- if (!e.event.leftButton) {
135
- return;
136
- }
137
- if (e.target.type !== browser_2.MouseTargetType.GUTTER_LINE_DECORATIONS) {
138
- return;
139
- }
140
- const data = e.target.detail;
141
- const gutterOffsetX = data.offsetX - data.glyphMarginWidth - data.lineNumbersWidth - data.glyphMarginLeft;
142
- // don't collide with folding and git decorations
143
- if (gutterOffsetX > 14) {
144
- return;
145
- }
146
- const mouseDownInfo = { lineNumber: range.startLineNumber };
147
- const { lineNumber } = mouseDownInfo;
148
- if (!range || range.startLineNumber !== lineNumber) {
149
- return;
150
- }
151
- if (e.target.type !== browser_2.MouseTargetType.GUTTER_LINE_DECORATIONS) {
152
- return;
153
- }
154
- if (!e.target.element) {
155
- return;
156
- }
157
- if (this.commentGlyphWidget && this.commentGlyphWidget.getPosition() !== lineNumber) {
158
- return;
159
- }
160
- if (e.target.element.className.indexOf('comment-thread') >= 0) {
161
- this.toggleExpand(lineNumber);
162
- return;
163
- }
164
- if (this._commentThread.collapsibleState === plugin_api_rpc_model_1.CommentThreadCollapsibleState.Collapsed) {
165
- this.display({ afterLineNumber: mouseDownInfo.lineNumber, heightInLines: 2 });
166
- }
167
- else {
168
- this.hide();
169
- }
170
- }
171
- get owner() {
172
- return this._owner;
173
- }
174
- get commentThread() {
175
- return this._commentThread;
176
- }
177
- getThreadLabel() {
178
- let label;
179
- label = this._commentThread.label;
180
- if (label === undefined) {
181
- if (this._commentThread.comments && this._commentThread.comments.length) {
182
- const onlyUnique = (value, index, self) => self.indexOf(value) === index;
183
- const participantsList = this._commentThread.comments.filter(onlyUnique).map(comment => `@${comment.userName}`).join(', ');
184
- label = `Participants: ${participantsList}`;
185
- }
186
- else {
187
- label = 'Start discussion';
188
- }
189
- }
190
- return label;
191
- }
192
- update() {
193
- if (!this.isExpanded) {
194
- return;
195
- }
196
- this.render();
197
- const headHeight = Math.ceil(this.zoneWidget.editor.getOption(monaco.editor.EditorOption.lineHeight) * 1.2);
198
- const lineHeight = this.zoneWidget.editor.getOption(monaco.editor.EditorOption.lineHeight);
199
- const arrowHeight = Math.round(lineHeight / 3);
200
- const frameThickness = Math.round(lineHeight / 9) * 2;
201
- const body = this.zoneWidget.containerNode.getElementsByClassName('body')[0];
202
- const computedLinesNumber = Math.ceil((headHeight + body.clientHeight + arrowHeight + frameThickness + 8 /** margin bottom to avoid margin collapse */) / lineHeight);
203
- this.zoneWidget.show({ afterLineNumber: this._commentThread.range.startLineNumber, heightInLines: computedLinesNumber });
204
- }
205
- render() {
206
- var _a;
207
- const headHeight = Math.ceil(this.zoneWidget.editor.getOption(monaco.editor.EditorOption.lineHeight) * 1.2);
208
- this.containerNodeRoot.render(React.createElement("div", { className: 'review-widget' },
209
- React.createElement("div", { className: 'head', style: { height: headHeight, lineHeight: `${headHeight}px` } },
210
- React.createElement("div", { className: 'review-title' },
211
- React.createElement("span", { className: 'filename' }, this.getThreadLabel())),
212
- React.createElement("div", { className: 'review-actions' },
213
- React.createElement("div", { className: 'monaco-action-bar animated' },
214
- React.createElement("ul", { className: 'actions-container', role: 'toolbar' },
215
- React.createElement("li", { className: 'action-item', role: 'presentation' },
216
- React.createElement("a", { className: 'action-label codicon expand-review-action codicon-chevron-up', role: 'button', tabIndex: 0, title: 'Collapse', onClick: () => this.collapse() })))))),
217
- React.createElement("div", { className: 'body' },
218
- React.createElement("div", { className: 'comments-container', role: 'presentation', tabIndex: 0 }, (_a = this._commentThread.comments) === null || _a === void 0 ? void 0 : _a.map((comment, index) => React.createElement(ReviewComment, { key: index, contextKeyService: this.contextKeyService, menus: this.menus, comment: comment, commentForm: this.commentFormRef, commands: this.commands, commentThread: this._commentThread }))),
219
- React.createElement(CommentForm, { contextKeyService: this.contextKeyService, commands: this.commands, commentThread: this._commentThread, menus: this.menus, widget: this, ref: this.commentFormRef }))));
220
- }
221
- }
222
- exports.CommentThreadWidget = CommentThreadWidget;
223
- class CommentForm extends React.Component {
224
- constructor(props) {
225
- super(props);
226
- this.inputRef = React.createRef();
227
- this.inputValue = '';
228
- this.getInput = () => this.inputValue;
229
- this.clearInput = () => {
230
- const input = this.inputRef.current;
231
- if (input) {
232
- this.inputValue = '';
233
- input.value = this.inputValue;
234
- this.props.contextKeyService.commentIsEmpty.set(true);
235
- }
236
- };
237
- this.expand = () => {
238
- this.setState({ expanded: true });
239
- // Wait for the widget to be rendered.
240
- setTimeout(() => {
241
- var _a;
242
- // Update the widget's height.
243
- this.props.widget.update();
244
- (_a = this.inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
245
- }, 100);
246
- };
247
- this.collapse = () => {
248
- this.setState({ expanded: false });
249
- // Wait for the widget to be rendered.
250
- setTimeout(() => {
251
- // Update the widget's height.
252
- this.props.widget.update();
253
- }, 100);
254
- };
255
- this.onInput = (event) => {
256
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
257
- const value = event.target.value;
258
- if (this.inputValue.length === 0 || value.length === 0) {
259
- this.props.contextKeyService.commentIsEmpty.set(value.length === 0);
260
- }
261
- this.inputValue = value;
262
- };
263
- this.state = {
264
- expanded: false
265
- };
266
- const setState = this.setState.bind(this);
267
- this.setState = newState => {
268
- setState(newState);
269
- };
270
- this.menu = this.props.menus.getMenu(exports.COMMENT_THREAD_CONTEXT);
271
- this.menu.children.map(node => node instanceof common_1.ActionMenuNode && node.when).forEach(exp => {
272
- if (typeof exp === 'string') {
273
- this.props.contextKeyService.setExpression(exp);
274
- }
275
- });
276
- }
277
- update() {
278
- this.setState(this.state);
279
- }
280
- componentDidMount() {
281
- // Wait for the widget to be rendered.
282
- setTimeout(() => {
283
- var _a;
284
- (_a = this.inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
285
- }, 100);
286
- }
287
- render() {
288
- const { commands, commentThread, contextKeyService } = this.props;
289
- const hasExistingComments = commentThread.comments && commentThread.comments.length > 0;
290
- return commentThread.canReply ? React.createElement("div", { className: 'comment-form' + (this.state.expanded || commentThread.comments && commentThread.comments.length === 0 ? ' expand' : '') },
291
- React.createElement("div", { className: 'theia-comments-input-message-container' },
292
- React.createElement("textarea", { className: 'theia-comments-input-message theia-input', spellCheck: false, placeholder: hasExistingComments ? 'Reply...' : 'Type a new comment', onInput: this.onInput,
293
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
294
- onBlur: (event) => {
295
- if (event.target.value.length > 0) {
296
- return;
297
- }
298
- if (event.relatedTarget && event.relatedTarget.className === 'comments-button comments-text-button theia-button') {
299
- this.state = { expanded: false };
300
- return;
301
- }
302
- this.collapse();
303
- }, ref: this.inputRef })),
304
- React.createElement(CommentActions, { menu: this.menu, contextKeyService: contextKeyService, commands: commands, commentThread: commentThread, getInput: this.getInput, clearInput: this.clearInput }),
305
- React.createElement("button", { className: 'review-thread-reply-button', title: 'Reply...', onClick: this.expand }, "Reply...")) : null;
306
- }
307
- }
308
- exports.CommentForm = CommentForm;
309
- class ReviewComment extends React.Component {
310
- constructor(props) {
311
- super(props);
312
- this.detectHover = (element) => {
313
- if (element) {
314
- window.requestAnimationFrame(() => {
315
- const hover = element.matches(':hover');
316
- this.setState({ hover });
317
- });
318
- }
319
- };
320
- this.showHover = () => this.setState({ hover: true });
321
- this.hideHover = () => this.setState({ hover: false });
322
- this.state = {
323
- hover: false
324
- };
325
- const setState = this.setState.bind(this);
326
- this.setState = newState => {
327
- setState(newState);
328
- };
329
- }
330
- render() {
331
- const { comment, commentForm, contextKeyService, menus, commands, commentThread } = this.props;
332
- const commentUniqueId = comment.uniqueIdInThread;
333
- const { hover } = this.state;
334
- contextKeyService.comment.set(comment.contextValue);
335
- return React.createElement("div", { className: 'review-comment', tabIndex: -1, "aria-label": `${comment.userName}, ${comment.body.value}`, ref: this.detectHover, onMouseEnter: this.showHover, onMouseLeave: this.hideHover },
336
- React.createElement("div", { className: 'avatar-container' },
337
- React.createElement("img", { className: 'avatar', src: comment.userIconPath })),
338
- React.createElement("div", { className: 'review-comment-contents' },
339
- React.createElement("div", { className: 'comment-title monaco-mouse-cursor-text' },
340
- React.createElement("strong", { className: 'author' }, comment.userName),
341
- React.createElement("small", { className: 'timestamp' }, this.localeDate(comment.timestamp)),
342
- React.createElement("span", { className: 'isPending' }, comment.label),
343
- React.createElement("div", { className: 'theia-comments-inline-actions-container' },
344
- React.createElement("div", { className: 'theia-comments-inline-actions', role: 'toolbar' }, hover && menus.getMenu(exports.COMMENT_TITLE).children.map((node, index) => node instanceof common_1.ActionMenuNode &&
345
- React.createElement(CommentsInlineAction, Object.assign({ key: index }, { node, commands, commentThread, commentUniqueId, contextKeyService })))))),
346
- React.createElement(CommentBody, { value: comment.body.value, isVisible: comment.mode === undefined || comment.mode === plugin_api_rpc_model_1.CommentMode.Preview }),
347
- React.createElement(CommentEditContainer, { contextKeyService: contextKeyService, menus: menus, comment: comment, commentThread: commentThread, commentForm: commentForm, commands: commands })));
348
- }
349
- localeDate(timestamp) {
350
- if (timestamp === undefined) {
351
- return '';
352
- }
353
- const date = new Date(timestamp);
354
- if (!isNaN(date.getTime())) {
355
- return date.toLocaleString();
356
- }
357
- return '';
358
- }
359
- }
360
- exports.ReviewComment = ReviewComment;
361
- class CommentBody extends React.Component {
362
- render() {
363
- const { value, isVisible } = this.props;
364
- if (!isVisible) {
365
- return false;
366
- }
367
- return React.createElement("div", { className: 'comment-body monaco-mouse-cursor-text' },
368
- React.createElement("div", null,
369
- React.createElement("p", null, value)));
370
- }
371
- }
372
- exports.CommentBody = CommentBody;
373
- class CommentEditContainer extends React.Component {
374
- constructor() {
375
- super(...arguments);
376
- this.inputRef = React.createRef();
377
- }
378
- componentDidUpdate(prevProps, prevState) {
379
- var _a;
380
- const commentFormState = (_a = this.props.commentForm.current) === null || _a === void 0 ? void 0 : _a.state;
381
- const mode = this.props.comment.mode;
382
- if (this.dirtyCommentMode !== mode || (this.dirtyCommentFormState !== (commentFormState === null || commentFormState === void 0 ? void 0 : commentFormState.expanded) && !(commentFormState === null || commentFormState === void 0 ? void 0 : commentFormState.expanded))) {
383
- const currentInput = this.inputRef.current;
384
- if (currentInput) {
385
- // Wait for the widget to be rendered.
386
- setTimeout(() => {
387
- currentInput.focus();
388
- currentInput.setSelectionRange(currentInput.value.length, currentInput.value.length);
389
- }, 50);
390
- }
391
- }
392
- this.dirtyCommentMode = mode;
393
- this.dirtyCommentFormState = commentFormState === null || commentFormState === void 0 ? void 0 : commentFormState.expanded;
394
- }
395
- render() {
396
- const { menus, comment, commands, commentThread, contextKeyService } = this.props;
397
- if (!(comment.mode === plugin_api_rpc_model_1.CommentMode.Editing)) {
398
- return false;
399
- }
400
- return React.createElement("div", { className: 'edit-container' },
401
- React.createElement("div", { className: 'edit-textarea' },
402
- React.createElement("div", { className: 'theia-comments-input-message-container' },
403
- React.createElement("textarea", { className: 'theia-comments-input-message theia-input', spellCheck: false, defaultValue: comment.body.value, ref: this.inputRef }))),
404
- React.createElement("div", { className: 'form-actions' }, menus.getMenu(exports.COMMENT_CONTEXT).children.map((node, index) => {
405
- const onClick = () => {
406
- commands.executeCommand(node.id, {
407
- thread: commentThread,
408
- commentUniqueId: comment.uniqueIdInThread,
409
- text: this.inputRef.current ? this.inputRef.current.value : ''
410
- });
411
- };
412
- return node instanceof common_1.ActionMenuNode &&
413
- React.createElement(CommentAction, Object.assign({ key: index }, { node, commands, onClick, contextKeyService }));
414
- })));
415
- }
416
- }
417
- exports.CommentEditContainer = CommentEditContainer;
418
- class CommentsInlineAction extends React.Component {
419
- render() {
420
- const { node, commands, contextKeyService, commentThread, commentUniqueId } = this.props;
421
- if (node.when && !contextKeyService.match(node.when)) {
422
- return false;
423
- }
424
- return React.createElement("div", { className: 'theia-comments-inline-action' },
425
- React.createElement("a", { className: node.icon, title: node.label, onClick: () => {
426
- commands.executeCommand(node.id, {
427
- thread: commentThread,
428
- commentUniqueId
429
- });
430
- } }));
431
- }
432
- }
433
- exports.CommentsInlineAction = CommentsInlineAction;
434
- class CommentActions extends React.Component {
435
- render() {
436
- const { contextKeyService, commands, menu, commentThread, getInput, clearInput } = this.props;
437
- return React.createElement("div", { className: 'form-actions' }, menu.children.map((node, index) => node instanceof common_1.ActionMenuNode &&
438
- React.createElement(CommentAction, { key: index, commands: commands, node: node, onClick: () => {
439
- commands.executeCommand(node.id, {
440
- thread: commentThread,
441
- text: getInput()
442
- });
443
- clearInput();
444
- }, contextKeyService: contextKeyService })));
445
- }
446
- }
447
- exports.CommentActions = CommentActions;
448
- class CommentAction extends React.Component {
449
- render() {
450
- const classNames = ['comments-button', 'comments-text-button', 'theia-button'];
451
- const { node, commands, contextKeyService, onClick } = this.props;
452
- if (node.when && !contextKeyService.match(node.when)) {
453
- return false;
454
- }
455
- const isEnabled = commands.isEnabled(node.command);
456
- if (!isEnabled) {
457
- classNames.push(browser_1.DISABLED_CLASS);
458
- }
459
- return React.createElement("button", { className: classNames.join(' '), tabIndex: 0, role: 'button', onClick: () => {
460
- if (isEnabled) {
461
- onClick();
462
- }
463
- } }, node.label);
464
- }
465
- }
466
- exports.CommentAction = CommentAction;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommentAction = exports.CommentActions = exports.CommentsInlineAction = exports.CommentEditContainer = exports.CommentBody = exports.ReviewComment = exports.CommentForm = exports.CommentThreadWidget = exports.COMMENT_TITLE = exports.COMMENT_CONTEXT = exports.COMMENT_THREAD_CONTEXT = void 0;
4
+ // *****************************************************************************
5
+ // Copyright (C) 2020 Red Hat, Inc. and others.
6
+ //
7
+ // This program and the accompanying materials are made available under the
8
+ // terms of the Eclipse Public License v. 2.0 which is available at
9
+ // http://www.eclipse.org/legal/epl-2.0.
10
+ //
11
+ // This Source Code may also be made available under the following Secondary
12
+ // Licenses when the conditions for such availability set forth in the Eclipse
13
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
14
+ // with the GNU Classpath Exception which is available at
15
+ // https://www.gnu.org/software/classpath/license.html.
16
+ //
17
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
18
+ // *****************************************************************************
19
+ const monaco_editor_zone_widget_1 = require("@theia/monaco/lib/browser/monaco-editor-zone-widget");
20
+ const plugin_api_rpc_model_1 = require("../../../common/plugin-api-rpc-model");
21
+ const comment_glyph_widget_1 = require("./comment-glyph-widget");
22
+ const browser_1 = require("@theia/core/lib/browser");
23
+ const React = require("@theia/core/shared/react");
24
+ const browser_2 = require("@theia/editor/lib/browser");
25
+ const common_1 = require("@theia/core/lib/common");
26
+ const monaco = require("@theia/monaco-editor-core");
27
+ const client_1 = require("@theia/core/shared/react-dom/client");
28
+ /*---------------------------------------------------------------------------------------------
29
+ * Copyright (c) Microsoft Corporation. All rights reserved.
30
+ * Licensed under the MIT License. See License.txt in the project root for license information.
31
+ *--------------------------------------------------------------------------------------------*/
32
+ // some code copied and modified from https://github.com/microsoft/vscode/blob/1.49.3/src/vs/workbench/contrib/comments/browser/commentThreadWidget.ts
33
+ exports.COMMENT_THREAD_CONTEXT = ['comment_thread-context-menu'];
34
+ exports.COMMENT_CONTEXT = ['comment-context-menu'];
35
+ exports.COMMENT_TITLE = ['comment-title-menu'];
36
+ class CommentThreadWidget extends browser_1.BaseWidget {
37
+ constructor(editor, _owner, _commentThread, commentService, menus, contextKeyService, commands) {
38
+ super();
39
+ this._owner = _owner;
40
+ this._commentThread = _commentThread;
41
+ this.commentService = commentService;
42
+ this.menus = menus;
43
+ this.contextKeyService = contextKeyService;
44
+ this.commands = commands;
45
+ this.commentFormRef = React.createRef();
46
+ this.toDispose.push(this.zoneWidget = new monaco_editor_zone_widget_1.MonacoEditorZoneWidget(editor));
47
+ this.containerNodeRoot = (0, client_1.createRoot)(this.zoneWidget.containerNode);
48
+ this.toDispose.push(this.commentGlyphWidget = new comment_glyph_widget_1.CommentGlyphWidget(editor));
49
+ this.toDispose.push(this._commentThread.onDidChangeCollapsibleState(state => {
50
+ if (state === plugin_api_rpc_model_1.CommentThreadCollapsibleState.Expanded && !this.isExpanded) {
51
+ const lineNumber = this._commentThread.range.startLineNumber;
52
+ this.display({ afterLineNumber: lineNumber, afterColumn: 1, heightInLines: 2 });
53
+ return;
54
+ }
55
+ if (state === plugin_api_rpc_model_1.CommentThreadCollapsibleState.Collapsed && this.isExpanded) {
56
+ this.hide();
57
+ return;
58
+ }
59
+ }));
60
+ this.contextKeyService.commentIsEmpty.set(true);
61
+ this.toDispose.push(this.zoneWidget.editor.onMouseDown(e => this.onEditorMouseDown(e)));
62
+ this.toDispose.push(this.contextKeyService.onDidChange(() => {
63
+ const commentForm = this.commentFormRef.current;
64
+ if (commentForm) {
65
+ commentForm.update();
66
+ }
67
+ }));
68
+ this.toDispose.push(this._commentThread.onDidChangeCanReply(_canReply => {
69
+ const commentForm = this.commentFormRef.current;
70
+ if (commentForm) {
71
+ commentForm.update();
72
+ }
73
+ }));
74
+ this.contextMenu = this.menus.getMenu(exports.COMMENT_THREAD_CONTEXT);
75
+ this.contextMenu.children.map(node => node instanceof common_1.ActionMenuNode && node.when).forEach(exp => {
76
+ if (typeof exp === 'string') {
77
+ this.contextKeyService.setExpression(exp);
78
+ }
79
+ });
80
+ }
81
+ getGlyphPosition() {
82
+ return this.commentGlyphWidget.getPosition();
83
+ }
84
+ collapse() {
85
+ this._commentThread.collapsibleState = plugin_api_rpc_model_1.CommentThreadCollapsibleState.Collapsed;
86
+ if (this._commentThread.comments && this._commentThread.comments.length === 0) {
87
+ this.deleteCommentThread();
88
+ }
89
+ this.hide();
90
+ }
91
+ deleteCommentThread() {
92
+ this.dispose();
93
+ this.commentService.disposeCommentThread(this.owner, this._commentThread.threadId);
94
+ }
95
+ dispose() {
96
+ super.dispose();
97
+ if (this.commentGlyphWidget) {
98
+ this.commentGlyphWidget.dispose();
99
+ }
100
+ }
101
+ toggleExpand(lineNumber) {
102
+ if (this.isExpanded) {
103
+ this._commentThread.collapsibleState = plugin_api_rpc_model_1.CommentThreadCollapsibleState.Collapsed;
104
+ this.hide();
105
+ if (!this._commentThread.comments || !this._commentThread.comments.length) {
106
+ this.deleteCommentThread();
107
+ }
108
+ }
109
+ else {
110
+ this._commentThread.collapsibleState = plugin_api_rpc_model_1.CommentThreadCollapsibleState.Expanded;
111
+ this.display({ afterLineNumber: lineNumber, afterColumn: 1, heightInLines: 2 });
112
+ }
113
+ }
114
+ hide() {
115
+ this.zoneWidget.hide();
116
+ this.isExpanded = false;
117
+ super.hide();
118
+ }
119
+ display(options) {
120
+ this.isExpanded = true;
121
+ if (this._commentThread.collapsibleState && this._commentThread.collapsibleState !== plugin_api_rpc_model_1.CommentThreadCollapsibleState.Expanded) {
122
+ return;
123
+ }
124
+ this.commentGlyphWidget.setLineNumber(options.afterLineNumber);
125
+ this._commentThread.collapsibleState = plugin_api_rpc_model_1.CommentThreadCollapsibleState.Expanded;
126
+ this.zoneWidget.show(options);
127
+ this.update();
128
+ }
129
+ onEditorMouseDown(e) {
130
+ const range = e.target.range;
131
+ if (!range) {
132
+ return;
133
+ }
134
+ if (!e.event.leftButton) {
135
+ return;
136
+ }
137
+ if (e.target.type !== browser_2.MouseTargetType.GUTTER_LINE_DECORATIONS) {
138
+ return;
139
+ }
140
+ const data = e.target.detail;
141
+ const gutterOffsetX = data.offsetX - data.glyphMarginWidth - data.lineNumbersWidth - data.glyphMarginLeft;
142
+ // don't collide with folding and git decorations
143
+ if (gutterOffsetX > 14) {
144
+ return;
145
+ }
146
+ const mouseDownInfo = { lineNumber: range.startLineNumber };
147
+ const { lineNumber } = mouseDownInfo;
148
+ if (!range || range.startLineNumber !== lineNumber) {
149
+ return;
150
+ }
151
+ if (e.target.type !== browser_2.MouseTargetType.GUTTER_LINE_DECORATIONS) {
152
+ return;
153
+ }
154
+ if (!e.target.element) {
155
+ return;
156
+ }
157
+ if (this.commentGlyphWidget && this.commentGlyphWidget.getPosition() !== lineNumber) {
158
+ return;
159
+ }
160
+ if (e.target.element.className.indexOf('comment-thread') >= 0) {
161
+ this.toggleExpand(lineNumber);
162
+ return;
163
+ }
164
+ if (this._commentThread.collapsibleState === plugin_api_rpc_model_1.CommentThreadCollapsibleState.Collapsed) {
165
+ this.display({ afterLineNumber: mouseDownInfo.lineNumber, heightInLines: 2 });
166
+ }
167
+ else {
168
+ this.hide();
169
+ }
170
+ }
171
+ get owner() {
172
+ return this._owner;
173
+ }
174
+ get commentThread() {
175
+ return this._commentThread;
176
+ }
177
+ getThreadLabel() {
178
+ let label;
179
+ label = this._commentThread.label;
180
+ if (label === undefined) {
181
+ if (this._commentThread.comments && this._commentThread.comments.length) {
182
+ const onlyUnique = (value, index, self) => self.indexOf(value) === index;
183
+ const participantsList = this._commentThread.comments.filter(onlyUnique).map(comment => `@${comment.userName}`).join(', ');
184
+ label = `Participants: ${participantsList}`;
185
+ }
186
+ else {
187
+ label = 'Start discussion';
188
+ }
189
+ }
190
+ return label;
191
+ }
192
+ update() {
193
+ if (!this.isExpanded) {
194
+ return;
195
+ }
196
+ this.render();
197
+ const headHeight = Math.ceil(this.zoneWidget.editor.getOption(monaco.editor.EditorOption.lineHeight) * 1.2);
198
+ const lineHeight = this.zoneWidget.editor.getOption(monaco.editor.EditorOption.lineHeight);
199
+ const arrowHeight = Math.round(lineHeight / 3);
200
+ const frameThickness = Math.round(lineHeight / 9) * 2;
201
+ const body = this.zoneWidget.containerNode.getElementsByClassName('body')[0];
202
+ const computedLinesNumber = Math.ceil((headHeight + body.clientHeight + arrowHeight + frameThickness + 8 /** margin bottom to avoid margin collapse */) / lineHeight);
203
+ this.zoneWidget.show({ afterLineNumber: this._commentThread.range.startLineNumber, heightInLines: computedLinesNumber });
204
+ }
205
+ render() {
206
+ var _a;
207
+ const headHeight = Math.ceil(this.zoneWidget.editor.getOption(monaco.editor.EditorOption.lineHeight) * 1.2);
208
+ this.containerNodeRoot.render(React.createElement("div", { className: 'review-widget' },
209
+ React.createElement("div", { className: 'head', style: { height: headHeight, lineHeight: `${headHeight}px` } },
210
+ React.createElement("div", { className: 'review-title' },
211
+ React.createElement("span", { className: 'filename' }, this.getThreadLabel())),
212
+ React.createElement("div", { className: 'review-actions' },
213
+ React.createElement("div", { className: 'monaco-action-bar animated' },
214
+ React.createElement("ul", { className: 'actions-container', role: 'toolbar' },
215
+ React.createElement("li", { className: 'action-item', role: 'presentation' },
216
+ React.createElement("a", { className: 'action-label codicon expand-review-action codicon-chevron-up', role: 'button', tabIndex: 0, title: 'Collapse', onClick: () => this.collapse() })))))),
217
+ React.createElement("div", { className: 'body' },
218
+ React.createElement("div", { className: 'comments-container', role: 'presentation', tabIndex: 0 }, (_a = this._commentThread.comments) === null || _a === void 0 ? void 0 : _a.map((comment, index) => React.createElement(ReviewComment, { key: index, contextKeyService: this.contextKeyService, menus: this.menus, comment: comment, commentForm: this.commentFormRef, commands: this.commands, commentThread: this._commentThread }))),
219
+ React.createElement(CommentForm, { contextKeyService: this.contextKeyService, commands: this.commands, commentThread: this._commentThread, menus: this.menus, widget: this, ref: this.commentFormRef }))));
220
+ }
221
+ }
222
+ exports.CommentThreadWidget = CommentThreadWidget;
223
+ class CommentForm extends React.Component {
224
+ constructor(props) {
225
+ super(props);
226
+ this.inputRef = React.createRef();
227
+ this.inputValue = '';
228
+ this.getInput = () => this.inputValue;
229
+ this.clearInput = () => {
230
+ const input = this.inputRef.current;
231
+ if (input) {
232
+ this.inputValue = '';
233
+ input.value = this.inputValue;
234
+ this.props.contextKeyService.commentIsEmpty.set(true);
235
+ }
236
+ };
237
+ this.expand = () => {
238
+ this.setState({ expanded: true });
239
+ // Wait for the widget to be rendered.
240
+ setTimeout(() => {
241
+ var _a;
242
+ // Update the widget's height.
243
+ this.props.widget.update();
244
+ (_a = this.inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
245
+ }, 100);
246
+ };
247
+ this.collapse = () => {
248
+ this.setState({ expanded: false });
249
+ // Wait for the widget to be rendered.
250
+ setTimeout(() => {
251
+ // Update the widget's height.
252
+ this.props.widget.update();
253
+ }, 100);
254
+ };
255
+ this.onInput = (event) => {
256
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
257
+ const value = event.target.value;
258
+ if (this.inputValue.length === 0 || value.length === 0) {
259
+ this.props.contextKeyService.commentIsEmpty.set(value.length === 0);
260
+ }
261
+ this.inputValue = value;
262
+ };
263
+ this.state = {
264
+ expanded: false
265
+ };
266
+ const setState = this.setState.bind(this);
267
+ this.setState = newState => {
268
+ setState(newState);
269
+ };
270
+ this.menu = this.props.menus.getMenu(exports.COMMENT_THREAD_CONTEXT);
271
+ this.menu.children.map(node => node instanceof common_1.ActionMenuNode && node.when).forEach(exp => {
272
+ if (typeof exp === 'string') {
273
+ this.props.contextKeyService.setExpression(exp);
274
+ }
275
+ });
276
+ }
277
+ update() {
278
+ this.setState(this.state);
279
+ }
280
+ componentDidMount() {
281
+ // Wait for the widget to be rendered.
282
+ setTimeout(() => {
283
+ var _a;
284
+ (_a = this.inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
285
+ }, 100);
286
+ }
287
+ render() {
288
+ const { commands, commentThread, contextKeyService } = this.props;
289
+ const hasExistingComments = commentThread.comments && commentThread.comments.length > 0;
290
+ return commentThread.canReply ? React.createElement("div", { className: 'comment-form' + (this.state.expanded || commentThread.comments && commentThread.comments.length === 0 ? ' expand' : '') },
291
+ React.createElement("div", { className: 'theia-comments-input-message-container' },
292
+ React.createElement("textarea", { className: 'theia-comments-input-message theia-input', spellCheck: false, placeholder: hasExistingComments ? 'Reply...' : 'Type a new comment', onInput: this.onInput,
293
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
294
+ onBlur: (event) => {
295
+ if (event.target.value.length > 0) {
296
+ return;
297
+ }
298
+ if (event.relatedTarget && event.relatedTarget.className === 'comments-button comments-text-button theia-button') {
299
+ this.state = { expanded: false };
300
+ return;
301
+ }
302
+ this.collapse();
303
+ }, ref: this.inputRef })),
304
+ React.createElement(CommentActions, { menu: this.menu, contextKeyService: contextKeyService, commands: commands, commentThread: commentThread, getInput: this.getInput, clearInput: this.clearInput }),
305
+ React.createElement("button", { className: 'review-thread-reply-button', title: 'Reply...', onClick: this.expand }, "Reply...")) : null;
306
+ }
307
+ }
308
+ exports.CommentForm = CommentForm;
309
+ class ReviewComment extends React.Component {
310
+ constructor(props) {
311
+ super(props);
312
+ this.detectHover = (element) => {
313
+ if (element) {
314
+ window.requestAnimationFrame(() => {
315
+ const hover = element.matches(':hover');
316
+ this.setState({ hover });
317
+ });
318
+ }
319
+ };
320
+ this.showHover = () => this.setState({ hover: true });
321
+ this.hideHover = () => this.setState({ hover: false });
322
+ this.state = {
323
+ hover: false
324
+ };
325
+ const setState = this.setState.bind(this);
326
+ this.setState = newState => {
327
+ setState(newState);
328
+ };
329
+ }
330
+ render() {
331
+ const { comment, commentForm, contextKeyService, menus, commands, commentThread } = this.props;
332
+ const commentUniqueId = comment.uniqueIdInThread;
333
+ const { hover } = this.state;
334
+ contextKeyService.comment.set(comment.contextValue);
335
+ return React.createElement("div", { className: 'review-comment', tabIndex: -1, "aria-label": `${comment.userName}, ${comment.body.value}`, ref: this.detectHover, onMouseEnter: this.showHover, onMouseLeave: this.hideHover },
336
+ React.createElement("div", { className: 'avatar-container' },
337
+ React.createElement("img", { className: 'avatar', src: comment.userIconPath })),
338
+ React.createElement("div", { className: 'review-comment-contents' },
339
+ React.createElement("div", { className: 'comment-title monaco-mouse-cursor-text' },
340
+ React.createElement("strong", { className: 'author' }, comment.userName),
341
+ React.createElement("small", { className: 'timestamp' }, this.localeDate(comment.timestamp)),
342
+ React.createElement("span", { className: 'isPending' }, comment.label),
343
+ React.createElement("div", { className: 'theia-comments-inline-actions-container' },
344
+ React.createElement("div", { className: 'theia-comments-inline-actions', role: 'toolbar' }, hover && menus.getMenu(exports.COMMENT_TITLE).children.map((node, index) => node instanceof common_1.ActionMenuNode &&
345
+ React.createElement(CommentsInlineAction, Object.assign({ key: index }, { node, commands, commentThread, commentUniqueId, contextKeyService })))))),
346
+ React.createElement(CommentBody, { value: comment.body.value, isVisible: comment.mode === undefined || comment.mode === plugin_api_rpc_model_1.CommentMode.Preview }),
347
+ React.createElement(CommentEditContainer, { contextKeyService: contextKeyService, menus: menus, comment: comment, commentThread: commentThread, commentForm: commentForm, commands: commands })));
348
+ }
349
+ localeDate(timestamp) {
350
+ if (timestamp === undefined) {
351
+ return '';
352
+ }
353
+ const date = new Date(timestamp);
354
+ if (!isNaN(date.getTime())) {
355
+ return date.toLocaleString();
356
+ }
357
+ return '';
358
+ }
359
+ }
360
+ exports.ReviewComment = ReviewComment;
361
+ class CommentBody extends React.Component {
362
+ render() {
363
+ const { value, isVisible } = this.props;
364
+ if (!isVisible) {
365
+ return false;
366
+ }
367
+ return React.createElement("div", { className: 'comment-body monaco-mouse-cursor-text' },
368
+ React.createElement("div", null,
369
+ React.createElement("p", null, value)));
370
+ }
371
+ }
372
+ exports.CommentBody = CommentBody;
373
+ class CommentEditContainer extends React.Component {
374
+ constructor() {
375
+ super(...arguments);
376
+ this.inputRef = React.createRef();
377
+ }
378
+ componentDidUpdate(prevProps, prevState) {
379
+ var _a;
380
+ const commentFormState = (_a = this.props.commentForm.current) === null || _a === void 0 ? void 0 : _a.state;
381
+ const mode = this.props.comment.mode;
382
+ if (this.dirtyCommentMode !== mode || (this.dirtyCommentFormState !== (commentFormState === null || commentFormState === void 0 ? void 0 : commentFormState.expanded) && !(commentFormState === null || commentFormState === void 0 ? void 0 : commentFormState.expanded))) {
383
+ const currentInput = this.inputRef.current;
384
+ if (currentInput) {
385
+ // Wait for the widget to be rendered.
386
+ setTimeout(() => {
387
+ currentInput.focus();
388
+ currentInput.setSelectionRange(currentInput.value.length, currentInput.value.length);
389
+ }, 50);
390
+ }
391
+ }
392
+ this.dirtyCommentMode = mode;
393
+ this.dirtyCommentFormState = commentFormState === null || commentFormState === void 0 ? void 0 : commentFormState.expanded;
394
+ }
395
+ render() {
396
+ const { menus, comment, commands, commentThread, contextKeyService } = this.props;
397
+ if (!(comment.mode === plugin_api_rpc_model_1.CommentMode.Editing)) {
398
+ return false;
399
+ }
400
+ return React.createElement("div", { className: 'edit-container' },
401
+ React.createElement("div", { className: 'edit-textarea' },
402
+ React.createElement("div", { className: 'theia-comments-input-message-container' },
403
+ React.createElement("textarea", { className: 'theia-comments-input-message theia-input', spellCheck: false, defaultValue: comment.body.value, ref: this.inputRef }))),
404
+ React.createElement("div", { className: 'form-actions' }, menus.getMenu(exports.COMMENT_CONTEXT).children.map((node, index) => {
405
+ const onClick = () => {
406
+ commands.executeCommand(node.id, {
407
+ thread: commentThread,
408
+ commentUniqueId: comment.uniqueIdInThread,
409
+ text: this.inputRef.current ? this.inputRef.current.value : ''
410
+ });
411
+ };
412
+ return node instanceof common_1.ActionMenuNode &&
413
+ React.createElement(CommentAction, Object.assign({ key: index }, { node, commands, onClick, contextKeyService }));
414
+ })));
415
+ }
416
+ }
417
+ exports.CommentEditContainer = CommentEditContainer;
418
+ class CommentsInlineAction extends React.Component {
419
+ render() {
420
+ const { node, commands, contextKeyService, commentThread, commentUniqueId } = this.props;
421
+ if (node.when && !contextKeyService.match(node.when)) {
422
+ return false;
423
+ }
424
+ return React.createElement("div", { className: 'theia-comments-inline-action' },
425
+ React.createElement("a", { className: node.icon, title: node.label, onClick: () => {
426
+ commands.executeCommand(node.id, {
427
+ thread: commentThread,
428
+ commentUniqueId
429
+ });
430
+ } }));
431
+ }
432
+ }
433
+ exports.CommentsInlineAction = CommentsInlineAction;
434
+ class CommentActions extends React.Component {
435
+ render() {
436
+ const { contextKeyService, commands, menu, commentThread, getInput, clearInput } = this.props;
437
+ return React.createElement("div", { className: 'form-actions' }, menu.children.map((node, index) => node instanceof common_1.ActionMenuNode &&
438
+ React.createElement(CommentAction, { key: index, commands: commands, node: node, onClick: () => {
439
+ commands.executeCommand(node.id, {
440
+ thread: commentThread,
441
+ text: getInput()
442
+ });
443
+ clearInput();
444
+ }, contextKeyService: contextKeyService })));
445
+ }
446
+ }
447
+ exports.CommentActions = CommentActions;
448
+ class CommentAction extends React.Component {
449
+ render() {
450
+ const classNames = ['comments-button', 'comments-text-button', 'theia-button'];
451
+ const { node, commands, contextKeyService, onClick } = this.props;
452
+ if (node.when && !contextKeyService.match(node.when)) {
453
+ return false;
454
+ }
455
+ const isEnabled = commands.isEnabled(node.command);
456
+ if (!isEnabled) {
457
+ classNames.push(browser_1.DISABLED_CLASS);
458
+ }
459
+ return React.createElement("button", { className: classNames.join(' '), tabIndex: 0, role: 'button', onClick: () => {
460
+ if (isEnabled) {
461
+ onClick();
462
+ }
463
+ } }, node.label);
464
+ }
465
+ }
466
+ exports.CommentAction = CommentAction;
467
467
  //# sourceMappingURL=comment-thread-widget.js.map