@theia/monaco 1.67.0-next.56 → 1.67.0-next.59

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 (265) hide show
  1. package/lib/browser/content-hover-widget-patcher.d.ts +9 -0
  2. package/lib/browser/content-hover-widget-patcher.d.ts.map +1 -0
  3. package/lib/browser/content-hover-widget-patcher.js +63 -0
  4. package/lib/browser/content-hover-widget-patcher.js.map +1 -0
  5. package/lib/browser/default-content-hover-widget-patcher.d.ts +9 -0
  6. package/lib/browser/default-content-hover-widget-patcher.d.ts.map +1 -0
  7. package/lib/browser/default-content-hover-widget-patcher.js +49 -0
  8. package/lib/browser/default-content-hover-widget-patcher.js.map +1 -0
  9. package/lib/browser/index.d.ts +3 -0
  10. package/lib/browser/index.d.ts.map +1 -0
  11. package/lib/browser/index.js +21 -0
  12. package/lib/browser/index.js.map +1 -0
  13. package/lib/browser/markdown-renderer/monaco-markdown-renderer.d.ts +21 -0
  14. package/lib/browser/markdown-renderer/monaco-markdown-renderer.d.ts.map +1 -0
  15. package/lib/browser/markdown-renderer/monaco-markdown-renderer.js +115 -0
  16. package/lib/browser/markdown-renderer/monaco-markdown-renderer.js.map +1 -0
  17. package/lib/browser/monaco-bulk-edit-service.d.ts +13 -0
  18. package/lib/browser/monaco-bulk-edit-service.d.ts.map +1 -0
  19. package/lib/browser/monaco-bulk-edit-service.js +59 -0
  20. package/lib/browser/monaco-bulk-edit-service.js.map +1 -0
  21. package/lib/browser/monaco-code-action-save-participant.d.ts +11 -0
  22. package/lib/browser/monaco-code-action-save-participant.d.ts.map +1 -0
  23. package/lib/browser/monaco-code-action-save-participant.js +48 -0
  24. package/lib/browser/monaco-code-action-save-participant.js.map +1 -0
  25. package/lib/browser/monaco-code-action-service.d.ts +41 -0
  26. package/lib/browser/monaco-code-action-service.d.ts.map +1 -0
  27. package/lib/browser/monaco-code-action-service.js +132 -0
  28. package/lib/browser/monaco-code-action-service.js.map +1 -0
  29. package/lib/browser/monaco-color-registry.d.ts +17 -0
  30. package/lib/browser/monaco-color-registry.d.ts.map +1 -0
  31. package/lib/browser/monaco-color-registry.js +78 -0
  32. package/lib/browser/monaco-color-registry.js.map +1 -0
  33. package/lib/browser/monaco-command-registry.d.ts +20 -0
  34. package/lib/browser/monaco-command-registry.d.ts.map +1 -0
  35. package/lib/browser/monaco-command-registry.js +81 -0
  36. package/lib/browser/monaco-command-registry.js.map +1 -0
  37. package/lib/browser/monaco-command-service.d.ts +22 -0
  38. package/lib/browser/monaco-command-service.d.ts.map +1 -0
  39. package/lib/browser/monaco-command-service.js +83 -0
  40. package/lib/browser/monaco-command-service.js.map +1 -0
  41. package/lib/browser/monaco-command.d.ts +89 -0
  42. package/lib/browser/monaco-command.d.ts.map +1 -0
  43. package/lib/browser/monaco-command.js +303 -0
  44. package/lib/browser/monaco-command.js.map +1 -0
  45. package/lib/browser/monaco-context-key-service.d.ts +24 -0
  46. package/lib/browser/monaco-context-key-service.d.ts.map +1 -0
  47. package/lib/browser/monaco-context-key-service.js +151 -0
  48. package/lib/browser/monaco-context-key-service.js.map +1 -0
  49. package/lib/browser/monaco-context-menu.d.ts +22 -0
  50. package/lib/browser/monaco-context-menu.d.ts.map +1 -0
  51. package/lib/browser/monaco-context-menu.js +140 -0
  52. package/lib/browser/monaco-context-menu.js.map +1 -0
  53. package/lib/browser/monaco-diff-computer.d.ts +6 -0
  54. package/lib/browser/monaco-diff-computer.d.ts.map +1 -0
  55. package/lib/browser/monaco-diff-computer.js +57 -0
  56. package/lib/browser/monaco-diff-computer.js.map +1 -0
  57. package/lib/browser/monaco-diff-editor.d.ts +42 -0
  58. package/lib/browser/monaco-diff-editor.d.ts.map +1 -0
  59. package/lib/browser/monaco-diff-editor.js +142 -0
  60. package/lib/browser/monaco-diff-editor.js.map +1 -0
  61. package/lib/browser/monaco-diff-navigator-factory.d.ts +7 -0
  62. package/lib/browser/monaco-diff-navigator-factory.d.ts.map +1 -0
  63. package/lib/browser/monaco-diff-navigator-factory.js +41 -0
  64. package/lib/browser/monaco-diff-navigator-factory.js.map +1 -0
  65. package/lib/browser/monaco-editor-content-menu.d.ts +20 -0
  66. package/lib/browser/monaco-editor-content-menu.d.ts.map +1 -0
  67. package/lib/browser/monaco-editor-content-menu.js +118 -0
  68. package/lib/browser/monaco-editor-content-menu.js.map +1 -0
  69. package/lib/browser/monaco-editor-model.d.ts +172 -0
  70. package/lib/browser/monaco-editor-model.d.ts.map +1 -0
  71. package/lib/browser/monaco-editor-model.js +536 -0
  72. package/lib/browser/monaco-editor-model.js.map +1 -0
  73. package/lib/browser/monaco-editor-overlay-button.d.ts +14 -0
  74. package/lib/browser/monaco-editor-overlay-button.d.ts.map +1 -0
  75. package/lib/browser/monaco-editor-overlay-button.js +58 -0
  76. package/lib/browser/monaco-editor-overlay-button.js.map +1 -0
  77. package/lib/browser/monaco-editor-peek-view-widget.d.ts +74 -0
  78. package/lib/browser/monaco-editor-peek-view-widget.d.ts.map +1 -0
  79. package/lib/browser/monaco-editor-peek-view-widget.js +194 -0
  80. package/lib/browser/monaco-editor-peek-view-widget.js.map +1 -0
  81. package/lib/browser/monaco-editor-provider.d.ts +100 -0
  82. package/lib/browser/monaco-editor-provider.d.ts.map +1 -0
  83. package/lib/browser/monaco-editor-provider.js +493 -0
  84. package/lib/browser/monaco-editor-provider.js.map +1 -0
  85. package/lib/browser/monaco-editor-service.d.ts +41 -0
  86. package/lib/browser/monaco-editor-service.d.ts.map +1 -0
  87. package/lib/browser/monaco-editor-service.js +167 -0
  88. package/lib/browser/monaco-editor-service.js.map +1 -0
  89. package/lib/browser/monaco-editor-zone-widget.d.ts +44 -0
  90. package/lib/browser/monaco-editor-zone-widget.d.ts.map +1 -0
  91. package/lib/browser/monaco-editor-zone-widget.js +195 -0
  92. package/lib/browser/monaco-editor-zone-widget.js.map +1 -0
  93. package/lib/browser/monaco-editor.d.ts +169 -0
  94. package/lib/browser/monaco-editor.d.ts.map +1 -0
  95. package/lib/browser/monaco-editor.js +638 -0
  96. package/lib/browser/monaco-editor.js.map +1 -0
  97. package/lib/browser/monaco-formatting-conflicts.d.ts +15 -0
  98. package/lib/browser/monaco-formatting-conflicts.d.ts.map +1 -0
  99. package/lib/browser/monaco-formatting-conflicts.js +104 -0
  100. package/lib/browser/monaco-formatting-conflicts.js.map +1 -0
  101. package/lib/browser/monaco-frontend-application-contribution.d.ts +32 -0
  102. package/lib/browser/monaco-frontend-application-contribution.d.ts.map +1 -0
  103. package/lib/browser/monaco-frontend-application-contribution.js +208 -0
  104. package/lib/browser/monaco-frontend-application-contribution.js.map +1 -0
  105. package/lib/browser/monaco-frontend-module.d.ts +8 -0
  106. package/lib/browser/monaco-frontend-module.d.ts.map +1 -0
  107. package/lib/browser/monaco-frontend-module.js +299 -0
  108. package/lib/browser/monaco-frontend-module.js.map +1 -0
  109. package/lib/browser/monaco-gotoline-quick-access.d.ts +12 -0
  110. package/lib/browser/monaco-gotoline-quick-access.d.ts.map +1 -0
  111. package/lib/browser/monaco-gotoline-quick-access.js +54 -0
  112. package/lib/browser/monaco-gotoline-quick-access.js.map +1 -0
  113. package/lib/browser/monaco-gotosymbol-quick-access.d.ts +17 -0
  114. package/lib/browser/monaco-gotosymbol-quick-access.d.ts.map +1 -0
  115. package/lib/browser/monaco-gotosymbol-quick-access.js +60 -0
  116. package/lib/browser/monaco-gotosymbol-quick-access.js.map +1 -0
  117. package/lib/browser/monaco-icon-registry.d.ts +11 -0
  118. package/lib/browser/monaco-icon-registry.d.ts.map +1 -0
  119. package/lib/browser/monaco-icon-registry.js +48 -0
  120. package/lib/browser/monaco-icon-registry.js.map +1 -0
  121. package/lib/browser/monaco-indexed-db.d.ts +29 -0
  122. package/lib/browser/monaco-indexed-db.d.ts.map +1 -0
  123. package/lib/browser/monaco-indexed-db.js +127 -0
  124. package/lib/browser/monaco-indexed-db.js.map +1 -0
  125. package/lib/browser/monaco-init.d.ts +6 -0
  126. package/lib/browser/monaco-init.d.ts.map +1 -0
  127. package/lib/browser/monaco-init.js +165 -0
  128. package/lib/browser/monaco-init.js.map +1 -0
  129. package/lib/browser/monaco-keybinding.d.ts +17 -0
  130. package/lib/browser/monaco-keybinding.d.ts.map +1 -0
  131. package/lib/browser/monaco-keybinding.js +127 -0
  132. package/lib/browser/monaco-keybinding.js.map +1 -0
  133. package/lib/browser/monaco-keycode-map.d.ts +3 -0
  134. package/lib/browser/monaco-keycode-map.d.ts.map +1 -0
  135. package/lib/browser/monaco-keycode-map.js +164 -0
  136. package/lib/browser/monaco-keycode-map.js.map +1 -0
  137. package/lib/browser/monaco-languages.d.ts +36 -0
  138. package/lib/browser/monaco-languages.d.ts.map +1 -0
  139. package/lib/browser/monaco-languages.js +173 -0
  140. package/lib/browser/monaco-languages.js.map +1 -0
  141. package/lib/browser/monaco-marker-collection.d.ts +19 -0
  142. package/lib/browser/monaco-marker-collection.d.ts.map +1 -0
  143. package/lib/browser/monaco-marker-collection.js +71 -0
  144. package/lib/browser/monaco-marker-collection.js.map +1 -0
  145. package/lib/browser/monaco-menu.d.ts +21 -0
  146. package/lib/browser/monaco-menu.d.ts.map +1 -0
  147. package/lib/browser/monaco-menu.js +141 -0
  148. package/lib/browser/monaco-menu.js.map +1 -0
  149. package/lib/browser/monaco-mime-service.d.ts +11 -0
  150. package/lib/browser/monaco-mime-service.d.ts.map +1 -0
  151. package/lib/browser/monaco-mime-service.js +71 -0
  152. package/lib/browser/monaco-mime-service.js.map +1 -0
  153. package/lib/browser/monaco-outline-contribution.d.ts +79 -0
  154. package/lib/browser/monaco-outline-contribution.d.ts.map +1 -0
  155. package/lib/browser/monaco-outline-contribution.js +377 -0
  156. package/lib/browser/monaco-outline-contribution.js.map +1 -0
  157. package/lib/browser/monaco-outline-decorator.d.ts +13 -0
  158. package/lib/browser/monaco-outline-decorator.d.ts.map +1 -0
  159. package/lib/browser/monaco-outline-decorator.js +63 -0
  160. package/lib/browser/monaco-outline-decorator.js.map +1 -0
  161. package/lib/browser/monaco-quick-access-registry.d.ts +12 -0
  162. package/lib/browser/monaco-quick-access-registry.d.ts.map +1 -0
  163. package/lib/browser/monaco-quick-access-registry.js +92 -0
  164. package/lib/browser/monaco-quick-access-registry.js.map +1 -0
  165. package/lib/browser/monaco-quick-input-service.d.ts +110 -0
  166. package/lib/browser/monaco-quick-input-service.d.ts.map +1 -0
  167. package/lib/browser/monaco-quick-input-service.js +591 -0
  168. package/lib/browser/monaco-quick-input-service.js.map +1 -0
  169. package/lib/browser/monaco-resolved-keybinding.d.ts +24 -0
  170. package/lib/browser/monaco-resolved-keybinding.d.ts.map +1 -0
  171. package/lib/browser/monaco-resolved-keybinding.js +132 -0
  172. package/lib/browser/monaco-resolved-keybinding.js.map +1 -0
  173. package/lib/browser/monaco-snippet-suggest-provider.d.ts +67 -0
  174. package/lib/browser/monaco-snippet-suggest-provider.d.ts.map +1 -0
  175. package/lib/browser/monaco-snippet-suggest-provider.js +266 -0
  176. package/lib/browser/monaco-snippet-suggest-provider.js.map +1 -0
  177. package/lib/browser/monaco-standalone-theme-service.d.ts +8 -0
  178. package/lib/browser/monaco-standalone-theme-service.d.ts.map +1 -0
  179. package/lib/browser/monaco-standalone-theme-service.js +51 -0
  180. package/lib/browser/monaco-standalone-theme-service.js.map +1 -0
  181. package/lib/browser/monaco-status-bar-contribution.d.ts +18 -0
  182. package/lib/browser/monaco-status-bar-contribution.d.ts.map +1 -0
  183. package/lib/browser/monaco-status-bar-contribution.js +105 -0
  184. package/lib/browser/monaco-status-bar-contribution.js.map +1 -0
  185. package/lib/browser/monaco-text-model-service.d.ts +59 -0
  186. package/lib/browser/monaco-text-model-service.d.ts.map +1 -0
  187. package/lib/browser/monaco-text-model-service.js +157 -0
  188. package/lib/browser/monaco-text-model-service.js.map +1 -0
  189. package/lib/browser/monaco-theming-service.d.ts +68 -0
  190. package/lib/browser/monaco-theming-service.d.ts.map +1 -0
  191. package/lib/browser/monaco-theming-service.js +164 -0
  192. package/lib/browser/monaco-theming-service.js.map +1 -0
  193. package/lib/browser/monaco-to-protocol-converter.d.ts +29 -0
  194. package/lib/browser/monaco-to-protocol-converter.d.ts.map +1 -0
  195. package/lib/browser/monaco-to-protocol-converter.js +74 -0
  196. package/lib/browser/monaco-to-protocol-converter.js.map +1 -0
  197. package/lib/browser/monaco-undo-redo-handler.d.ts +20 -0
  198. package/lib/browser/monaco-undo-redo-handler.d.ts.map +1 -0
  199. package/lib/browser/monaco-undo-redo-handler.js +72 -0
  200. package/lib/browser/monaco-undo-redo-handler.js.map +1 -0
  201. package/lib/browser/monaco-utilities.d.ts +3 -0
  202. package/lib/browser/monaco-utilities.d.ts.map +1 -0
  203. package/lib/browser/monaco-utilities.js +45 -0
  204. package/lib/browser/monaco-utilities.js.map +1 -0
  205. package/lib/browser/monaco-workspace-context-service.d.ts +26 -0
  206. package/lib/browser/monaco-workspace-context-service.d.ts.map +1 -0
  207. package/lib/browser/monaco-workspace-context-service.js +63 -0
  208. package/lib/browser/monaco-workspace-context-service.js.map +1 -0
  209. package/lib/browser/monaco-workspace.d.ts +85 -0
  210. package/lib/browser/monaco-workspace.d.ts.map +1 -0
  211. package/lib/browser/monaco-workspace.js +378 -0
  212. package/lib/browser/monaco-workspace.js.map +1 -0
  213. package/lib/browser/protocol-to-monaco-converter.d.ts +32 -0
  214. package/lib/browser/protocol-to-monaco-converter.d.ts.map +1 -0
  215. package/lib/browser/protocol-to-monaco-converter.js +129 -0
  216. package/lib/browser/protocol-to-monaco-converter.js.map +1 -0
  217. package/lib/browser/simple-monaco-editor.d.ts +49 -0
  218. package/lib/browser/simple-monaco-editor.d.ts.map +1 -0
  219. package/lib/browser/simple-monaco-editor.js +199 -0
  220. package/lib/browser/simple-monaco-editor.js.map +1 -0
  221. package/lib/browser/textmate/index.d.ts +5 -0
  222. package/lib/browser/textmate/index.d.ts.map +1 -0
  223. package/lib/browser/textmate/index.js +23 -0
  224. package/lib/browser/textmate/index.js.map +1 -0
  225. package/lib/browser/textmate/monaco-textmate-frontend-bindings.d.ts +12 -0
  226. package/lib/browser/textmate/monaco-textmate-frontend-bindings.d.ts.map +1 -0
  227. package/lib/browser/textmate/monaco-textmate-frontend-bindings.js +92 -0
  228. package/lib/browser/textmate/monaco-textmate-frontend-bindings.js.map +1 -0
  229. package/lib/browser/textmate/monaco-textmate-service.d.ts +31 -0
  230. package/lib/browser/textmate/monaco-textmate-service.d.ts.map +1 -0
  231. package/lib/browser/textmate/monaco-textmate-service.js +178 -0
  232. package/lib/browser/textmate/monaco-textmate-service.js.map +1 -0
  233. package/lib/browser/textmate/monaco-theme-registry.d.ts +28 -0
  234. package/lib/browser/textmate/monaco-theme-registry.d.ts.map +1 -0
  235. package/lib/browser/textmate/monaco-theme-registry.js +165 -0
  236. package/lib/browser/textmate/monaco-theme-registry.js.map +1 -0
  237. package/lib/browser/textmate/monaco-theme-types.d.ts +20 -0
  238. package/lib/browser/textmate/monaco-theme-types.d.ts.map +1 -0
  239. package/lib/browser/textmate/monaco-theme-types.js +22 -0
  240. package/lib/browser/textmate/monaco-theme-types.js.map +1 -0
  241. package/lib/browser/textmate/textmate-contribution.d.ts +10 -0
  242. package/lib/browser/textmate/textmate-contribution.d.ts.map +1 -0
  243. package/lib/browser/textmate/textmate-contribution.js +28 -0
  244. package/lib/browser/textmate/textmate-contribution.js.map +1 -0
  245. package/lib/browser/textmate/textmate-registry.d.ts +32 -0
  246. package/lib/browser/textmate/textmate-registry.d.ts.map +1 -0
  247. package/lib/browser/textmate/textmate-registry.js +105 -0
  248. package/lib/browser/textmate/textmate-registry.js.map +1 -0
  249. package/lib/browser/textmate/textmate-snippet-completion-provider.d.ts +27 -0
  250. package/lib/browser/textmate/textmate-snippet-completion-provider.d.ts.map +1 -0
  251. package/lib/browser/textmate/textmate-snippet-completion-provider.js +54 -0
  252. package/lib/browser/textmate/textmate-snippet-completion-provider.js.map +1 -0
  253. package/lib/browser/textmate/textmate-tokenizer.d.ts +23 -0
  254. package/lib/browser/textmate/textmate-tokenizer.d.ts.map +1 -0
  255. package/lib/browser/textmate/textmate-tokenizer.js +66 -0
  256. package/lib/browser/textmate/textmate-tokenizer.js.map +1 -0
  257. package/lib/browser/workspace-symbol-command.d.ts +56 -0
  258. package/lib/browser/workspace-symbol-command.d.ts.map +1 -0
  259. package/lib/browser/workspace-symbol-command.js +208 -0
  260. package/lib/browser/workspace-symbol-command.js.map +1 -0
  261. package/lib/package.spec.d.ts +1 -0
  262. package/lib/package.spec.d.ts.map +1 -0
  263. package/lib/package.spec.js +26 -0
  264. package/lib/package.spec.js.map +1 -0
  265. package/package.json +8 -8
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2017 TypeFox and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.MonacoResolvedKeybinding = void 0;
19
+ const keybindings_1 = require("@theia/monaco-editor-core/esm/vs/base/common/keybindings");
20
+ const keybindingLabels_1 = require("@theia/monaco-editor-core/esm/vs/base/common/keybindingLabels");
21
+ const usLayoutResolvedKeybinding_1 = require("@theia/monaco-editor-core/esm/vs/platform/keybinding/common/usLayoutResolvedKeybinding");
22
+ const MonacoPlatform = require("@theia/monaco-editor-core/esm/vs/base/common/platform");
23
+ const keys_1 = require("@theia/core/lib/browser/keys");
24
+ const os_1 = require("@theia/core/lib/common/os");
25
+ const monaco_keycode_map_1 = require("./monaco-keycode-map");
26
+ class MonacoResolvedKeybinding extends keybindings_1.ResolvedKeybinding {
27
+ constructor(keySequence, keybindingService) {
28
+ super();
29
+ this.keySequence = keySequence;
30
+ this.chords = keySequence.map(keyCode => {
31
+ // eslint-disable-next-line no-null/no-null
32
+ const keyLabel = keyCode.key ? keybindingService.acceleratorForKey(keyCode.key) : null;
33
+ const keyAriaLabel = keyLabel;
34
+ return new keybindings_1.ResolvedChord(keyCode.ctrl, keyCode.shift, keyCode.alt, keyCode.meta, keyLabel, keyAriaLabel);
35
+ });
36
+ }
37
+ getLabel() {
38
+ return keybindingLabels_1.UILabelProvider.toLabel(MonacoPlatform.OS, this.chords, p => p.keyLabel);
39
+ }
40
+ getAriaLabel() {
41
+ return keybindingLabels_1.UILabelProvider.toLabel(MonacoPlatform.OS, this.chords, p => p.keyAriaLabel);
42
+ }
43
+ getElectronAccelerator() {
44
+ if (this.hasMultipleChords()) {
45
+ // Electron cannot handle chords
46
+ // eslint-disable-next-line no-null/no-null
47
+ return null;
48
+ }
49
+ return keybindingLabels_1.ElectronAcceleratorLabelProvider.toLabel(MonacoPlatform.OS, this.chords, p => p.keyLabel);
50
+ }
51
+ getUserSettingsLabel() {
52
+ return keybindingLabels_1.UserSettingsLabelProvider.toLabel(MonacoPlatform.OS, this.chords, p => p.keyLabel);
53
+ }
54
+ isWYSIWYG() {
55
+ return true;
56
+ }
57
+ hasMultipleChords() {
58
+ return this.chords.length > 1;
59
+ }
60
+ getDispatchChords() {
61
+ return this.keySequence.map(keyCode => usLayoutResolvedKeybinding_1.USLayoutResolvedKeybinding.getDispatchStr(this.toKeybinding(keyCode)));
62
+ }
63
+ getSingleModifierDispatchChords() {
64
+ return this.keySequence.map(keybinding => this.getSingleModifierDispatchPart(keybinding));
65
+ }
66
+ getSingleModifierDispatchPart(code) {
67
+ var _a, _b, _c, _d, _e;
68
+ if (((_a = code.key) === null || _a === void 0 ? void 0 : _a.keyCode) === undefined) {
69
+ return null; // eslint-disable-line no-null/no-null
70
+ }
71
+ if (monaco_keycode_map_1.KEY_CODE_MAP[(_b = code.key) === null || _b === void 0 ? void 0 : _b.keyCode] === 5 /* MonacoKeyCode.Ctrl */ && !code.shift && !code.alt && !code.meta) {
72
+ return 'ctrl';
73
+ }
74
+ if (monaco_keycode_map_1.KEY_CODE_MAP[(_c = code.key) === null || _c === void 0 ? void 0 : _c.keyCode] === 4 /* MonacoKeyCode.Shift */ && !code.ctrl && !code.alt && !code.meta) {
75
+ return 'shift';
76
+ }
77
+ if (monaco_keycode_map_1.KEY_CODE_MAP[(_d = code.key) === null || _d === void 0 ? void 0 : _d.keyCode] === 6 /* MonacoKeyCode.Alt */ && !code.shift && !code.ctrl && !code.meta) {
78
+ return 'alt';
79
+ }
80
+ if (monaco_keycode_map_1.KEY_CODE_MAP[(_e = code.key) === null || _e === void 0 ? void 0 : _e.keyCode] === 57 /* MonacoKeyCode.Meta */ && !code.shift && !code.alt && !code.ctrl) {
81
+ return 'meta';
82
+ }
83
+ return null; // eslint-disable-line no-null/no-null
84
+ }
85
+ toKeybinding(keyCode) {
86
+ return new keybindings_1.KeyCodeChord(keyCode.ctrl, keyCode.shift, keyCode.alt, keyCode.meta, monaco_keycode_map_1.KEY_CODE_MAP[keyCode.key.keyCode]);
87
+ }
88
+ getChords() {
89
+ return this.chords;
90
+ }
91
+ static toKeybinding(keybindings) {
92
+ return keybindings.map(binding => this.keyCode(binding)).join(' ');
93
+ }
94
+ static keyCode(keybinding) {
95
+ const keyCode = keybinding instanceof keybindings_1.KeyCodeChord ? keybinding.keyCode : usLayoutResolvedKeybinding_1.USLayoutResolvedKeybinding['_scanCodeToKeyCode'](keybinding.scanCode);
96
+ const sequence = {
97
+ first: keys_1.Key.getKey(this.monaco2BrowserKeyCode(keyCode & 0xff)),
98
+ modifiers: []
99
+ };
100
+ if (keybinding.ctrlKey) {
101
+ if (os_1.isOSX) {
102
+ sequence.modifiers.push(keys_1.KeyModifier.MacCtrl);
103
+ }
104
+ else {
105
+ sequence.modifiers.push(keys_1.KeyModifier.CtrlCmd);
106
+ }
107
+ }
108
+ if (keybinding.shiftKey) {
109
+ sequence.modifiers.push(keys_1.KeyModifier.Shift);
110
+ }
111
+ if (keybinding.altKey) {
112
+ sequence.modifiers.push(keys_1.KeyModifier.Alt);
113
+ }
114
+ if (keybinding.metaKey && sequence.modifiers.indexOf(keys_1.KeyModifier.CtrlCmd) === -1) {
115
+ sequence.modifiers.push(keys_1.KeyModifier.CtrlCmd);
116
+ }
117
+ return keys_1.KeyCode.createKeyCode(sequence);
118
+ }
119
+ static keySequence(keybinding) {
120
+ return keybinding.map(part => this.keyCode(part));
121
+ }
122
+ static monaco2BrowserKeyCode(keyCode) {
123
+ for (let i = 0; i < monaco_keycode_map_1.KEY_CODE_MAP.length; i++) {
124
+ if (monaco_keycode_map_1.KEY_CODE_MAP[i] === keyCode) {
125
+ return i;
126
+ }
127
+ }
128
+ return -1;
129
+ }
130
+ }
131
+ exports.MonacoResolvedKeybinding = MonacoResolvedKeybinding;
132
+ //# sourceMappingURL=monaco-resolved-keybinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monaco-resolved-keybinding.js","sourceRoot":"","sources":["../../src/browser/monaco-resolved-keybinding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import URI from '@theia/core/lib/common/uri';
2
+ import { Disposable, DisposableCollection } from '@theia/core/lib/common/disposable';
3
+ import { FileService } from '@theia/filesystem/lib/browser/file-service';
4
+ import * as monaco from '@theia/monaco-editor-core';
5
+ export declare class MonacoSnippetSuggestProvider implements monaco.languages.CompletionItemProvider {
6
+ private static readonly _maxPrefix;
7
+ protected readonly fileService: FileService;
8
+ protected readonly snippets: Map<string, Snippet[]>;
9
+ protected readonly pendingSnippets: Map<string, Promise<void>[]>;
10
+ provideCompletionItems(model: monaco.editor.ITextModel, position: monaco.Position, context: monaco.languages.CompletionContext): Promise<monaco.languages.CompletionList | undefined>;
11
+ resolveCompletionItem?(item: monaco.languages.CompletionItem, token: monaco.CancellationToken): monaco.languages.CompletionItem;
12
+ protected loadSnippets(scope: string): Promise<void>;
13
+ fromURI(uri: string | URI, options: SnippetLoadOptions): Disposable;
14
+ /**
15
+ * should NOT throw to prevent load errors on suggest
16
+ */
17
+ protected loadURI(uri: string | URI, options: SnippetLoadOptions, toDispose: DisposableCollection): Promise<void>;
18
+ fromJSON(snippets: JsonSerializedSnippets | undefined, { language, source }: SnippetLoadOptions): Disposable;
19
+ protected parseSnippets(snippets: JsonSerializedSnippets | undefined, accept: (name: string, snippet: JsonSerializedSnippet) => void): void;
20
+ push(...snippets: Snippet[]): Disposable;
21
+ protected isPatternInWord(patternLow: string, patternPos: number, patternLen: number, wordLow: string, wordPos: number, wordLen: number): boolean;
22
+ }
23
+ export interface SnippetLoadOptions {
24
+ language?: string | string[];
25
+ source: string;
26
+ }
27
+ export interface JsonSerializedSnippets {
28
+ [name: string]: JsonSerializedSnippet | {
29
+ [name: string]: JsonSerializedSnippet;
30
+ };
31
+ }
32
+ export interface JsonSerializedSnippet {
33
+ isFileTemplate?: boolean;
34
+ body: string | string[];
35
+ scope?: string;
36
+ prefix?: string | string[];
37
+ description: string;
38
+ }
39
+ export declare namespace JsonSerializedSnippet {
40
+ function is(obj: unknown): obj is JsonSerializedSnippet;
41
+ }
42
+ export interface Snippet {
43
+ readonly isFileTemplate: boolean;
44
+ readonly scopes: string[];
45
+ readonly name: string;
46
+ readonly prefix: string;
47
+ readonly description: string;
48
+ readonly body: string;
49
+ readonly source: string;
50
+ }
51
+ export declare class MonacoSnippetSuggestion implements monaco.languages.CompletionItem {
52
+ protected readonly snippet: Snippet;
53
+ readonly range: monaco.Range;
54
+ readonly label: string;
55
+ readonly detail: string;
56
+ readonly sortText: string;
57
+ readonly noAutoAccept = true;
58
+ readonly kind = monaco.languages.CompletionItemKind.Snippet;
59
+ readonly insertTextRules = monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet;
60
+ insertText: string;
61
+ documentation?: monaco.IMarkdownString;
62
+ constructor(snippet: Snippet, range: monaco.Range);
63
+ protected resolved: boolean;
64
+ resolve(): MonacoSnippetSuggestion;
65
+ static compareByLabel(a: MonacoSnippetSuggestion, b: MonacoSnippetSuggestion): number;
66
+ }
67
+ //# sourceMappingURL=monaco-snippet-suggest-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monaco-snippet-suggest-provider.d.ts","sourceRoot":"","sources":["../../src/browser/monaco-snippet-suggest-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,266 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2019 TypeFox and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ /*---------------------------------------------------------------------------------------------
18
+ * Copyright (c) Microsoft Corporation. All rights reserved.
19
+ * Licensed under the MIT License. See License.txt in the project root for license information.
20
+ *--------------------------------------------------------------------------------------------*/
21
+ var MonacoSnippetSuggestProvider_1;
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.MonacoSnippetSuggestion = exports.JsonSerializedSnippet = exports.MonacoSnippetSuggestProvider = void 0;
24
+ const tslib_1 = require("tslib");
25
+ const jsoncparser = require("jsonc-parser");
26
+ const inversify_1 = require("@theia/core/shared/inversify");
27
+ const uri_1 = require("@theia/core/lib/common/uri");
28
+ const disposable_1 = require("@theia/core/lib/common/disposable");
29
+ const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
30
+ const files_1 = require("@theia/filesystem/lib/common/files");
31
+ const monaco = require("@theia/monaco-editor-core");
32
+ const snippetParser_1 = require("@theia/monaco-editor-core/esm/vs/editor/contrib/snippet/browser/snippetParser");
33
+ const common_1 = require("@theia/core/lib/common");
34
+ let MonacoSnippetSuggestProvider = MonacoSnippetSuggestProvider_1 = class MonacoSnippetSuggestProvider {
35
+ constructor() {
36
+ this.snippets = new Map();
37
+ this.pendingSnippets = new Map();
38
+ }
39
+ async provideCompletionItems(model, position, context) {
40
+ // copied and modified from https://github.com/microsoft/vscode/blob/master/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.ts
41
+ if (position.column >= MonacoSnippetSuggestProvider_1._maxPrefix) {
42
+ return undefined;
43
+ }
44
+ if (context.triggerKind === monaco.languages.CompletionTriggerKind.TriggerCharacter && context.triggerCharacter === ' ') {
45
+ // no snippets when suggestions have been triggered by space
46
+ return undefined;
47
+ }
48
+ const languageId = model.getLanguageId(); // TODO: look up a language id at the position
49
+ await this.loadSnippets(languageId);
50
+ const snippetsForLanguage = this.snippets.get(languageId) || [];
51
+ const pos = { lineNumber: position.lineNumber, column: 1 };
52
+ const lineOffsets = [];
53
+ const linePrefixLow = model.getLineContent(position.lineNumber).substring(0, position.column - 1).toLowerCase();
54
+ const endsInWhitespace = linePrefixLow.match(/\s$/);
55
+ while (pos.column < position.column) {
56
+ const word = model.getWordAtPosition(pos);
57
+ if (word) {
58
+ // at a word
59
+ lineOffsets.push(word.startColumn - 1);
60
+ pos.column = word.endColumn + 1;
61
+ if (word.endColumn - 1 < linePrefixLow.length && !/\s/.test(linePrefixLow[word.endColumn - 1])) {
62
+ lineOffsets.push(word.endColumn - 1);
63
+ }
64
+ }
65
+ else if (!/\s/.test(linePrefixLow[pos.column - 1])) {
66
+ // at a none-whitespace character
67
+ lineOffsets.push(pos.column - 1);
68
+ pos.column += 1;
69
+ }
70
+ else {
71
+ // always advance!
72
+ pos.column += 1;
73
+ }
74
+ }
75
+ const availableSnippets = new Set();
76
+ snippetsForLanguage.forEach(availableSnippets.add, availableSnippets);
77
+ const suggestions = [];
78
+ for (const start of lineOffsets) {
79
+ availableSnippets.forEach(snippet => {
80
+ if (this.isPatternInWord(linePrefixLow, start, linePrefixLow.length, snippet.prefix.toLowerCase(), 0, snippet.prefix.length)) {
81
+ suggestions.push(new MonacoSnippetSuggestion(snippet, monaco.Range.fromPositions(position.delta(0, -(linePrefixLow.length - start)), position)));
82
+ availableSnippets.delete(snippet);
83
+ }
84
+ });
85
+ }
86
+ if (endsInWhitespace || lineOffsets.length === 0) {
87
+ // add remaining snippets when the current prefix ends in whitespace or when no
88
+ // interesting positions have been found
89
+ availableSnippets.forEach(snippet => {
90
+ suggestions.push(new MonacoSnippetSuggestion(snippet, monaco.Range.fromPositions(position)));
91
+ });
92
+ }
93
+ // disambiguate suggestions with same labels
94
+ suggestions.sort(MonacoSnippetSuggestion.compareByLabel);
95
+ return { suggestions };
96
+ }
97
+ resolveCompletionItem(item, token) {
98
+ return item instanceof MonacoSnippetSuggestion ? item.resolve() : item;
99
+ }
100
+ async loadSnippets(scope) {
101
+ const pending = [];
102
+ pending.push(...(this.pendingSnippets.get(scope) || []));
103
+ pending.push(...(this.pendingSnippets.get('*') || []));
104
+ if (pending.length) {
105
+ await Promise.all(pending);
106
+ }
107
+ }
108
+ fromURI(uri, options) {
109
+ const toDispose = new disposable_1.DisposableCollection(disposable_1.Disposable.create(() => { }));
110
+ const pending = this.loadURI(uri, options, toDispose);
111
+ const { language } = options;
112
+ const scopes = Array.isArray(language) ? language : !!language ? [language] : ['*'];
113
+ for (const scope of scopes) {
114
+ const pendingSnippets = this.pendingSnippets.get(scope) || [];
115
+ pendingSnippets.push(pending);
116
+ this.pendingSnippets.set(scope, pendingSnippets);
117
+ toDispose.push(disposable_1.Disposable.create(() => {
118
+ const index = pendingSnippets.indexOf(pending);
119
+ if (index !== -1) {
120
+ pendingSnippets.splice(index, 1);
121
+ }
122
+ }));
123
+ }
124
+ return toDispose;
125
+ }
126
+ /**
127
+ * should NOT throw to prevent load errors on suggest
128
+ */
129
+ async loadURI(uri, options, toDispose) {
130
+ try {
131
+ const resource = typeof uri === 'string' ? new uri_1.default(uri) : uri;
132
+ const { value } = await this.fileService.read(resource);
133
+ if (toDispose.disposed) {
134
+ return;
135
+ }
136
+ const snippets = value && jsoncparser.parse(value, undefined, { disallowComments: false });
137
+ toDispose.push(this.fromJSON(snippets, options));
138
+ }
139
+ catch (e) {
140
+ if (!(e instanceof files_1.FileOperationError)) {
141
+ console.error(e);
142
+ }
143
+ }
144
+ }
145
+ fromJSON(snippets, { language, source }) {
146
+ const toDispose = new disposable_1.DisposableCollection();
147
+ this.parseSnippets(snippets, (name, snippet) => {
148
+ const { isFileTemplate, prefix, body, description } = snippet;
149
+ const parsedBody = Array.isArray(body) ? body.join('\n') : body;
150
+ const parsedPrefixes = !prefix ? [''] : Array.isArray(prefix) ? prefix : [prefix];
151
+ if (typeof parsedBody !== 'string') {
152
+ return;
153
+ }
154
+ const scopes = [];
155
+ if (language) {
156
+ if (Array.isArray(language)) {
157
+ scopes.push(...language);
158
+ }
159
+ else {
160
+ scopes.push(language);
161
+ }
162
+ }
163
+ else if (typeof snippet.scope === 'string') {
164
+ for (const rawScope of snippet.scope.split(',')) {
165
+ const scope = rawScope.trim();
166
+ if (scope) {
167
+ scopes.push(scope);
168
+ }
169
+ }
170
+ }
171
+ parsedPrefixes.forEach(parsedPrefix => toDispose.push(this.push({
172
+ isFileTemplate: Boolean(isFileTemplate),
173
+ scopes,
174
+ name,
175
+ prefix: parsedPrefix,
176
+ description,
177
+ body: parsedBody,
178
+ source
179
+ })));
180
+ });
181
+ return toDispose;
182
+ }
183
+ parseSnippets(snippets, accept) {
184
+ for (const [name, scopeOrTemplate] of Object.entries(snippets !== null && snippets !== void 0 ? snippets : {})) {
185
+ if (JsonSerializedSnippet.is(scopeOrTemplate)) {
186
+ accept(name, scopeOrTemplate);
187
+ }
188
+ else {
189
+ // eslint-disable-next-line @typescript-eslint/no-shadow
190
+ for (const [name, template] of Object.entries(scopeOrTemplate)) {
191
+ accept(name, template);
192
+ }
193
+ }
194
+ }
195
+ }
196
+ push(...snippets) {
197
+ const toDispose = new disposable_1.DisposableCollection();
198
+ for (const snippet of snippets) {
199
+ for (const scope of snippet.scopes) {
200
+ const languageSnippets = this.snippets.get(scope) || [];
201
+ languageSnippets.push(snippet);
202
+ this.snippets.set(scope, languageSnippets);
203
+ toDispose.push(disposable_1.Disposable.create(() => {
204
+ const index = languageSnippets.indexOf(snippet);
205
+ if (index !== -1) {
206
+ languageSnippets.splice(index, 1);
207
+ }
208
+ }));
209
+ }
210
+ }
211
+ return toDispose;
212
+ }
213
+ isPatternInWord(patternLow, patternPos, patternLen, wordLow, wordPos, wordLen) {
214
+ while (patternPos < patternLen && wordPos < wordLen) {
215
+ if (patternLow[patternPos] === wordLow[wordPos]) {
216
+ patternPos += 1;
217
+ }
218
+ wordPos += 1;
219
+ }
220
+ return patternPos === patternLen; // pattern must be exhausted
221
+ }
222
+ };
223
+ exports.MonacoSnippetSuggestProvider = MonacoSnippetSuggestProvider;
224
+ MonacoSnippetSuggestProvider._maxPrefix = 10000;
225
+ tslib_1.__decorate([
226
+ (0, inversify_1.inject)(file_service_1.FileService),
227
+ tslib_1.__metadata("design:type", file_service_1.FileService)
228
+ ], MonacoSnippetSuggestProvider.prototype, "fileService", void 0);
229
+ exports.MonacoSnippetSuggestProvider = MonacoSnippetSuggestProvider = MonacoSnippetSuggestProvider_1 = tslib_1.__decorate([
230
+ (0, inversify_1.injectable)()
231
+ ], MonacoSnippetSuggestProvider);
232
+ var JsonSerializedSnippet;
233
+ (function (JsonSerializedSnippet) {
234
+ function is(obj) {
235
+ return (0, common_1.isObject)(obj) && 'body' in obj;
236
+ }
237
+ JsonSerializedSnippet.is = is;
238
+ })(JsonSerializedSnippet || (exports.JsonSerializedSnippet = JsonSerializedSnippet = {}));
239
+ class MonacoSnippetSuggestion {
240
+ constructor(snippet, range) {
241
+ this.snippet = snippet;
242
+ this.range = range;
243
+ this.noAutoAccept = true;
244
+ this.kind = monaco.languages.CompletionItemKind.Snippet;
245
+ this.insertTextRules = monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet;
246
+ this.resolved = false;
247
+ this.label = snippet.prefix;
248
+ this.detail = `${snippet.description || snippet.name} (${snippet.source})`;
249
+ this.insertText = snippet.body;
250
+ this.sortText = `z-${snippet.prefix}`;
251
+ this.range = range;
252
+ }
253
+ resolve() {
254
+ if (!this.resolved) {
255
+ const codeSnippet = new snippetParser_1.SnippetParser().parse(this.snippet.body).toString();
256
+ this.documentation = { value: '```\n' + codeSnippet + '```' };
257
+ this.resolved = true;
258
+ }
259
+ return this;
260
+ }
261
+ static compareByLabel(a, b) {
262
+ return a.label > b.label ? 1 : a.label < b.label ? -1 : 0;
263
+ }
264
+ }
265
+ exports.MonacoSnippetSuggestion = MonacoSnippetSuggestion;
266
+ //# sourceMappingURL=monaco-snippet-suggest-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monaco-snippet-suggest-provider.js","sourceRoot":"","sources":["../../src/browser/monaco-snippet-suggest-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { IDisposable } from '@theia/monaco-editor-core/esm/vs/base/common/lifecycle';
2
+ import { StandaloneThemeService } from '@theia/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneThemeService';
3
+ export declare class MonacoStandaloneThemeService extends StandaloneThemeService {
4
+ protected get styleElements(): HTMLStyleElement[];
5
+ protected get allCSS(): string;
6
+ registerEditorContainer(domNode: HTMLElement): IDisposable;
7
+ }
8
+ //# sourceMappingURL=monaco-standalone-theme-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monaco-standalone-theme-service.d.ts","sourceRoot":"","sources":["../../src/browser/monaco-standalone-theme-service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,wDAAwD,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mFAAmF,CAAC;AAE3H,qBAAa,4BAA6B,SAAQ,sBAAsB;IACpE,SAAS,KAAK,aAAa,IAAI,gBAAgB,EAAE,CAGhD;IAED,SAAS,KAAK,MAAM,IAAI,MAAM,CAE7B;IAEQ,uBAAuB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW;CAoBtE"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ // *****************************************************************************
4
+ // Copyright (C) 2024 STMicroelectronics and others.
5
+ //
6
+ // This program and the accompanying materials are made available under the
7
+ // terms of the Eclipse Public License v. 2.0 which is available at
8
+ // http://www.eclipse.org/legal/epl-2.0.
9
+ //
10
+ // This Source Code may also be made available under the following Secondary
11
+ // Licenses when the conditions for such availability set forth in the Eclipse
12
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
13
+ // with the GNU Classpath Exception which is available at
14
+ // https://www.gnu.org/software/classpath/license.html.
15
+ //
16
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
17
+ // *****************************************************************************
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.MonacoStandaloneThemeService = void 0;
20
+ const standaloneThemeService_1 = require("@theia/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneThemeService");
21
+ class MonacoStandaloneThemeService extends standaloneThemeService_1.StandaloneThemeService {
22
+ get styleElements() {
23
+ // access private style element array
24
+ return this._styleElements;
25
+ }
26
+ get allCSS() {
27
+ return this._allCSS;
28
+ }
29
+ registerEditorContainer(domNode) {
30
+ const style = domNode.ownerDocument.createElement('style');
31
+ style.type = 'text/css';
32
+ style.media = 'screen';
33
+ style.className = 'monaco-colors';
34
+ style.textContent = this.allCSS;
35
+ domNode.ownerDocument.head.appendChild(style);
36
+ this.styleElements.push(style);
37
+ return {
38
+ dispose: () => {
39
+ for (let i = 0; i < this.styleElements.length; i++) {
40
+ if (this.styleElements[i] === style) {
41
+ this.styleElements.splice(i, 1);
42
+ style.remove();
43
+ return;
44
+ }
45
+ }
46
+ }
47
+ };
48
+ }
49
+ }
50
+ exports.MonacoStandaloneThemeService = MonacoStandaloneThemeService;
51
+ //# sourceMappingURL=monaco-standalone-theme-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monaco-standalone-theme-service.js","sourceRoot":"","sources":["../../src/browser/monaco-standalone-theme-service.ts"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,gFAAgF;AAChF,oDAAoD;AACpD,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;;;AAGhF,8HAA2H;AAE3H,MAAa,4BAA6B,SAAQ,+CAAsB;IACpE,IAAc,aAAa;QACvB,qCAAqC;QACrC,OAAQ,IAAY,CAAC,cAAc,CAAC;IACxC,CAAC;IAED,IAAc,MAAM;QAChB,OAAQ,IAAY,CAAC,OAAO,CAAC;IACjC,CAAC;IAEQ,uBAAuB,CAAC,OAAoB;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;QACxB,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;QACvB,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC;QAClC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO;YACH,OAAO,EAAE,GAAG,EAAE;gBACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjD,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;wBAClC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAChC,KAAK,CAAC,MAAM,EAAE,CAAC;wBACf,OAAO;oBACX,CAAC;gBACL,CAAC;YACL,CAAC;SACJ,CAAC;IACN,CAAC;CACJ;AA9BD,oEA8BC"}
@@ -0,0 +1,18 @@
1
+ import { DisposableCollection } from '@theia/core';
2
+ import { StatusBar, Widget, WidgetStatusBarContribution } from '@theia/core/lib/browser';
3
+ import { EditorWidget } from '@theia/editor/lib/browser';
4
+ import * as monaco from '@theia/monaco-editor-core';
5
+ export declare const EDITOR_STATUS_TABBING_CONFIG = "editor-status-tabbing-config";
6
+ export declare const EDITOR_STATUS_EOL = "editor-status-eol";
7
+ export declare class MonacoStatusBarContribution implements WidgetStatusBarContribution<EditorWidget> {
8
+ protected readonly toDispose: DisposableCollection;
9
+ canHandle(widget: Widget): widget is EditorWidget;
10
+ activate(statusBar: StatusBar, editor: EditorWidget): void;
11
+ deactivate(statusBar: StatusBar): void;
12
+ protected setConfigTabSizeWidget(statusBar: StatusBar, model: monaco.editor.ITextModel): void;
13
+ protected removeConfigTabSizeWidget(statusBar: StatusBar): void;
14
+ protected setLineEndingWidget(statusBar: StatusBar, model: monaco.editor.ITextModel): void;
15
+ protected removeLineEndingWidget(statusBar: StatusBar): void;
16
+ protected getModel(editor: EditorWidget | undefined): monaco.editor.ITextModel | undefined;
17
+ }
18
+ //# sourceMappingURL=monaco-status-bar-contribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monaco-status-bar-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/monaco-status-bar-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,oBAAoB,EAAO,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,SAAS,EAAsB,MAAM,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAC7G,OAAO,EAAkB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzE,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AAEpD,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAC3E,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,qBACa,2BAA4B,YAAW,2BAA2B,CAAC,YAAY,CAAC;IAEzF,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAE1D,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,YAAY;IAOjD,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAsB1D,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAMtC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI;IAgB7F,SAAS,CAAC,yBAAyB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAI/D,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI;IAY1F,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAI5D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,SAAS;CAI7F"}