@theia/core 1.55.1 → 1.57.0-next.112

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 (150) hide show
  1. package/README.md +43 -39
  2. package/i18n/nls.cs.json +23 -18
  3. package/i18n/nls.de.json +23 -18
  4. package/i18n/nls.es.json +23 -18
  5. package/i18n/nls.fr.json +23 -18
  6. package/i18n/nls.hu.json +23 -18
  7. package/i18n/nls.it.json +23 -18
  8. package/i18n/nls.ja.json +23 -18
  9. package/i18n/nls.json +24 -19
  10. package/i18n/nls.ko.json +23 -18
  11. package/i18n/nls.pl.json +23 -18
  12. package/i18n/nls.pt-br.json +23 -18
  13. package/i18n/nls.ru.json +23 -18
  14. package/i18n/nls.tr.json +23 -18
  15. package/i18n/nls.zh-cn.json +23 -18
  16. package/i18n/nls.zh-tw.json +23 -18
  17. package/lib/browser/catalog.json +332 -44
  18. package/lib/browser/common-frontend-contribution.d.ts +1 -1
  19. package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
  20. package/lib/browser/common-frontend-contribution.js +24 -9
  21. package/lib/browser/common-frontend-contribution.js.map +1 -1
  22. package/lib/browser/dialogs.d.ts +3 -1
  23. package/lib/browser/dialogs.d.ts.map +1 -1
  24. package/lib/browser/dialogs.js +26 -2
  25. package/lib/browser/dialogs.js.map +1 -1
  26. package/lib/browser/frontend-application-module.d.ts.map +1 -1
  27. package/lib/browser/frontend-application-module.js +1 -0
  28. package/lib/browser/frontend-application-module.js.map +1 -1
  29. package/lib/browser/hover-service.d.ts.map +1 -1
  30. package/lib/browser/hover-service.js +12 -4
  31. package/lib/browser/hover-service.js.map +1 -1
  32. package/lib/browser/json-schema-store.d.ts +12 -1
  33. package/lib/browser/json-schema-store.d.ts.map +1 -1
  34. package/lib/browser/json-schema-store.js +31 -1
  35. package/lib/browser/json-schema-store.js.map +1 -1
  36. package/lib/browser/keybinding.js +3 -3
  37. package/lib/browser/keybinding.js.map +1 -1
  38. package/lib/browser/progress-status-bar-item.d.ts +1 -1
  39. package/lib/browser/progress-status-bar-item.d.ts.map +1 -1
  40. package/lib/browser/saveable.d.ts +1 -0
  41. package/lib/browser/saveable.d.ts.map +1 -1
  42. package/lib/browser/saveable.js +3 -0
  43. package/lib/browser/saveable.js.map +1 -1
  44. package/lib/browser/secondary-window-handler.d.ts.map +1 -1
  45. package/lib/browser/secondary-window-handler.js +1 -0
  46. package/lib/browser/secondary-window-handler.js.map +1 -1
  47. package/lib/browser/shell/application-shell.d.ts +2 -1
  48. package/lib/browser/shell/application-shell.d.ts.map +1 -1
  49. package/lib/browser/shell/application-shell.js +24 -10
  50. package/lib/browser/shell/application-shell.js.map +1 -1
  51. package/lib/browser/shell/view-contribution.d.ts.map +1 -1
  52. package/lib/browser/shell/view-contribution.js +1 -0
  53. package/lib/browser/shell/view-contribution.js.map +1 -1
  54. package/lib/browser/test/jsdom.d.ts.map +1 -1
  55. package/lib/browser/test/jsdom.js +6 -1
  56. package/lib/browser/test/jsdom.js.map +1 -1
  57. package/lib/browser/tree/tree-decorator.d.ts.map +1 -1
  58. package/lib/browser/tree/tree-decorator.js +1 -0
  59. package/lib/browser/tree/tree-decorator.js.map +1 -1
  60. package/lib/browser/tree/tree-view-welcome-widget.d.ts +17 -11
  61. package/lib/browser/tree/tree-view-welcome-widget.d.ts.map +1 -1
  62. package/lib/browser/tree/tree-view-welcome-widget.js +65 -34
  63. package/lib/browser/tree/tree-view-welcome-widget.js.map +1 -1
  64. package/lib/browser/tree/tree-widget.d.ts +6 -2
  65. package/lib/browser/tree/tree-widget.d.ts.map +1 -1
  66. package/lib/browser/tree/tree-widget.js +4 -4
  67. package/lib/browser/tree/tree-widget.js.map +1 -1
  68. package/lib/browser/widgets/select-component.js +1 -1
  69. package/lib/browser/widgets/select-component.js.map +1 -1
  70. package/lib/browser/widgets/widget.d.ts +1 -1
  71. package/lib/browser/widgets/widget.d.ts.map +1 -1
  72. package/lib/browser/widgets/widget.js +21 -6
  73. package/lib/browser/widgets/widget.js.map +1 -1
  74. package/lib/browser/window/browser-window-module.d.ts.map +1 -1
  75. package/lib/browser/window/browser-window-module.js +3 -0
  76. package/lib/browser/window/browser-window-module.js.map +1 -1
  77. package/lib/browser/window/default-secondary-window-service.d.ts +5 -0
  78. package/lib/browser/window/default-secondary-window-service.d.ts.map +1 -1
  79. package/lib/browser/window/default-secondary-window-service.js +6 -0
  80. package/lib/browser/window/default-secondary-window-service.js.map +1 -1
  81. package/lib/browser/window/secondary-window-service.d.ts +3 -0
  82. package/lib/browser/window/secondary-window-service.d.ts.map +1 -1
  83. package/lib/browser/window/secondary-window-service.js.map +1 -1
  84. package/lib/browser/window/window-title-service.d.ts +6 -0
  85. package/lib/browser/window/window-title-service.d.ts.map +1 -1
  86. package/lib/browser/window/window-title-service.js +12 -1
  87. package/lib/browser/window/window-title-service.js.map +1 -1
  88. package/lib/common/encoding-service.d.ts +1 -0
  89. package/lib/common/encoding-service.d.ts.map +1 -1
  90. package/lib/common/performance/stopwatch.d.ts.map +1 -1
  91. package/lib/common/performance/stopwatch.js +1 -0
  92. package/lib/common/performance/stopwatch.js.map +1 -1
  93. package/lib/common/resource.d.ts +2 -0
  94. package/lib/common/resource.d.ts.map +1 -1
  95. package/lib/common/resource.js +1 -0
  96. package/lib/common/resource.js.map +1 -1
  97. package/lib/common/theme.d.ts +1 -1
  98. package/lib/common/theme.d.ts.map +1 -1
  99. package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts.map +1 -1
  100. package/lib/electron-browser/menu/electron-context-menu-renderer.js +10 -2
  101. package/lib/electron-browser/menu/electron-context-menu-renderer.js.map +1 -1
  102. package/lib/electron-browser/messaging/electron-local-ws-connection-source.d.ts +1 -0
  103. package/lib/electron-browser/messaging/electron-local-ws-connection-source.d.ts.map +1 -1
  104. package/lib/electron-browser/messaging/electron-local-ws-connection-source.js +7 -1
  105. package/lib/electron-browser/messaging/electron-local-ws-connection-source.js.map +1 -1
  106. package/lib/electron-browser/window/electron-window-module.d.ts.map +1 -1
  107. package/lib/electron-browser/window/electron-window-module.js +3 -0
  108. package/lib/electron-browser/window/electron-window-module.js.map +1 -1
  109. package/lib/electron-main/electron-main-application.d.ts.map +1 -1
  110. package/lib/electron-main/electron-main-application.js +16 -14
  111. package/lib/electron-main/electron-main-application.js.map +1 -1
  112. package/lib/electron-main/theia-electron-window.d.ts.map +1 -1
  113. package/lib/electron-main/theia-electron-window.js +11 -3
  114. package/lib/electron-main/theia-electron-window.js.map +1 -1
  115. package/lib/node/messaging/test/test-web-socket-channel.d.ts.map +1 -1
  116. package/lib/node/messaging/test/test-web-socket-channel.js +7 -1
  117. package/lib/node/messaging/test/test-web-socket-channel.js.map +1 -1
  118. package/lib/node/messaging/websocket-endpoint.d.ts +1 -1
  119. package/lib/node/messaging/websocket-endpoint.d.ts.map +1 -1
  120. package/package.json +13 -13
  121. package/src/browser/common-frontend-contribution.ts +24 -9
  122. package/src/browser/dialogs.ts +28 -5
  123. package/src/browser/frontend-application-module.ts +2 -1
  124. package/src/browser/hover-service.ts +12 -5
  125. package/src/browser/json-schema-store.ts +35 -1
  126. package/src/browser/keybinding.ts +3 -3
  127. package/src/browser/saveable.ts +3 -0
  128. package/src/browser/secondary-window-handler.ts +1 -0
  129. package/src/browser/shell/application-shell.ts +27 -11
  130. package/src/browser/shell/view-contribution.ts +2 -2
  131. package/src/browser/style/dockpanel.css +10 -0
  132. package/src/browser/test/jsdom.ts +6 -1
  133. package/src/browser/tree/tree-decorator.ts +2 -2
  134. package/src/browser/tree/tree-view-welcome-widget.tsx +82 -46
  135. package/src/browser/tree/tree-widget.tsx +10 -4
  136. package/src/browser/widgets/select-component.tsx +1 -1
  137. package/src/browser/widgets/widget.ts +21 -6
  138. package/src/browser/window/browser-window-module.ts +3 -0
  139. package/src/browser/window/default-secondary-window-service.ts +7 -1
  140. package/src/browser/window/secondary-window-service.ts +3 -0
  141. package/src/browser/window/window-title-service.ts +14 -1
  142. package/src/common/performance/stopwatch.ts +2 -2
  143. package/src/common/resource.ts +4 -0
  144. package/src/common/theme.ts +1 -1
  145. package/src/electron-browser/menu/electron-context-menu-renderer.ts +10 -2
  146. package/src/electron-browser/messaging/electron-local-ws-connection-source.ts +5 -0
  147. package/src/electron-browser/window/electron-window-module.ts +3 -0
  148. package/src/electron-main/electron-main-application.ts +12 -11
  149. package/src/electron-main/theia-electron-window.ts +11 -3
  150. package/src/node/messaging/test/test-web-socket-channel.ts +6 -1
