@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,536 @@
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.MonacoEditorModel = exports.TextDocumentSaveReason = void 0;
19
+ const vscode_languageserver_protocol_1 = require("@theia/core/shared/vscode-languageserver-protocol");
20
+ Object.defineProperty(exports, "TextDocumentSaveReason", { enumerable: true, get: function () { return vscode_languageserver_protocol_1.TextDocumentSaveReason; } });
21
+ const disposable_1 = require("@theia/core/lib/common/disposable");
22
+ const event_1 = require("@theia/core/lib/common/event");
23
+ const cancellation_1 = require("@theia/core/lib/common/cancellation");
24
+ const resource_1 = require("@theia/core/lib/common/resource");
25
+ const saveable_1 = require("@theia/core/lib/browser/saveable");
26
+ const monaco = require("@theia/monaco-editor-core");
27
+ const standaloneServices_1 = require("@theia/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices");
28
+ const language_1 = require("@theia/monaco-editor-core/esm/vs/editor/common/languages/language");
29
+ const model_1 = require("@theia/monaco-editor-core/esm/vs/editor/common/services/model");
30
+ const textModel_1 = require("@theia/monaco-editor-core/esm/vs/editor/common/model/textModel");
31
+ const editor_generated_preference_schema_1 = require("@theia/editor/lib/common/editor-generated-preference-schema");
32
+ const buffer_1 = require("@theia/core/lib/common/buffer");
33
+ const core_1 = require("@theia/core");
34
+ class MonacoEditorModel {
35
+ get onContentChanged() {
36
+ return (listener, thisArgs, disposables) => this.onDidChangeContent(() => listener(), thisArgs, disposables);
37
+ }
38
+ constructor(resource, m2p, p2m, logger, editorPreferences) {
39
+ var _a;
40
+ this.resource = resource;
41
+ this.m2p = m2p;
42
+ this.p2m = p2m;
43
+ this.logger = logger;
44
+ this.editorPreferences = editorPreferences;
45
+ this.suppressOpenEditorWhenDirty = false;
46
+ this.lineNumbersMinChars = 3;
47
+ /* @deprecated there is no general save timeout, each participant should introduce a sensible timeout */
48
+ this.onWillSaveLoopTimeOut = 1500;
49
+ this.toDispose = new disposable_1.DisposableCollection();
50
+ this.toDisposeOnAutoSave = new disposable_1.DisposableCollection();
51
+ this.onDidChangeContentEmitter = new event_1.Emitter();
52
+ this.onDidChangeContent = this.onDidChangeContentEmitter.event;
53
+ this.onDidSaveModelEmitter = new event_1.Emitter();
54
+ this.onDidSaveModel = this.onDidSaveModelEmitter.event;
55
+ this.onDidChangeValidEmitter = new event_1.Emitter();
56
+ this.onDidChangeValid = this.onDidChangeValidEmitter.event;
57
+ this.onDidChangeEncodingEmitter = new event_1.Emitter();
58
+ this.onDidChangeEncoding = this.onDidChangeEncodingEmitter.event;
59
+ this.onDidChangeReadOnly = (_a = this.resource.onDidChangeReadOnly) !== null && _a !== void 0 ? _a : event_1.Event.None;
60
+ this.onWillSaveModelListeners = new core_1.ListenerList;
61
+ this.onModelWillSaveModel = this.onWillSaveModelListeners.registration;
62
+ /**
63
+ * Use `valid` to access it.
64
+ * Use `setValid` to mutate it.
65
+ */
66
+ this._valid = false;
67
+ this._dirty = false;
68
+ this.onDirtyChangedEmitter = new event_1.Emitter();
69
+ this.pendingOperation = Promise.resolve();
70
+ this.syncCancellationTokenSource = new cancellation_1.CancellationTokenSource();
71
+ this.ignoreDirtyEdits = false;
72
+ this.saveCancellationTokenSource = new cancellation_1.CancellationTokenSource();
73
+ this.ignoreContentChanges = false;
74
+ this.contentChanges = [];
75
+ this.toDispose.push(resource);
76
+ this.toDispose.push(this.toDisposeOnAutoSave);
77
+ this.toDispose.push(this.onDidChangeContentEmitter);
78
+ this.toDispose.push(this.onDidSaveModelEmitter);
79
+ this.toDispose.push(this.onDirtyChangedEmitter);
80
+ this.toDispose.push(this.onDidChangeEncodingEmitter);
81
+ this.toDispose.push(this.onDidChangeValidEmitter);
82
+ this.toDispose.push(disposable_1.Disposable.create(() => this.cancelSave()));
83
+ this.toDispose.push(disposable_1.Disposable.create(() => this.cancelSync()));
84
+ this.resolveModel = this.readContents().then(content => this.initialize(content || ''));
85
+ }
86
+ undo() {
87
+ this.model.undo();
88
+ }
89
+ redo() {
90
+ this.model.redo();
91
+ }
92
+ dispose() {
93
+ this.toDispose.dispose();
94
+ }
95
+ isDisposed() {
96
+ return this.toDispose.disposed;
97
+ }
98
+ resolve() {
99
+ return this.resolveModel;
100
+ }
101
+ isResolved() {
102
+ return Boolean(this.model);
103
+ }
104
+ setEncoding(encoding, mode) {
105
+ if (mode === 1 /* EncodingMode.Decode */ && this.dirty) {
106
+ return Promise.resolve();
107
+ }
108
+ if (!this.setPreferredEncoding(encoding)) {
109
+ return Promise.resolve();
110
+ }
111
+ if (mode === 1 /* EncodingMode.Decode */) {
112
+ return this.sync();
113
+ }
114
+ return this.scheduleSave(this.cancelSave(), true, { saveReason: saveable_1.SaveReason.Manual });
115
+ }
116
+ getEncoding() {
117
+ return this.preferredEncoding || this.contentEncoding;
118
+ }
119
+ setPreferredEncoding(encoding) {
120
+ if (encoding === this.preferredEncoding || (!this.preferredEncoding && encoding === this.contentEncoding)) {
121
+ return false;
122
+ }
123
+ this.preferredEncoding = encoding;
124
+ this.onDidChangeEncodingEmitter.fire(encoding);
125
+ return true;
126
+ }
127
+ updateContentEncoding() {
128
+ const contentEncoding = this.resource.encoding;
129
+ if (!contentEncoding || this.contentEncoding === contentEncoding) {
130
+ return;
131
+ }
132
+ this.contentEncoding = contentEncoding;
133
+ if (!this.preferredEncoding) {
134
+ this.onDidChangeEncodingEmitter.fire(contentEncoding);
135
+ }
136
+ }
137
+ /**
138
+ * #### Important
139
+ * Only this method can create an instance of `monaco.editor.IModel`,
140
+ * there should not be other calls to `monaco.editor.createModel`.
141
+ */
142
+ initialize(value) {
143
+ if (!this.toDispose.disposed) {
144
+ const uri = monaco.Uri.parse(this.resource.uri.toString());
145
+ let firstLine;
146
+ if (typeof value === 'string') {
147
+ firstLine = value;
148
+ const firstLF = value.indexOf('\n');
149
+ if (firstLF !== -1) {
150
+ firstLine = value.substring(0, firstLF);
151
+ }
152
+ }
153
+ else {
154
+ firstLine = value.getFirstLineText(1000);
155
+ }
156
+ const languageSelection = standaloneServices_1.StandaloneServices.get(language_1.ILanguageService).createByFilepathOrFirstLine(uri, firstLine);
157
+ this.model = standaloneServices_1.StandaloneServices.get(model_1.IModelService).createModel(value, languageSelection, uri);
158
+ this.resourceVersion = this.resource.version;
159
+ this.setDirty(this._dirty || (!!this.resource.initiallyDirty));
160
+ this.updateSavedVersionId();
161
+ this.toDispose.push(this.model);
162
+ this.toDispose.push(this.model.onDidChangeContent(event => this.fireDidChangeContent(event)));
163
+ if (this.resource.onDidChangeContents) {
164
+ this.toDispose.push(this.resource.onDidChangeContents(() => this.sync()));
165
+ }
166
+ }
167
+ }
168
+ /**
169
+ * Whether it is possible to load content from the underlying resource.
170
+ */
171
+ get valid() {
172
+ return this._valid;
173
+ }
174
+ setValid(valid) {
175
+ if (valid === this._valid) {
176
+ return;
177
+ }
178
+ this._valid = valid;
179
+ this.onDidChangeValidEmitter.fire(undefined);
180
+ }
181
+ get dirty() {
182
+ return this._dirty;
183
+ }
184
+ setDirty(dirty) {
185
+ if (dirty === this._dirty) {
186
+ return;
187
+ }
188
+ this._dirty = dirty;
189
+ if (dirty === false) {
190
+ this.updateSavedVersionId();
191
+ }
192
+ this.onDirtyChangedEmitter.fire(undefined);
193
+ }
194
+ updateSavedVersionId() {
195
+ this.bufferSavedVersionId = this.model.getAlternativeVersionId();
196
+ }
197
+ get onDirtyChanged() {
198
+ return this.onDirtyChangedEmitter.event;
199
+ }
200
+ get uri() {
201
+ return this.resource.uri.toString();
202
+ }
203
+ get autosaveable() {
204
+ return this.resource.autosaveable;
205
+ }
206
+ get languageId() {
207
+ return this._languageId !== undefined ? this._languageId : this.model.getLanguageId();
208
+ }
209
+ getLanguageId() {
210
+ return this.languageId;
211
+ }
212
+ /**
213
+ * It's a hack to dispatch close notification with an old language id; don't use it.
214
+ */
215
+ setLanguageId(languageId) {
216
+ this._languageId = languageId;
217
+ }
218
+ get version() {
219
+ return this.model.getVersionId();
220
+ }
221
+ /**
222
+ * Return selected text by Range or all text by default
223
+ */
224
+ getText(range) {
225
+ if (!range) {
226
+ return this.model.getValue();
227
+ }
228
+ else {
229
+ return this.model.getValueInRange(this.p2m.asRange(range));
230
+ }
231
+ }
232
+ positionAt(offset) {
233
+ const { lineNumber, column } = this.model.getPositionAt(offset);
234
+ return this.m2p.asPosition(lineNumber, column);
235
+ }
236
+ offsetAt(position) {
237
+ return this.model.getOffsetAt(this.p2m.asPosition(position));
238
+ }
239
+ get lineCount() {
240
+ return this.model.getLineCount();
241
+ }
242
+ /**
243
+ * Retrieves a line in a text document expressed as a one-based position.
244
+ */
245
+ getLineContent(lineNumber) {
246
+ return this.model.getLineContent(lineNumber);
247
+ }
248
+ getLineMaxColumn(lineNumber) {
249
+ return this.model.getLineMaxColumn(lineNumber);
250
+ }
251
+ toValidPosition(position) {
252
+ const { lineNumber, column } = this.model.validatePosition(this.p2m.asPosition(position));
253
+ return this.m2p.asPosition(lineNumber, column);
254
+ }
255
+ toValidRange(range) {
256
+ return this.m2p.asRange(this.model.validateRange(this.p2m.asRange(range)));
257
+ }
258
+ get readOnly() {
259
+ var _a;
260
+ return (_a = this.resource.readOnly) !== null && _a !== void 0 ? _a : false;
261
+ }
262
+ isReadonly() {
263
+ return this.readOnly;
264
+ }
265
+ get onDispose() {
266
+ return this.toDispose.onDispose;
267
+ }
268
+ get onWillDispose() {
269
+ return this.toDispose.onDispose;
270
+ }
271
+ // We have a TypeScript problem here. There is a const enum `DefaultEndOfLine` used for ITextModel and a non-const redeclaration of that enum in the public API in
272
+ // Monaco.editor. The values will be the same, but TS won't accept that the two enums are equivalent, so it says these types are irreconcilable.
273
+ get textEditorModel() {
274
+ // @ts-expect-error ts(2322)
275
+ return this.model;
276
+ }
277
+ /**
278
+ * Find all matches in an editor for the given options.
279
+ * @param options the options for finding matches.
280
+ *
281
+ * @returns the list of matches.
282
+ */
283
+ findMatches(options) {
284
+ var _a, _b;
285
+ const wordSeparators = (_b = (_a = this.editorPreferences) === null || _a === void 0 ? void 0 : _a['editor.wordSeparators']) !== null && _b !== void 0 ? _b : editor_generated_preference_schema_1.editorGeneratedPreferenceProperties['editor.wordSeparators'].default;
286
+ const results = this.model.findMatches(options.searchString, false, options.isRegex, options.matchCase,
287
+ // eslint-disable-next-line no-null/no-null
288
+ options.matchWholeWord ? wordSeparators : null, true, options.limitResultCount);
289
+ const extractedMatches = [];
290
+ results.forEach(r => {
291
+ if (r.matches) {
292
+ extractedMatches.push({
293
+ matches: r.matches,
294
+ range: vscode_languageserver_protocol_1.Range.create(r.range.startLineNumber, r.range.startColumn, r.range.endLineNumber, r.range.endColumn)
295
+ });
296
+ }
297
+ });
298
+ return extractedMatches;
299
+ }
300
+ async load() {
301
+ await this.resolveModel;
302
+ return this;
303
+ }
304
+ save(options) {
305
+ return this.scheduleSave(undefined, undefined, {
306
+ saveReason: vscode_languageserver_protocol_1.TextDocumentSaveReason.Manual,
307
+ ...options
308
+ });
309
+ }
310
+ async run(operation) {
311
+ if (this.toDispose.disposed) {
312
+ return;
313
+ }
314
+ return this.pendingOperation = this.pendingOperation.then(async () => {
315
+ try {
316
+ await operation();
317
+ }
318
+ catch (e) {
319
+ console.error(e);
320
+ }
321
+ });
322
+ }
323
+ cancelSync() {
324
+ this.trace(log => log('MonacoEditorModel.cancelSync'));
325
+ this.syncCancellationTokenSource.cancel();
326
+ this.syncCancellationTokenSource = new cancellation_1.CancellationTokenSource();
327
+ return this.syncCancellationTokenSource.token;
328
+ }
329
+ async sync() {
330
+ const token = this.cancelSync();
331
+ return this.run(() => this.doSync(token));
332
+ }
333
+ async doSync(token) {
334
+ this.trace(log => log('MonacoEditorModel.doSync - enter'));
335
+ if (token.isCancellationRequested) {
336
+ this.trace(log => log('MonacoEditorModel.doSync - exit - cancelled'));
337
+ return;
338
+ }
339
+ const value = await this.readContents();
340
+ if (value === undefined) {
341
+ this.trace(log => log('MonacoEditorModel.doSync - exit - resource not found'));
342
+ return;
343
+ }
344
+ if (token.isCancellationRequested) {
345
+ this.trace(log => log('MonacoEditorModel.doSync - exit - cancelled while looking for a resource'));
346
+ return;
347
+ }
348
+ if (this._dirty) {
349
+ this.trace(log => log('MonacoEditorModel.doSync - exit - pending dirty changes'));
350
+ return;
351
+ }
352
+ this.resourceVersion = this.resource.version;
353
+ this.updateModel(() => standaloneServices_1.StandaloneServices.get(model_1.IModelService).updateModel(this.model, value), {
354
+ ignoreDirty: true,
355
+ ignoreContentChanges: true
356
+ });
357
+ this.trace(log => log('MonacoEditorModel.doSync - exit'));
358
+ }
359
+ async readContents() {
360
+ try {
361
+ const options = { encoding: this.getEncoding() };
362
+ const content = await (this.resource.readStream ? this.resource.readStream(options) : this.resource.readContents(options));
363
+ let value;
364
+ if (typeof content === 'string') {
365
+ value = content;
366
+ }
367
+ else {
368
+ value = (0, textModel_1.createTextBufferFactoryFromStream)(content);
369
+ }
370
+ this.updateContentEncoding();
371
+ this.setValid(true);
372
+ return value;
373
+ }
374
+ catch (e) {
375
+ this.setValid(false);
376
+ if (resource_1.ResourceError.NotFound.is(e)) {
377
+ return undefined;
378
+ }
379
+ throw e;
380
+ }
381
+ }
382
+ markAsDirty() {
383
+ this.trace(log => log('MonacoEditorModel.markAsDirty - enter'));
384
+ if (this.ignoreDirtyEdits) {
385
+ this.trace(log => log('MonacoEditorModel.markAsDirty - exit - ignoring dirty changes enabled'));
386
+ return;
387
+ }
388
+ this.cancelSync();
389
+ this.setDirty(true);
390
+ this.trace(log => log('MonacoEditorModel.markAsDirty - exit'));
391
+ }
392
+ cancelSave() {
393
+ this.trace(log => log('MonacoEditorModel.cancelSave'));
394
+ this.saveCancellationTokenSource.cancel();
395
+ this.saveCancellationTokenSource = new cancellation_1.CancellationTokenSource();
396
+ return this.saveCancellationTokenSource.token;
397
+ }
398
+ scheduleSave(token = this.cancelSave(), overwriteEncoding, options) {
399
+ return this.run(() => this.doSave(token, overwriteEncoding, options));
400
+ }
401
+ pushContentChanges(contentChanges) {
402
+ if (!this.ignoreContentChanges) {
403
+ this.contentChanges.push(...contentChanges);
404
+ }
405
+ }
406
+ fireDidChangeContent(event) {
407
+ this.trace(log => log(`MonacoEditorModel.fireDidChangeContent - enter - ${JSON.stringify(event, undefined, 2)}`));
408
+ if (this.model.getAlternativeVersionId() === this.bufferSavedVersionId) {
409
+ this.setDirty(false);
410
+ }
411
+ else {
412
+ this.markAsDirty();
413
+ }
414
+ const changeContentEvent = this.asContentChangedEvent(event);
415
+ this.onDidChangeContentEmitter.fire(changeContentEvent);
416
+ this.pushContentChanges(changeContentEvent.contentChanges);
417
+ this.trace(log => log('MonacoEditorModel.fireDidChangeContent - exit'));
418
+ }
419
+ asContentChangedEvent(event) {
420
+ const contentChanges = event.changes.map(change => this.asTextDocumentContentChangeEvent(change));
421
+ return { model: this, contentChanges };
422
+ }
423
+ asTextDocumentContentChangeEvent(change) {
424
+ const range = this.m2p.asRange(change.range);
425
+ const rangeOffset = change.rangeOffset;
426
+ const rangeLength = change.rangeLength;
427
+ const text = change.text;
428
+ return { range, rangeOffset, rangeLength, text };
429
+ }
430
+ applyEdits(operations, options) {
431
+ return this.updateModel(() => this.model.applyEdits(operations), options);
432
+ }
433
+ updateModel(doUpdate, options) {
434
+ const resolvedOptions = {
435
+ ignoreDirty: false,
436
+ ignoreContentChanges: false,
437
+ ...options
438
+ };
439
+ const { ignoreDirtyEdits, ignoreContentChanges } = this;
440
+ this.ignoreDirtyEdits = resolvedOptions.ignoreDirty;
441
+ this.ignoreContentChanges = resolvedOptions.ignoreContentChanges;
442
+ try {
443
+ return doUpdate();
444
+ }
445
+ finally {
446
+ this.ignoreDirtyEdits = ignoreDirtyEdits;
447
+ this.ignoreContentChanges = ignoreContentChanges;
448
+ }
449
+ }
450
+ async doSave(token, overwriteEncoding, options) {
451
+ if (token.isCancellationRequested || !this.resource.saveContents) {
452
+ return;
453
+ }
454
+ await this.fireWillSaveModel(token, options);
455
+ if (token.isCancellationRequested) {
456
+ return;
457
+ }
458
+ const changes = [...this.contentChanges];
459
+ if ((changes.length === 0 && !this.resource.initiallyDirty) && !overwriteEncoding && (options === null || options === void 0 ? void 0 : options.saveReason) !== vscode_languageserver_protocol_1.TextDocumentSaveReason.Manual) {
460
+ return;
461
+ }
462
+ const currentToSaveVersion = this.model.getAlternativeVersionId();
463
+ const contentLength = this.model.getValueLength();
464
+ const content = this.model.getValue();
465
+ try {
466
+ const encoding = this.getEncoding();
467
+ const version = this.resourceVersion;
468
+ await resource_1.Resource.save(this.resource, { changes, content, contentLength, options: { encoding, overwriteEncoding, version } }, token);
469
+ this.contentChanges.splice(0, changes.length);
470
+ this.resourceVersion = this.resource.version;
471
+ this.updateContentEncoding();
472
+ this.setValid(true);
473
+ if (token.isCancellationRequested && this.model.getAlternativeVersionId() !== currentToSaveVersion) {
474
+ return;
475
+ }
476
+ this.setDirty(false);
477
+ this.fireDidSaveModel();
478
+ }
479
+ catch (e) {
480
+ if (!resource_1.ResourceError.OutOfSync.is(e)) {
481
+ throw e;
482
+ }
483
+ }
484
+ }
485
+ async fireWillSaveModel(token, options) {
486
+ await core_1.Listener.awaitAll({ model: this, token, options }, this.onWillSaveModelListeners);
487
+ }
488
+ fireDidSaveModel() {
489
+ this.onDidSaveModelEmitter.fire(this.model);
490
+ }
491
+ async revert(options) {
492
+ this.trace(log => log('MonacoEditorModel.revert - enter'));
493
+ this.cancelSave();
494
+ const soft = options && options.soft;
495
+ if (soft !== true) {
496
+ const dirty = this._dirty;
497
+ this._dirty = false;
498
+ try {
499
+ await this.sync();
500
+ }
501
+ finally {
502
+ this._dirty = dirty;
503
+ }
504
+ }
505
+ this.setDirty(false);
506
+ this.trace(log => log('MonacoEditorModel.revert - exit'));
507
+ }
508
+ createSnapshot(preserveBOM) {
509
+ return { read: () => this.model.getValue(undefined, preserveBOM) };
510
+ }
511
+ applySnapshot(snapshot) {
512
+ var _a;
513
+ const value = (_a = saveable_1.Saveable.Snapshot.read(snapshot)) !== null && _a !== void 0 ? _a : '';
514
+ this.model.setValue(value);
515
+ }
516
+ async serialize() {
517
+ return buffer_1.BinaryBuffer.fromString(this.model.getValue());
518
+ }
519
+ filters() {
520
+ var _a;
521
+ const language = monaco.languages.getLanguages().find(lang => lang.id === this.languageId);
522
+ if (!language || !language.extensions) {
523
+ return {};
524
+ }
525
+ const name = ((_a = language.aliases) === null || _a === void 0 ? void 0 : _a[0]) || this.languageId;
526
+ const extensions = language.extensions.map(ext => ext.startsWith('.') ? ext.substring(1) : ext);
527
+ return { [name]: extensions };
528
+ }
529
+ trace(loggable) {
530
+ if (this.logger) {
531
+ this.logger.debug((log) => loggable((message, ...params) => log(message, ...params, this.resource.uri.toString(true))));
532
+ }
533
+ }
534
+ }
535
+ exports.MonacoEditorModel = MonacoEditorModel;
536
+ //# sourceMappingURL=monaco-editor-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monaco-editor-model.js","sourceRoot":"","sources":["../../src/browser/monaco-editor-model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Disposable, DisposableCollection, Emitter } from '@theia/core';
2
+ import { MonacoEditor } from './monaco-editor';
3
+ export declare class MonacoEditorOverlayButton implements Disposable {
4
+ private static nextId;
5
+ readonly domNode: HTMLElement;
6
+ protected readonly onClickEmitter: Emitter<void>;
7
+ readonly onClick: import("@theia/core").Event<void>;
8
+ protected readonly toDispose: DisposableCollection;
9
+ constructor(editor: MonacoEditor, label: string, id?: string);
10
+ get enabled(): boolean;
11
+ set enabled(value: boolean);
12
+ dispose(): void;
13
+ }
14
+ //# sourceMappingURL=monaco-editor-overlay-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monaco-editor-overlay-button.d.ts","sourceRoot":"","sources":["../../src/browser/monaco-editor-overlay-button.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGxE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,yBAA0B,YAAW,UAAU;IAExD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAK;IAE1B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAE9B,SAAS,CAAC,QAAQ,CAAC,cAAc,gBAAuB;IACxD,QAAQ,CAAC,OAAO,oCAA6B;IAE7C,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAAiD;gBAGzE,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,EAAE,SAA0E;IAkBhF,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAMzB;IAED,OAAO,IAAI,IAAI;CAGlB"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2025 1C-Soft LLC 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.MonacoEditorOverlayButton = void 0;
19
+ const core_1 = require("@theia/core");
20
+ const browser_1 = require("@theia/core/lib/browser");
21
+ const monaco = require("@theia/monaco-editor-core");
22
+ class MonacoEditorOverlayButton {
23
+ constructor(editor, label, id = 'theia-editor.overlayButtonWidget' + MonacoEditorOverlayButton.nextId++) {
24
+ this.onClickEmitter = new core_1.Emitter();
25
+ this.onClick = this.onClickEmitter.event;
26
+ this.toDispose = new core_1.DisposableCollection(this.onClickEmitter);
27
+ this.domNode = document.createElement('div');
28
+ this.domNode.classList.add('overlay-button');
29
+ this.domNode.textContent = label;
30
+ this.toDispose.push((0, browser_1.onDomEvent)(this.domNode, 'click', () => this.onClickEmitter.fire()));
31
+ const overlayWidget = {
32
+ getId: () => id,
33
+ getDomNode: () => this.domNode,
34
+ getPosition: () => ({
35
+ preference: monaco.editor.OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER
36
+ })
37
+ };
38
+ editor.getControl().addOverlayWidget(overlayWidget);
39
+ this.toDispose.push(core_1.Disposable.create(() => editor.getControl().removeOverlayWidget(overlayWidget)));
40
+ }
41
+ get enabled() {
42
+ return !this.domNode.classList.contains(browser_1.DISABLED_CLASS);
43
+ }
44
+ set enabled(value) {
45
+ if (value) {
46
+ this.domNode.classList.remove(browser_1.DISABLED_CLASS);
47
+ }
48
+ else {
49
+ this.domNode.classList.add(browser_1.DISABLED_CLASS);
50
+ }
51
+ }
52
+ dispose() {
53
+ this.toDispose.dispose();
54
+ }
55
+ }
56
+ exports.MonacoEditorOverlayButton = MonacoEditorOverlayButton;
57
+ MonacoEditorOverlayButton.nextId = 1;
58
+ //# sourceMappingURL=monaco-editor-overlay-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monaco-editor-overlay-button.js","sourceRoot":"","sources":["../../src/browser/monaco-editor-overlay-button.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,6CAA6C;AAC7C,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;;;AAEhF,sCAAwE;AACxE,qDAAqE;AACrE,oDAAoD;AAGpD,MAAa,yBAAyB;IAWlC,YACI,MAAoB,EACpB,KAAa,EACb,EAAE,GAAG,kCAAkC,GAAG,yBAAyB,CAAC,MAAM,EAAE;QAR7D,mBAAc,GAAG,IAAI,cAAO,EAAQ,CAAC;QAC/C,YAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QAE1B,cAAS,GAAG,IAAI,2BAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAOzE,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAEzF,MAAM,aAAa,GAAiC;YAChD,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;YACf,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO;YAC9B,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;gBAChB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,+BAA+B,CAAC,mBAAmB;aAChF,CAAC;SACL,CAAC;QACF,MAAM,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACzG,CAAC;IAED,IAAI,OAAO;QACP,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAc,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,OAAO,CAAC,KAAc;QACtB,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,wBAAc,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAc,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IAED,OAAO;QACH,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;;AA9CL,8DA+CC;AA7CkB,gCAAM,GAAG,CAAC,AAAJ,CAAK"}