@theia/monaco 1.62.0-next.3 → 1.62.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/lib/browser/monaco-code-action-save-participant.d.ts +14 -0
  2. package/lib/browser/monaco-code-action-save-participant.d.ts.map +1 -0
  3. package/lib/browser/monaco-code-action-save-participant.js +129 -0
  4. package/lib/browser/monaco-code-action-save-participant.js.map +1 -0
  5. package/lib/browser/monaco-editor-model.d.ts +8 -13
  6. package/lib/browser/monaco-editor-model.d.ts.map +1 -1
  7. package/lib/browser/monaco-editor-model.js +21 -57
  8. package/lib/browser/monaco-editor-model.js.map +1 -1
  9. package/lib/browser/monaco-editor-provider.d.ts +18 -7
  10. package/lib/browser/monaco-editor-provider.d.ts.map +1 -1
  11. package/lib/browser/monaco-editor-provider.js +98 -51
  12. package/lib/browser/monaco-editor-provider.js.map +1 -1
  13. package/lib/browser/monaco-frontend-module.d.ts.map +1 -1
  14. package/lib/browser/monaco-frontend-module.js +4 -0
  15. package/lib/browser/monaco-frontend-module.js.map +1 -1
  16. package/lib/browser/monaco-menu.d.ts.map +1 -1
  17. package/lib/browser/monaco-menu.js +5 -4
  18. package/lib/browser/monaco-menu.js.map +1 -1
  19. package/lib/browser/monaco-workspace.d.ts +1 -4
  20. package/lib/browser/monaco-workspace.d.ts.map +1 -1
  21. package/lib/browser/monaco-workspace.js +0 -6
  22. package/lib/browser/monaco-workspace.js.map +1 -1
  23. package/package.json +9 -9
  24. package/src/browser/monaco-code-action-save-participant.ts +143 -0
  25. package/src/browser/monaco-editor-model.ts +25 -74
  26. package/src/browser/monaco-editor-provider.ts +115 -55
  27. package/src/browser/monaco-frontend-module.ts +6 -1
  28. package/src/browser/monaco-menu.ts +5 -4
  29. package/src/browser/monaco-workspace.ts +1 -9
@@ -40,16 +40,17 @@ export class MonacoEditorMenuContribution implements MenuContribution {
40
40
  ) { }
41
41
 
42
42
  registerMenus(registry: MenuModelRegistry): void {
43
+ registry.registerSubmenu(EDITOR_CONTEXT_MENU, 'Editor Context Menu');
43
44
  for (const item of MenuRegistry.getMenuItems(MenuId.EditorContext)) {
44
45
  if (!isIMenuItem(item)) {
45
46
  continue;
46
47
  }
47
48
  const commandId = this.commands.validate(item.command.id);
48
49
  if (commandId) {
49
- const menuPath = [...EDITOR_CONTEXT_MENU, (item.group || '')];
50
- const coreId = MonacoCommands.COMMON_ACTIONS.get(commandId);
51
- if (!(coreId && registry.getMenu(menuPath).children.some(it => it.id === coreId))) {
52
- // Don't add additional actions if the item is already registered with a core ID.
50
+ const nodeId = MonacoCommands.COMMON_ACTIONS.get(commandId) || commandId;
51
+ const menuPath = item.group ? [...EDITOR_CONTEXT_MENU, item.group] : EDITOR_CONTEXT_MENU;
52
+ if (registry.getMenuNode([...menuPath, nodeId])) {
53
+ // Don't add additional actions if the item is already registered.
53
54
  registry.registerMenuAction(menuPath, this.buildMenuAction(commandId, item));
54
55
  }
55
56
  }
@@ -23,7 +23,7 @@ import { Emitter } from '@theia/core/lib/common/event';
23
23
  import { FileSystemPreferences } from '@theia/filesystem/lib/browser';
24
24
  import { EditorManager, EditorPreferences } from '@theia/editor/lib/browser';
25
25
  import { MonacoTextModelService } from './monaco-text-model-service';
26
- import { WillSaveMonacoModelEvent, MonacoEditorModel, MonacoModelContentChangedEvent } from './monaco-editor-model';
26
+ import { MonacoEditorModel, MonacoModelContentChangedEvent } from './monaco-editor-model';
27
27
  import { MonacoEditor } from './monaco-editor';
28
28
  import { ProblemManager } from '@theia/markers/lib/browser';
29
29
  import { ArrayUtils } from '@theia/core/lib/common/types';
@@ -101,9 +101,6 @@ export class MonacoWorkspace {
101
101
  protected readonly onDidChangeTextDocumentEmitter = new Emitter<MonacoModelContentChangedEvent>();
102
102
  readonly onDidChangeTextDocument = this.onDidChangeTextDocumentEmitter.event;
103
103
 
104
- protected readonly onWillSaveTextDocumentEmitter = new Emitter<WillSaveMonacoModelEvent>();
105
- readonly onWillSaveTextDocument = this.onWillSaveTextDocumentEmitter.event;
106
-
107
104
  protected readonly onDidSaveTextDocumentEmitter = new Emitter<MonacoEditorModel>();
108
105
  readonly onDidSaveTextDocument = this.onDidSaveTextDocumentEmitter.event;
109
106
 
@@ -160,7 +157,6 @@ export class MonacoWorkspace {
160
157
  });
161
158
  model.onDidChangeContent(event => this.fireDidChangeContent(event));
162
159
  model.onDidSaveModel(() => this.fireDidSave(model));
163
- model.onWillSaveModel(event => this.fireWillSave(event));
164
160
  model.onDirtyChanged(() => this.openEditorIfDirty(model));
165
161
  model.onDispose(() => this.fireDidClose(model));
166
162
  }
@@ -177,10 +173,6 @@ export class MonacoWorkspace {
177
173
  this.onDidChangeTextDocumentEmitter.fire(event);
178
174
  }
179
175
 
180
- protected fireWillSave(event: WillSaveMonacoModelEvent): void {
181
- this.onWillSaveTextDocumentEmitter.fire(event);
182
- }
183
-
184
176
  protected fireDidSave(model: MonacoEditorModel): void {
185
177
  this.onDidSaveTextDocumentEmitter.fire(model);
186
178
  }