@@ -1 +1 @@
1
- {"version":3,"file":"theia-electron-window.d.ts","sourceRoot":"","sources":["../../src/electron-main/theia-electron-window.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEhG,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAMjE;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,+BAA+B;IAC9E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,eAAO,MAAM,yBAAyB,eAAsC,CAAC;AAE7E,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AACzE,MAAM,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAQhE,qBACa,mBAAmB;IAEO,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IACxD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IAC5C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,8BAA8B,CAAC;IAEnG,SAAS,CAAC,iBAAiB,gBAAuB;IAElD,IAAI,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,CAE5B;IAED,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAAoD;IAEhF,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC;IACjC,IAAI,MAAM,IAAI,aAAa,CAE1B;IAED,SAAS,CAAC,gBAAgB,UAAS;IACnC,SAAS,CAAC,gBAAgB,EAAE,wBAAwB,CAAU;IAG9D,SAAS,CAAC,IAAI,IAAI,IAAI;IAatB,SAAS,CAAC,6BAA6B,IAAI,IAAI;IAuB/C;;OAEG;IACH,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAInC,SAAS,CAAC,oBAAoB,IAAI,IAAI;cAetB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9C,KAAK,CAAC,MAAM,GAAE,UAA6B,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9D,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;cAWvB,iBAAiB,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAsB/G,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/D,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAQvC,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAMvC,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAItC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItC,OAAO,IAAI,IAAI;CAGlB;AAED,MAAM,WAAW,0BAA0B;IACvC,CAAC,OAAO,EAAE,yBAAyB,EAAE,MAAM,EAAE,yBAAyB,GAAG,mBAAmB,CAAC;CAChG;AAED,eAAO,MAAM,0BAA0B,eAAuC,CAAC"}
1
+ {"version":3,"file":"theia-electron-window.d.ts","sourceRoot":"","sources":["../../src/electron-main/theia-electron-window.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEhG,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAMjE;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,+BAA+B;IAC9E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,eAAO,MAAM,yBAAyB,eAAsC,CAAC;AAE7E,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AACzE,MAAM,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAQhE,qBACa,mBAAmB;IAEO,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IACxD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IAC5C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,8BAA8B,CAAC;IAEnG,SAAS,CAAC,iBAAiB,gBAAuB;IAElD,IAAI,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,CAE5B;IAED,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAAoD;IAEhF,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC;IACjC,IAAI,MAAM,IAAI,aAAa,CAE1B;IAED,SAAS,CAAC,gBAAgB,UAAS;IACnC,SAAS,CAAC,gBAAgB,EAAE,wBAAwB,CAAU;IAG9D,SAAS,CAAC,IAAI,IAAI,IAAI;IAatB,SAAS,CAAC,6BAA6B,IAAI,IAAI;IAuB/C;;OAEG;IACH,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAInC,SAAS,CAAC,oBAAoB,IAAI,IAAI;cAetB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9C,KAAK,CAAC,MAAM,GAAE,UAA6B,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9D,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;cAWvB,iBAAiB,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAsB/G,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/D,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAgBvC,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAMvC,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAItC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItC,OAAO,IAAI,IAAI;CAGlB;AAED,MAAM,WAAW,0BAA0B;IACvC,CAAC,OAAO,EAAE,yBAAyB,EAAE,MAAM,EAAE,yBAAyB,GAAG,mBAAmB,CAAC;CAChG;AAED,eAAO,MAAM,0BAA0B,eAAuC,CAAC"}
@@ -149,11 +149,19 @@ let TheiaElectronWindow = class TheiaElectronWindow {
149
149
  return electron_api_main_1.TheiaRendererAPI.requestClose(this.window.webContents, reason);
150
150
  }
151
151
  restoreMaximizedState() {
152
- if (this.options.isMaximized) {
153
- this._window.maximize();
152
+ const restore = () => {
153
+ if (this.options.isMaximized) {
154
+ this._window.maximize();
155
+ }
156
+ else {
157
+ this._window.unmaximize();
158
+ }
159
+ };
160
+ if (this._window.isVisible()) {
161
+ restore();
154
162
  }
155
163
  else {
156
- this._window.unmaximize();
164
+ this._window.once('show', () => restore());
157
165
  }
158
166
  }
159
167
  trackApplicationState() {
@@ -1 +1 @@
1
- {"version":3,"file":"theia-electron-window.js","sourceRoot":"","sources":["../../src/electron-main/theia-electron-window.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theia-electron-window.js","sourceRoot":"","sources":["../../src/electron-main/theia-electron-window.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"test-web-socket-channel.d.ts","sourceRoot":"","sources":["../../../../src/node/messaging/test/test-web-socket-channel.ts"],"names":[],"mappings":";;AAiBA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAA4B,yBAAyB,EAAE,MAAM,wDAAwD,CAAC;AAkB7H,qBAAa,yBAAyB;IAClC,SAAgB,kBAAkB,EAAE,yBAAyB,CAAC;gBAElD,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QACnC,IAAI,EAAE,MAAM,CAAA;KACf;IAMD,SAAS,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB;CAOnF"}
1
+ {"version":3,"file":"test-web-socket-channel.d.ts","sourceRoot":"","sources":["../../../../src/node/messaging/test/test-web-socket-channel.ts"],"names":[],"mappings":";;AAiBA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAA4B,yBAAyB,EAAE,MAAM,wDAAwD,CAAC;AAkB7H,qBAAa,yBAAyB;IAClC,SAAgB,kBAAkB,EAAE,yBAAyB,CAAC;gBAElD,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QACnC,IAAI,EAAE,MAAM,CAAA;KACf;IAWD,SAAS,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB;CAOnF"}
@@ -40,7 +40,13 @@ tslib_1.__decorate([
40
40
  class TestWebSocketChannelSetup {
41
41
  constructor({ server, path }) {
42
42
  const address = server.address();
43
- const url = `ws://${address.address}:${address.port}${common_1.servicesPath}`;
43
+ let url;
44
+ if (address.family === 'IPv6') {
45
+ url = `ws://[${address.address}]:${address.port}${common_1.servicesPath}`;
46
+ }
47
+ else {
48
+ url = `ws://${address.address}:${address.port}${common_1.servicesPath}`;
49
+ }
44
50
  this.connectionProvider = this.createConnectionProvider(url);
45
51
  }
46
52
  createConnectionProvider(socketUrl) {
@@ -1 +1 @@
1
- {"version":3,"file":"test-web-socket-channel.js","sourceRoot":"","sources":["../../../../src/node/messaging/test/test-web-socket-channel.ts"],"names":[],"mappings":";AAAA,gDAAgD;AAChD,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAKhF,4CAA+C;AAC/C,0FAA4F;AAC5F,yCAA8C;AAC9C,wGAA6H;AAC7H,oGAA+F;AAC/F,uDAA8C;AAE9C,MAAM,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAChD,MAAM,6BAA8B,SAAQ,gDAAyB;IAI9C,kBAAkB,CAAC,IAAY;QAC9C,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEkB,eAAe,CAAC,GAAW;QAC1C,OAAO,IAAA,qBAAE,EAAC,GAAG,CAAC,CAAC;IACnB,CAAC;CACJ;AATY;IADR,IAAA,kBAAM,EAAC,YAAY,CAAC;;mEACS;AAWlC,MAAa,yBAAyB;IAGlC,YAAY,EAAE,MAAM,EAAE,IAAI,EAGzB;QACG,MAAM,OAAO,GAAI,MAAM,CAAC,OAAO,EAAkB,CAAC;QAClD,MAAM,GAAG,GAAG,QAAQ,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,qBAAY,EAAE,CAAC;QACrE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAES,wBAAwB,CAAC,SAAiB;QAChD,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;QAClC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACxD,SAAS,CAAC,IAAI,CAAC,mDAAuB,CAAC,CAAC;QACxC,SAAS,CAAC,MAAM,CAAC,gDAAyB,CAAC,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC;QAC9E,OAAO,SAAS,CAAC,GAAG,CAAC,sDAAwB,CAAC,CAAC;IACnD,CAAC;CACJ;AAnBD,8DAmBC"}
1
+ {"version":3,"file":"test-web-socket-channel.js","sourceRoot":"","sources":["../../../../src/node/messaging/test/test-web-socket-channel.ts"],"names":[],"mappings":";AAAA,gDAAgD;AAChD,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAKhF,4CAA+C;AAC/C,0FAA4F;AAC5F,yCAA8C;AAC9C,wGAA6H;AAC7H,oGAA+F;AAC/F,uDAA8C;AAE9C,MAAM,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAChD,MAAM,6BAA8B,SAAQ,gDAAyB;IAI9C,kBAAkB,CAAC,IAAY;QAC9C,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEkB,eAAe,CAAC,GAAW;QAC1C,OAAO,IAAA,qBAAE,EAAC,GAAG,CAAC,CAAC;IACnB,CAAC;CACJ;AATY;IADR,IAAA,kBAAM,EAAC,YAAY,CAAC;;mEACS;AAWlC,MAAa,yBAAyB;IAGlC,YAAY,EAAE,MAAM,EAAE,IAAI,EAGzB;QACG,MAAM,OAAO,GAAI,MAAM,CAAC,OAAO,EAAkB,CAAC;QAClD,IAAI,GAAG,CAAC;QACR,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5B,GAAG,GAAG,SAAS,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,GAAG,qBAAY,EAAE,CAAC;QACrE,CAAC;aAAM,CAAC;YACJ,GAAG,GAAG,QAAQ,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,qBAAY,EAAE,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAES,wBAAwB,CAAC,SAAiB;QAChD,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;QAClC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACxD,SAAS,CAAC,IAAI,CAAC,mDAAuB,CAAC,CAAC;QACxC,SAAS,CAAC,MAAM,CAAC,gDAAyB,CAAC,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC;QAC9E,OAAO,SAAS,CAAC,GAAG,CAAC,sDAAwB,CAAC,CAAC;IACnD,CAAC;CACJ;AAxBD,8DAwBC"}
@@ -13,7 +13,7 @@ export declare class WebsocketEndpoint implements BackendApplicationContribution
13
13
  protected readonly messagingListener: MessagingListener;
14
14
  protected checkAliveTimeout: number;
15
15
  protected maxHttpBufferSize: number;
16
- protected readonly wsHandlers: ConnectionHandlers<Socket<import("socket.io/dist/typed-events").DefaultEventsMap, import("socket.io/dist/typed-events").DefaultEventsMap, import("socket.io/dist/typed-events").DefaultEventsMap, any>>;
16
+ protected readonly wsHandlers: ConnectionHandlers<Socket<import("socket.io").DefaultEventsMap, import("socket.io").DefaultEventsMap, import("socket.io").DefaultEventsMap, any>>;
17
17
  registerConnectionHandler(spec: string, callback: (params: MessagingService.PathParams, socket: Socket) => void): void;
18
18
  onStart(server: http.Server | https.Server): void;
19
19
  protected allowConnect(request: http.IncomingMessage): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-endpoint.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/websocket-endpoint.ts"],"names":[],"mappings":";;AAeA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAU,MAAM,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAExE,qBACa,iBAAkB,YAAW,8BAA8B;IAEpE,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,SAAS,CAAC,iBAAiB,SAAS;IACpC,SAAS,CAAC,iBAAiB,SAAO;IAElC,SAAS,CAAC,QAAQ,CAAC,UAAU,0MAAoC;IAEjE,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAItH,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI;cAqBjC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;cAQ7D,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMlE"}
1
+ {"version":3,"file":"websocket-endpoint.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/websocket-endpoint.ts"],"names":[],"mappings":";;AAeA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAU,MAAM,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAExE,qBACa,iBAAkB,YAAW,8BAA8B;IAEpE,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,SAAS,CAAC,iBAAiB,SAAS;IACpC,SAAS,CAAC,iBAAiB,SAAO;IAElC,SAAS,CAAC,QAAQ,CAAC,UAAU,oJAAoC;IAEjE,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAItH,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI;cAqBjC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;cAQ7D,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMlE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theia/core",
3
- "version": "1.55.1",
3
+ "version": "1.57.0-next.112+f4778c273",
4
4
  "description": "Theia is a cloud & desktop IDE framework implemented in TypeScript.",
5
5
  "main": "lib/common/index.js",
6
6
  "typings": "lib/common/index.d.ts",
@@ -17,8 +17,8 @@
17
17
  "@phosphor/signaling": "1",
18
18
  "@phosphor/virtualdom": "1",
19
19
  "@phosphor/widgets": "1",
20
- "@theia/application-package": "1.55.1",
21
- "@theia/request": "1.55.1",
20
+ "@theia/application-package": "1.57.0-next.112+f4778c273",
21
+ "@theia/request": "1.57.0-next.112+f4778c273",
22
22
  "@types/body-parser": "^1.16.4",
23
23
  "@types/cookie": "^0.3.3",
24
24
  "@types/dompurify": "^2.2.2",
@@ -40,7 +40,7 @@
40
40
  "body-parser": "^1.17.2",
41
41
  "cookie": "^0.4.0",
42
42
  "dompurify": "^2.2.9",
43
- "drivelist": "^9.0.2",
43
+ "drivelist": "^12.0.2",
44
44
  "es6-promise": "^4.2.4",
45
45
  "express": "^4.21.0",
46
46
  "fast-json-stable-stringify": "^2.1.0",
@@ -51,20 +51,20 @@
51
51
  "http-proxy-agent": "^5.0.0",
52
52
  "https-proxy-agent": "^5.0.0",
53
53
  "iconv-lite": "^0.6.0",
54
- "inversify": "^6.0.1",
54
+ "inversify": "^6.1.3",
55
55
  "jschardet": "^2.1.1",
56
- "keytar": "7.2.0",
56
+ "keytar": "7.9.0",
57
57
  "lodash.debounce": "^4.0.8",
58
58
  "lodash.throttle": "^4.1.1",
59
59
  "markdown-it": "^12.3.2",
60
60
  "msgpackr": "^1.10.2",
61
61
  "p-debounce": "^2.1.0",
62
- "perfect-scrollbar": "^1.3.0",
62
+ "perfect-scrollbar": "^1.5.5",
63
63
  "react": "^18.2.0",
64
64
  "react-dom": "^18.2.0",
65
65
  "react-tooltip": "^4.2.21",
66
66
  "react-virtuoso": "^2.17.0",
67
- "reflect-metadata": "^0.1.10",
67
+ "reflect-metadata": "^0.2.2",
68
68
  "route-parser": "^0.0.5",
69
69
  "safer-buffer": "^2.1.2",
70
70
  "socket.io": "^4.5.3",
@@ -201,22 +201,22 @@
201
201
  "clean": "theiaext clean",
202
202
  "compile": "theiaext compile",
203
203
  "generate-layout": "electron ./scripts/generate-layout",
204
+ "afterInstall": "npm run generate-theia-re-exports && npm run download:json-schema",
204
205
  "generate-theia-re-exports": "theia-re-exports generate && theia-re-exports template README_TEMPLATE.md > README.md",
205
206
  "lint": "theiaext lint",
206
- "prepare": "yarn -s generate-theia-re-exports && yarn download:json-schema",
207
207
  "download:json-schema": "node ./scripts/download-catalog.js",
208
208
  "test": "theiaext test",
209
- "version": "yarn -s generate-theia-re-exports",
209
+ "version": "npm run -s generate-theia-re-exports",
210
210
  "watch": "theiaext watch"
211
211
  },
212
212
  "devDependencies": {
213
- "@theia/ext-scripts": "1.55.1",
214
- "@theia/re-exports": "1.55.1",
213
+ "@theia/ext-scripts": "1.58.0",
214
+ "@theia/re-exports": "1.58.0",
215
215
  "minimist": "^1.2.0",
216
216
  "nodejs-file-downloader": "4.13.0"
217
217
  },
218
218
  "nyc": {
219
219
  "extends": "../../configs/nyc.json"
220
220
  },
221
- "gitHead": "be4713a778be16ba831af63a6fbd43b2301e882d"
221
+ "gitHead": "f4778c2737bb75613f0e1f99da8996bad91f6e17"
222
222
  }
@@ -68,6 +68,7 @@ import { UNTITLED_SCHEME, UntitledResourceResolver } from '../common';
68
68
  import { LanguageQuickPickService } from './i18n/language-quick-pick-service';
69
69
  import { SidebarMenu } from './shell/sidebar-menu-widget';
70
70
  import { UndoRedoHandlerService } from './undo-redo-handler';
71
+ import { timeout } from '../common/promise-util';
71
72
 
72
73
  export namespace CommonMenus {
73
74
 
@@ -291,13 +292,16 @@ export namespace CommonCommands {
291
292
  id: 'workbench.action.files.newFile',
292
293
  category: FILE_CATEGORY
293
294
  });
295
+ // This command immediately opens a new untitled text file
296
+ // Some VS Code extensions use this command to create new files
294
297
  export const NEW_UNTITLED_TEXT_FILE = Command.toDefaultLocalizedCommand({
295
- id: 'workbench.action.files.newUntitledTextFile',
298
+ id: 'workbench.action.files.newUntitledFile',
296
299
  category: FILE_CATEGORY,
297
300
  label: 'New Untitled Text File'
298
301
  });
299
- export const NEW_UNTITLED_FILE = Command.toDefaultLocalizedCommand({
300
- id: 'workbench.action.files.newUntitledFile',
302
+ // This command opens a quick pick to select a file type to create
303
+ export const PICK_NEW_FILE = Command.toDefaultLocalizedCommand({
304
+ id: 'workbench.action.files.pickNewFile',
301
305
  category: CREATE_CATEGORY,
302
306
  label: 'New File...'
303
307
  });
@@ -766,7 +770,7 @@ export class CommonFrontendContribution implements FrontendApplicationContributi
766
770
  });
767
771
 
768
772
  registry.registerMenuAction(CommonMenus.FILE_NEW_TEXT, {
769
- commandId: CommonCommands.NEW_UNTITLED_FILE.id,
773
+ commandId: CommonCommands.PICK_NEW_FILE.id,
770
774
  label: nls.localizeByDefault('New File...'),
771
775
  order: 'a1'
772
776
  });
@@ -924,7 +928,13 @@ export class CommonFrontendContribution implements FrontendApplicationContributi
924
928
  execute: () => this.shell.closeTabs('main', title => title.closable)
925
929
  });
926
930
  commandRegistry.registerCommand(CommonCommands.COLLAPSE_PANEL, new CurrentWidgetCommandAdapter(this.shell, {
927
- isEnabled: (_title, tabbar) => Boolean(tabbar && ApplicationShell.isSideArea(this.shell.getAreaFor(tabbar))),
931
+ isEnabled: (_title, tabbar) => {
932
+ if (tabbar) {
933
+ const area = this.shell.getAreaFor(tabbar);
934
+ return ApplicationShell.isSideArea(area) && this.shell.isExpanded(area);
935
+ }
936
+ return false;
937
+ },
928
938
  isVisible: (_title, tabbar) => Boolean(tabbar && ApplicationShell.isSideArea(this.shell.getAreaFor(tabbar))),
929
939
  execute: (_title, tabbar) => tabbar && this.shell.collapsePanel(this.shell.getAreaFor(tabbar)!)
930
940
  }));
@@ -1021,10 +1031,15 @@ export class CommonFrontendContribution implements FrontendApplicationContributi
1021
1031
  execute: async () => {
1022
1032
  const untitledUri = this.untitledResourceResolver.createUntitledURI('', await this.workingDirProvider.getUserWorkingDir());
1023
1033
  this.untitledResourceResolver.resolve(untitledUri);
1024
- return open(this.openerService, untitledUri);
1034
+ const editor = await open(this.openerService, untitledUri);
1035
+ // Wait for all of the listeners of the `onDidOpen` event to be notified
1036
+ await timeout(50);
1037
+ // Afterwards, we can return from the command with the newly created editor
1038
+ // If we don't wait, we return from the command before the plugin API has been notified of the new editor
1039
+ return editor;
1025
1040
  }
1026
1041
  });
1027
- commandRegistry.registerCommand(CommonCommands.NEW_UNTITLED_FILE, {
1042
+ commandRegistry.registerCommand(CommonCommands.PICK_NEW_FILE, {
1028
1043
  execute: async () => this.showNewFilePicker()
1029
1044
  });
1030
1045
 
@@ -1181,7 +1196,7 @@ export class CommonFrontendContribution implements FrontendApplicationContributi
1181
1196
  keybinding: this.isElectron() ? 'ctrlcmd+n' : 'alt+n',
1182
1197
  },
1183
1198
  {
1184
- command: CommonCommands.NEW_UNTITLED_FILE.id,
1199
+ command: CommonCommands.PICK_NEW_FILE.id,
1185
1200
  keybinding: 'ctrlcmd+alt+n'
1186
1201
  }
1187
1202
  );
@@ -1199,7 +1214,7 @@ export class CommonFrontendContribution implements FrontendApplicationContributi
1199
1214
  }
1200
1215
 
1201
1216
  protected async openAbout(): Promise<void> {
1202
- this.aboutDialog.open();
1217
+ this.aboutDialog.open(false);
1203
1218
  }
1204
1219
 
1205
1220
  protected shouldPreventClose = false;
@@ -14,7 +14,7 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
- import { injectable, inject } from 'inversify';
17
+ import { injectable, inject, unmanaged } from 'inversify';
18
18
  import { Disposable, MaybePromise, CancellationTokenSource, nls } from '../common';
19
19
  import { Key } from './keyboard/keys';
20
20
  import { Widget, BaseWidget, Message, addKeyListener, codiconArray } from './widgets/widget';
@@ -151,8 +151,8 @@ export abstract class AbstractDialog<T> extends BaseWidget {
151
151
  protected activeElement: HTMLElement | undefined;
152
152
 
153
153
  constructor(
154
- protected readonly props: DialogProps,
155
- options?: Widget.IOptions
154
+ @unmanaged() protected readonly props: DialogProps,
155
+ @unmanaged() options?: Widget.IOptions
156
156
  ) {
157
157
  super(options);
158
158
  this.id = 'theia-dialog-shell';
@@ -236,10 +236,17 @@ export abstract class AbstractDialog<T> extends BaseWidget {
236
236
  this.addAcceptAction(this.acceptButton, 'click');
237
237
  }
238
238
  this.addCloseAction(this.closeCrossNode, 'click');
239
+ this.toDisposeOnDetach.push(this.preventTabbingOutsideDialog());
239
240
  // TODO: use DI always to create dialog instances
240
241
  this.toDisposeOnDetach.push(DialogOverlayService.get().push(this));
241
242
  }
242
243
 
244
+ protected preventTabbingOutsideDialog(): Disposable {
245
+ const nonInertSiblings = Array.from(this.node.ownerDocument.body.children).filter(child => child !== this.node && !(child.hasAttribute('inert')));
246
+ nonInertSiblings.forEach(child => child.setAttribute('inert', ''));
247
+ return Disposable.create(() => nonInertSiblings.forEach(child => child.removeAttribute('inert')));
248
+ }
249
+
243
250
  protected handleEscape(event: KeyboardEvent): boolean | void {
244
251
  this.close();
245
252
  }
@@ -258,13 +265,15 @@ export abstract class AbstractDialog<T> extends BaseWidget {
258
265
  }
259
266
  }
260
267
 
261
- open(): Promise<T | undefined> {
268
+ open(disposeOnResolve: boolean = true): Promise<T | undefined> {
262
269
  if (this.resolve) {
263
270
  return Promise.reject(new Error('The dialog is already opened.'));
264
271
  }
265
272
  this.activeElement = this.node.ownerDocument.activeElement as HTMLElement;
266
273
  return new Promise<T | undefined>((resolve, reject) => {
267
- this.resolve = resolve;
274
+ this.resolve = value => {
275
+ resolve(value);
276
+ };
268
277
  this.reject = reject;
269
278
  this.toDisposeOnDetach.push(Disposable.create(() => {
270
279
  this.resolve = undefined;
@@ -273,9 +282,23 @@ export abstract class AbstractDialog<T> extends BaseWidget {
273
282
 
274
283
  Widget.attach(this, this.node.ownerDocument.body);
275
284
  this.activate();
285
+ }).finally(() => {
286
+ if (disposeOnResolve) {
287
+ this.dispose();
288
+ }
276
289
  });
277
290
  }
278
291
 
292
+ protected override onCloseRequest(msg: Message): void {
293
+ // super.onCloseRequest() would automatically dispose the dialog, which we don't want because we're reusing it
294
+ if (this.parent) {
295
+ // eslint-disable-next-line no-null/no-null
296
+ this.parent = null;
297
+ } else if (this.isAttached) {
298
+ Widget.detach(this);
299
+ }
300
+ }
301
+
279
302
  override close(): void {
280
303
  if (this.resolve) {
281
304
  if (this.activeElement) {
@@ -65,7 +65,7 @@ import { WebSocketConnectionProvider } from './messaging';
65
65
  import { AboutDialog, AboutDialogProps } from './about-dialog';
66
66
  import { EnvVariablesServer, envVariablesPath, EnvVariable } from './../common/env-variables';
67
67
  import { FrontendApplicationStateService } from './frontend-application-state';
68
- import { JsonSchemaStore, JsonSchemaContribution, DefaultJsonSchemaContribution } from './json-schema-store';
68
+ import { JsonSchemaStore, JsonSchemaContribution, DefaultJsonSchemaContribution, JsonSchemaDataStore } from './json-schema-store';
69
69
  import { TabBarToolbarRegistry, TabBarToolbarContribution, TabBarToolbarFactory, TabBarToolbar } from './shell/tab-bar-toolbar';
70
70
  import { bindCorePreferences, CorePreferences } from './core-preferences';
71
71
  import { ContextKeyService, ContextKeyServiceDummyImpl } from './context-key-service';
@@ -342,6 +342,7 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
342
342
  bindContributionProvider(bind, JsonSchemaContribution);
343
343
  bind(JsonSchemaStore).toSelf().inSingletonScope();
344
344
  bind(FrontendApplicationContribution).toService(JsonSchemaStore);
345
+ bind(JsonSchemaDataStore).toSelf().inSingletonScope();
345
346
  bind(DefaultJsonSchemaContribution).toSelf().inSingletonScope();
346
347
  bind(JsonSchemaContribution).toService(DefaultJsonSchemaContribution);
347
348
 
@@ -25,6 +25,10 @@ import '../../src/browser/style/hover-service.css';
25
25
 
26
26
  export type HoverPosition = 'left' | 'right' | 'top' | 'bottom';
27
27
 
28
+ // Threshold, in milliseconds, over which a mouse movement is not considered
29
+ // quick enough as to be ignored
30
+ const quickMouseThresholdMillis = 200;
31
+
28
32
  export namespace HoverPosition {
29
33
  export function invertIfNecessary(position: HoverPosition, target: DOMRect, host: DOMRect, totalWidth: number, totalHeight: number): HoverPosition {
30
34
  if (position === 'left') {
@@ -100,11 +104,13 @@ export class HoverService {
100
104
  if (request.target !== this.hoverTarget) {
101
105
  this.cancelHover();
102
106
  this.pendingTimeout = disposableTimeout(() => this.renderHover(request), this.getHoverDelay());
107
+ this.hoverTarget = request.target;
108
+ this.listenForMouseOut();
103
109
  }
104
110
  }
105
111
 
106
112
  protected getHoverDelay(): number {
107
- return Date.now() - this.lastHidHover < 200
113
+ return Date.now() - this.lastHidHover < quickMouseThresholdMillis
108
114
  ? 0
109
115
  : this.preferences.get('workbench.hover.delay', isOSX ? 1500 : 500);
110
116
  }
@@ -116,7 +122,6 @@ export class HoverService {
116
122
  if (cssClasses) {
117
123
  host.classList.add(...cssClasses);
118
124
  }
119
- this.hoverTarget = target;
120
125
  if (content instanceof HTMLElement) {
121
126
  host.appendChild(content);
122
127
  firstChild = content;
@@ -155,8 +160,6 @@ export class HoverService {
155
160
  }
156
161
  }
157
162
  });
158
-
159
- this.listenForMouseOut();
160
163
  }
161
164
 
162
165
  protected setHostPosition(target: HTMLElement, host: HTMLElement, position: HoverPosition): HoverPosition {
@@ -197,7 +200,11 @@ export class HoverService {
197
200
  protected listenForMouseOut(): void {
198
201
  const handleMouseMove = (e: MouseEvent) => {
199
202
  if (e.target instanceof Node && !this.hoverHost.contains(e.target) && !this.hoverTarget?.contains(e.target)) {
200
- this.cancelHover();
203
+ this.disposeOnHide.push(disposableTimeout(() => {
204
+ if (!this.hoverHost.matches(':hover') && !this.hoverTarget?.matches(':hover')) {
205
+ this.cancelHover();
206
+ }
207
+ }, quickMouseThresholdMillis));
201
208
  }
202
209
  };
203
210
  document.addEventListener('mousemove', handleMouseMove);
@@ -17,8 +17,9 @@
17
17
  import { injectable, inject, named } from 'inversify';
18
18
  import { ContributionProvider } from '../common/contribution-provider';
19
19
  import { FrontendApplicationContribution } from './frontend-application-contribution';
20
- import { MaybePromise } from '../common';
20
+ import { Emitter, MaybePromise, URI } from '../common';
21
21
  import { timeout, Deferred } from '../common/promise-util';
22
+ import { IJSONSchema } from '../common/json-schema';
22
23
 
23
24
  export interface JsonSchemaConfiguration {
24
25
  fileMatch: string | string[];
@@ -91,6 +92,39 @@ export class JsonSchemaStore implements FrontendApplicationContribution {
91
92
 
92
93
  }
93
94
 
95
+ @injectable()
96
+ export class JsonSchemaDataStore {
97
+
98
+ protected readonly _schemas = new Map<string, string>();
99
+
100
+ protected readonly onDidSchemaUpdateEmitter = new Emitter<URI>();
101
+ readonly onDidSchemaUpdate = this.onDidSchemaUpdateEmitter.event;
102
+
103
+ hasSchema(uri: URI): boolean {
104
+ return this._schemas.has(uri.toString());
105
+ }
106
+
107
+ getSchema(uri: URI): string | undefined {
108
+ return this._schemas.get(uri.toString());
109
+ }
110
+
111
+ setSchema(uri: URI, schema: IJSONSchema | string): void {
112
+ this._schemas.set(uri.toString(), typeof schema === 'string' ? schema : JSON.stringify(schema));
113
+ this.notifySchemaUpdate(uri);
114
+ }
115
+
116
+ deleteSchema(uri: URI): void {
117
+ if (this._schemas.delete(uri.toString())) {
118
+ this.notifySchemaUpdate(uri);
119
+ }
120
+ }
121
+
122
+ notifySchemaUpdate(uri: URI): void {
123
+ this.onDidSchemaUpdateEmitter.fire(uri);
124
+ }
125
+
126
+ }
127
+
94
128
  @injectable()
95
129
  export class DefaultJsonSchemaContribution implements JsonSchemaContribution {
96
130
  async registerSchemas(context: JsonSchemaRegisterContext): Promise<void> {
@@ -622,15 +622,15 @@ export class KeybindingRegistry {
622
622
  matchKeybinding(keySequence: KeySequence, event?: KeyboardEvent): KeybindingRegistry.Match {
623
623
  let disabled: Set<string> | undefined;
624
624
  const isEnabled = (binding: ScopedKeybinding) => {
625
- if (event && !this.isEnabled(binding, event)) {
626
- return false;
627
- }
628
625
  const { command, context, when, keybinding } = binding;
629
626
  if (!this.isUsable(binding)) {
630
627
  disabled = disabled || new Set<string>();
631
628
  disabled.add(JSON.stringify({ command: command.substring(1), context, when, keybinding }));
632
629
  return false;
633
630
  }
631
+ if (event && !this.isEnabled(binding, event)) {
632
+ return false;
633
+ }
634
634
  return !disabled?.has(JSON.stringify({ command, context, when, keybinding }));
635
635
  };
636
636
 
@@ -392,4 +392,7 @@ export class ShouldSaveDialog extends AbstractDialog<boolean> {
392
392
  return this.shouldSave;
393
393
  }
394
394
 
395
+ override async open(disposeOnResolve?: boolean): Promise<boolean | undefined> {
396
+ return super.open(disposeOnResolve);
397
+ }
395
398
  }
@@ -140,6 +140,7 @@ export class SecondaryWindowHandler {
140
140
  widget.secondaryWindow = newWindow;
141
141
  const rootWidget = new SecondaryWindowRootWidget();
142
142
  rootWidget.addClass('secondary-widget-root');
143
+ rootWidget.addClass('monaco-workbench'); // needed for compatility with VSCode styles
143
144
  Widget.attach(rootWidget, element);
144
145
  rootWidget.addWidget(widget);
145
146
  widget.show();
@@ -22,7 +22,7 @@ import {
22
22
  } from '@phosphor/widgets';
23
23
  import { Message } from '@phosphor/messaging';
24
24
  import { IDragEvent } from '@phosphor/dragdrop';
25
- import { RecursivePartial, Event as CommonEvent, DisposableCollection, Disposable, environment, isObject } from '../../common';
25
+ import { RecursivePartial, Event as CommonEvent, DisposableCollection, Disposable, environment, isObject, UntitledResourceResolver, UNTITLED_SCHEME } from '../../common';
26
26
  import { animationFrame } from '../browser';
27
27
  import { Saveable, SaveableWidget, SaveOptions } from '../saveable';
28
28
  import { StatusBarImpl, StatusBarEntry, StatusBarAlignment } from '../status-bar/status-bar';
@@ -232,6 +232,9 @@ export class ApplicationShell extends Widget {
232
232
  @inject(OpenerService)
233
233
  protected readonly openerService: OpenerService;
234
234
 
235
+ @inject(UntitledResourceResolver)
236
+ protected readonly untitledResourceResolver: UntitledResourceResolver;
237
+
235
238
  protected readonly onDidAddWidgetEmitter = new Emitter<Widget>();
236
239
  readonly onDidAddWidget = this.onDidAddWidgetEmitter.event;
237
240
  protected fireDidAddWidget(widget: Widget): void {
@@ -323,6 +326,7 @@ export class ApplicationShell extends Widget {
323
326
 
324
327
  protected initializeShell(): void {
325
328
  this.addClass(APPLICATION_SHELL_CLASS);
329
+ this.addClass('monaco-workbench'); // needed for compatility with VSCode styles
326
330
  this.id = 'theia-app-shell';
327
331
 
328
332
  this.mainPanel = this.createMainPanel();
@@ -572,16 +576,28 @@ export class ApplicationShell extends Widget {
572
576
  uris.forEach(openUri);
573
577
  } else if (event.dataTransfer.files?.length > 0) {
574
578
  // the files were dragged from the outside the workspace
575
- Array.from(event.dataTransfer.files).forEach(file => {
576
- if (file.path) {
577
- const fileUri = URI.fromComponents({
578
- scheme: 'file',
579
- path: file.path,
580
- authority: '',
581
- query: '',
582
- fragment: ''
583
- });
584
- openUri(fileUri);
579
+ Array.from(event.dataTransfer.files).forEach(async file => {
580
+ if (environment.electron.is()) {
581
+ if (file.path) {
582
+ const fileUri = URI.fromFilePath(file.path);
583
+ openUri(fileUri);
584
+ }
585
+ } else {
586
+ const fileContent = await file.text();
587
+ const fileName = file.name;
588
+ const uri = new URI(`${UNTITLED_SCHEME}:/${fileName}`);
589
+ // Only create a new untitled resource if it doesn't already exist.
590
+ // VS Code does the same thing, and there's not really a better solution,
591
+ // since we want to keep the original name of the file,
592
+ // but also to prevent duplicates of the same file.
593
+ if (!this.untitledResourceResolver.has(uri)) {
594
+ const untitledResource = await this.untitledResourceResolver.createUntitledResource(
595
+ fileContent,
596
+ undefined,
597
+ new URI(`${UNTITLED_SCHEME}:/${fileName}`)
598
+ );
599
+ openUri(untitledResource.uri);
600
+ }
585
601
  }
586
602
  });
587
603
  }
@@ -14,7 +14,7 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
- import { injectable, inject, interfaces, optional } from 'inversify';
17
+ import { injectable, inject, interfaces, optional, unmanaged } from 'inversify';
18
18
  import { Widget } from '@phosphor/widgets';
19
19
  import {
20
20
  MenuModelRegistry, Command, CommandContribution,
@@ -64,7 +64,7 @@ export abstract class AbstractViewContribution<T extends Widget> implements Comm
64
64
  readonly toggleCommand?: Command;
65
65
 
66
66
  constructor(
67
- protected readonly options: ViewContributionOptions
67
+ @unmanaged() protected readonly options: ViewContributionOptions
68
68
  ) {
69
69
  if (options.toggleCommandId) {
70
70
  this.toggleCommand = {
@@ -14,6 +14,16 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
 
17
+ /*
18
+ * phosphor.js sets the z-index of its panels to 0, which causes overlay issues
19
+ * See also https://github.com/eclipse-theia/theia/issues/14290
20
+ */
21
+ .p-SplitPanel-child,
22
+ .p-DockPanel,
23
+ .p-DockPanel-widget {
24
+ z-index: initial;
25
+ }
26
+
17
27
  .p-DockPanel.p-SplitPanel-child {
18
28
  padding: 0px;
19
29
  }