@eclipse-glsp/client 0.9.0 → 0.10.0-next.15853de.178
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.
- package/css/decoration.css +5 -1
- package/css/glsp-sprotty.css +149 -8
- package/css/tool-palette.css +2 -2
- package/lib/base/action-dispatcher.d.ts +4 -3
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +22 -12
- package/lib/base/action-dispatcher.js.map +1 -1
- package/lib/base/actions/focus-change-action.d.ts +16 -7
- package/lib/base/actions/focus-change-action.d.ts.map +1 -1
- package/lib/base/actions/focus-change-action.js +31 -12
- package/lib/base/actions/focus-change-action.js.map +1 -1
- package/lib/base/actions/sprotty-actions.d.ts +7 -0
- package/lib/base/actions/sprotty-actions.d.ts.map +1 -0
- package/lib/{features/tool-palette/palette-item.js → base/actions/sprotty-actions.js} +4 -20
- package/lib/base/actions/sprotty-actions.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts +5 -3
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-actions.js +24 -5
- package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +9 -2
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +16 -9
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.js +2 -2
- package/lib/base/auto-complete/validation-decorator.js.map +1 -1
- package/lib/base/command-stack.d.ts.map +1 -1
- package/lib/base/command-stack.js +6 -5
- package/lib/base/command-stack.js.map +1 -1
- package/lib/base/container-modules.d.ts.map +1 -1
- package/lib/base/container-modules.js +2 -1
- package/lib/base/container-modules.js.map +1 -1
- package/lib/base/di.config.d.ts +1 -1
- package/lib/base/di.config.d.ts.map +1 -1
- package/lib/base/di.config.js +13 -14
- package/lib/base/di.config.js.map +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
- package/lib/base/drag-aware-mouse-listener.js.map +1 -1
- package/lib/base/editor-context-service.d.ts +15 -4
- package/lib/base/editor-context-service.d.ts.map +1 -1
- package/lib/base/editor-context-service.js +31 -19
- package/lib/base/editor-context-service.js.map +1 -1
- package/lib/base/focus-tracker.d.ts +1 -1
- package/lib/base/focus-tracker.d.ts.map +1 -1
- package/lib/base/focus-tracker.js +4 -4
- package/lib/base/focus-tracker.js.map +1 -1
- package/lib/base/model/model-registry.d.ts.map +1 -1
- package/lib/base/model/model-registry.js +2 -2
- package/lib/base/model/model-registry.js.map +1 -1
- package/lib/base/model/update-model-command.d.ts +15 -8
- package/lib/base/model/update-model-command.d.ts.map +1 -1
- package/lib/base/model/update-model-command.js +43 -53
- package/lib/base/model/update-model-command.js.map +1 -1
- package/lib/base/model-initialization-constraint.d.ts +4 -5
- package/lib/base/model-initialization-constraint.d.ts.map +1 -1
- package/lib/base/model-initialization-constraint.js +11 -13
- package/lib/base/model-initialization-constraint.js.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.js +1 -1
- package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
- package/lib/base/source-uri-aware.d.ts +2 -17
- package/lib/base/source-uri-aware.d.ts.map +1 -1
- package/lib/base/source-uri-aware.js +4 -6
- package/lib/base/source-uri-aware.js.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.js +10 -10
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
- package/lib/base/tool-manager/tool-actions.d.ts +14 -0
- package/lib/base/tool-manager/tool-actions.d.ts.map +1 -0
- package/lib/base/tool-manager/tool-actions.js +25 -0
- package/lib/base/tool-manager/tool-actions.js.map +1 -0
- package/lib/base/types.d.ts +144 -20
- package/lib/base/types.d.ts.map +1 -1
- package/lib/base/types.js +14 -26
- package/lib/base/types.js.map +1 -1
- package/lib/base/view/view-registry.d.ts.map +1 -1
- package/lib/base/view/view-registry.js +2 -2
- package/lib/base/view/view-registry.js.map +1 -1
- package/lib/features/change-bounds/model.d.ts +1 -1
- package/lib/features/change-bounds/model.d.ts.map +1 -1
- package/lib/features/change-bounds/model.js +3 -3
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts +37 -7
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +55 -40
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/change-bounds/snap.d.ts +60 -4
- package/lib/features/change-bounds/snap.d.ts.map +1 -1
- package/lib/features/change-bounds/snap.js +96 -9
- package/lib/features/change-bounds/snap.js.map +1 -1
- package/lib/features/change-bounds/snap.spec.d.ts +17 -0
- package/lib/features/change-bounds/snap.spec.d.ts.map +1 -0
- package/lib/features/change-bounds/snap.spec.js +82 -0
- package/lib/features/change-bounds/snap.spec.js.map +1 -0
- package/lib/features/command-palette/command-palette-tool.js +3 -3
- package/lib/features/command-palette/command-palette-tool.js.map +1 -1
- package/lib/features/command-palette/di.config.d.ts +2 -2
- package/lib/features/command-palette/di.config.d.ts.map +1 -1
- package/lib/features/command-palette/di.config.js +6 -6
- package/lib/features/command-palette/di.config.js.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +13 -10
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +17 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.js +4 -4
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
- package/lib/features/context-menu/di.config.d.ts +1 -1
- package/lib/features/context-menu/di.config.d.ts.map +1 -1
- package/lib/features/context-menu/di.config.js +8 -7
- package/lib/features/context-menu/di.config.js.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +34 -4
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +37 -31
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +8 -7
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +12 -15
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +26 -33
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.js +10 -11
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
- package/lib/features/copy-paste/di.config.d.ts +1 -1
- package/lib/features/copy-paste/di.config.d.ts.map +1 -1
- package/lib/features/copy-paste/di.config.js +5 -7
- package/lib/features/copy-paste/di.config.js.map +1 -1
- package/lib/features/decoration/decoration-placer.d.ts +1 -1
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
- package/lib/features/decoration/decoration-placer.js +19 -3
- package/lib/features/decoration/decoration-placer.js.map +1 -1
- package/lib/features/decoration/di.config.d.ts +2 -2
- package/lib/features/decoration/di.config.d.ts.map +1 -1
- package/lib/features/decoration/di.config.js +4 -4
- package/lib/features/decoration/di.config.js.map +1 -1
- package/lib/features/edit-label/di.config.d.ts +1 -1
- package/lib/features/edit-label/di.config.d.ts.map +1 -1
- package/lib/features/edit-label/di.config.js +5 -5
- package/lib/features/edit-label/di.config.js.map +1 -1
- package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-tool.js +2 -2
- package/lib/features/edit-label/edit-label-tool.js.map +1 -1
- package/lib/features/edit-label/edit-label-validator.d.ts +4 -6
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-validator.js +11 -13
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/hints/di.config.js +4 -4
- package/lib/features/hints/di.config.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +15 -5
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +29 -26
- package/lib/features/hints/type-hints.js.map +1 -1
- package/lib/features/hover/di.config.d.ts +1 -1
- package/lib/features/hover/di.config.d.ts.map +1 -1
- package/lib/features/hover/di.config.js +14 -10
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +16 -4
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +42 -4
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.d.ts +3 -3
- package/lib/features/layout/di.config.d.ts.map +1 -1
- package/lib/features/layout/di.config.js +10 -7
- package/lib/features/layout/di.config.js.map +1 -1
- package/lib/features/layout/freeform-layout.d.ts +17 -1
- package/lib/features/layout/freeform-layout.d.ts.map +1 -1
- package/lib/features/layout/freeform-layout.js +4 -4
- package/lib/features/layout/freeform-layout.js.map +1 -1
- package/lib/features/layout/hbox-layout.d.ts +41 -0
- package/lib/features/layout/hbox-layout.d.ts.map +1 -0
- package/lib/features/layout/hbox-layout.js +189 -0
- package/lib/features/layout/hbox-layout.js.map +1 -0
- package/lib/features/layout/layout-elements-action.d.ts +198 -0
- package/lib/features/layout/layout-elements-action.d.ts.map +1 -0
- package/lib/features/layout/layout-elements-action.js +391 -0
- package/lib/features/layout/layout-elements-action.js.map +1 -0
- package/lib/features/layout/layout-elements-action.spec.d.ts +3 -0
- package/lib/features/layout/layout-elements-action.spec.d.ts.map +1 -0
- package/lib/features/layout/{layout-commands.spec.js → layout-elements-action.spec.js} +81 -62
- package/lib/features/layout/layout-elements-action.spec.js.map +1 -0
- package/lib/features/layout/vbox-layout.d.ts +17 -1
- package/lib/features/layout/vbox-layout.d.ts.map +1 -1
- package/lib/features/layout/vbox-layout.js +9 -8
- package/lib/features/layout/vbox-layout.js.map +1 -1
- package/lib/features/model-source-watcher/di.config.js +1 -1
- package/lib/features/model-source-watcher/di.config.js.map +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js +11 -11
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
- package/lib/features/mouse-tool/di.config.d.ts +1 -1
- package/lib/features/mouse-tool/di.config.d.ts.map +1 -1
- package/lib/features/mouse-tool/di.config.js +2 -2
- package/lib/features/mouse-tool/di.config.js.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts +9 -6
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +10 -48
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
- package/lib/features/navigation/di.config.js +4 -4
- package/lib/features/navigation/di.config.js.map +1 -1
- package/lib/features/navigation/navigation-action-handler.d.ts +31 -16
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
- package/lib/features/navigation/navigation-action-handler.js +52 -68
- package/lib/features/navigation/navigation-action-handler.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.d.ts +3 -3
- package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.js +8 -9
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.js +12 -12
- package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
- package/lib/features/reconnect/model.d.ts +1 -1
- package/lib/features/reconnect/model.d.ts.map +1 -1
- package/lib/features/reconnect/model.js +1 -1
- package/lib/features/reconnect/model.js.map +1 -1
- package/lib/features/save/di.config.d.ts +1 -1
- package/lib/features/save/di.config.d.ts.map +1 -1
- package/lib/features/save/di.config.js +3 -3
- package/lib/features/save/di.config.js.map +1 -1
- package/lib/features/save/save-keylistener.d.ts +1 -1
- package/lib/features/save/save-keylistener.d.ts.map +1 -1
- package/lib/features/save/save-keylistener.js +3 -3
- package/lib/features/save/save-keylistener.js.map +1 -1
- package/lib/features/select/di.config.d.ts +1 -1
- package/lib/features/select/di.config.d.ts.map +1 -1
- package/lib/features/select/di.config.js +7 -8
- package/lib/features/select/di.config.js.map +1 -1
- package/lib/features/select/select-feedback-action.d.ts +26 -22
- package/lib/features/select/select-feedback-action.d.ts.map +1 -1
- package/lib/features/select/select-feedback-action.js +19 -46
- package/lib/features/select/select-feedback-action.js.map +1 -1
- package/lib/features/select/select-mouse-listener.d.ts +4 -2
- package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
- package/lib/features/select/select-mouse-listener.js +63 -1
- package/lib/features/select/select-mouse-listener.js.map +1 -1
- package/lib/features/select/selection-service.d.ts +14 -5
- package/lib/features/select/selection-service.d.ts.map +1 -1
- package/lib/features/select/selection-service.js +55 -64
- package/lib/features/select/selection-service.js.map +1 -1
- package/lib/features/select/selection-service.spec.js +28 -25
- package/lib/features/select/selection-service.spec.js.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +17 -9
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +68 -38
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +24 -12
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +88 -35
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +17 -10
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/css-feedback.js +42 -38
- package/lib/features/tool-feedback/css-feedback.js.map +1 -1
- package/lib/features/tool-feedback/di.config.d.ts +1 -1
- package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
- package/lib/features/tool-feedback/di.config.js +18 -18
- package/lib/features/tool-feedback/di.config.js.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +45 -22
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +147 -114
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +2 -2
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.js +4 -4
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +21 -10
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -18
- package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/model.d.ts +1 -2
- package/lib/features/tool-feedback/model.d.ts.map +1 -1
- package/lib/features/tool-feedback/model.js +1 -1
- package/lib/features/tool-feedback/model.js.map +1 -1
- package/lib/features/tool-feedback/view.d.ts +1 -1
- package/lib/features/tool-feedback/view.d.ts.map +1 -1
- package/lib/features/tool-feedback/view.js +22 -5
- package/lib/features/tool-feedback/view.js.map +1 -1
- package/lib/features/tool-palette/di.config.d.ts +1 -1
- package/lib/features/tool-palette/di.config.d.ts.map +1 -1
- package/lib/features/tool-palette/di.config.js +5 -4
- package/lib/features/tool-palette/di.config.js.map +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts +10 -7
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +39 -32
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.d.ts +3 -3
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
- package/lib/features/tools/base-glsp-tool.js +11 -11
- package/lib/features/tools/base-glsp-tool.js.map +1 -1
- package/lib/features/tools/change-bounds-tool.d.ts +7 -9
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
- package/lib/features/tools/change-bounds-tool.js +48 -71
- package/lib/features/tools/change-bounds-tool.js.map +1 -1
- package/lib/features/tools/delete-tool.d.ts +1 -1
- package/lib/features/tools/delete-tool.d.ts.map +1 -1
- package/lib/features/tools/delete-tool.js +17 -17
- package/lib/features/tools/delete-tool.js.map +1 -1
- package/lib/features/tools/di.config.d.ts +9 -2
- package/lib/features/tools/di.config.d.ts.map +1 -1
- package/lib/features/tools/di.config.js +26 -15
- package/lib/features/tools/di.config.js.map +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +28 -21
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts +3 -2
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +41 -36
- package/lib/features/tools/edge-edit-tool.js.map +1 -1
- package/lib/features/{tool-palette/palette-item.d.ts → tools/enable-default-tools-on-focus-loss.d.ts} +11 -11
- package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts.map +1 -0
- package/lib/features/tools/enable-default-tools-on-focus-loss.js +29 -0
- package/lib/features/tools/enable-default-tools-on-focus-loss.js.map +1 -0
- package/lib/features/tools/marquee-behavior.d.ts +1 -1
- package/lib/features/tools/marquee-behavior.js +2 -2
- package/lib/features/tools/marquee-behavior.js.map +1 -1
- package/lib/features/tools/marquee-behavior.spec.js +63 -63
- package/lib/features/tools/marquee-behavior.spec.js.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.d.ts +1 -1
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +20 -20
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
- package/lib/features/tools/marquee-tool.d.ts +1 -1
- package/lib/features/tools/marquee-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-tool.js +4 -4
- package/lib/features/tools/marquee-tool.js.map +1 -1
- package/lib/features/tools/model.d.ts +3 -2
- package/lib/features/tools/model.d.ts.map +1 -1
- package/lib/features/tools/model.js +0 -15
- package/lib/features/tools/model.js.map +1 -1
- package/lib/features/tools/node-creation-tool.d.ts +1 -1
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/node-creation-tool.js +17 -17
- package/lib/features/tools/node-creation-tool.js.map +1 -1
- package/lib/features/tools/view.d.ts.map +1 -1
- package/lib/features/tools/view.js +2 -2
- package/lib/features/tools/view.js.map +1 -1
- package/lib/features/validation/di.config.d.ts +0 -15
- package/lib/features/validation/di.config.d.ts.map +1 -1
- package/lib/features/validation/di.config.js +9 -7
- package/lib/features/validation/di.config.js.map +1 -1
- package/lib/features/validation/issue-marker.d.ts +10 -5
- package/lib/features/validation/issue-marker.d.ts.map +1 -1
- package/lib/features/validation/issue-marker.js +12 -4
- package/lib/features/validation/issue-marker.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts +27 -25
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +64 -91
- package/lib/features/validation/marker-navigator.js.map +1 -1
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.spec.js +23 -37
- package/lib/features/validation/marker-navigator.spec.js.map +1 -1
- package/lib/features/validation/validate.d.ts +17 -30
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +66 -90
- package/lib/features/validation/validate.js.map +1 -1
- package/lib/features/viewport/di.config.d.ts +1 -1
- package/lib/features/viewport/di.config.d.ts.map +1 -1
- package/lib/features/viewport/di.config.js +7 -7
- package/lib/features/viewport/di.config.js.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +3 -3
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
- package/lib/index.d.ts +8 -9
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +15 -11
- package/lib/index.js.map +1 -1
- package/lib/lib/model.d.ts +3 -2
- package/lib/lib/model.d.ts.map +1 -1
- package/lib/lib/model.js +3 -18
- package/lib/lib/model.js.map +1 -1
- package/lib/model-source/glsp-diagram-server.d.ts +6 -6
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +8 -7
- package/lib/model-source/glsp-diagram-server.js.map +1 -1
- package/lib/sprotty-reexport.d.ts +174 -0
- package/lib/sprotty-reexport.d.ts.map +1 -0
- package/lib/sprotty-reexport.js +299 -0
- package/lib/sprotty-reexport.js.map +1 -0
- package/lib/utils/argument-utils.js +5 -5
- package/lib/utils/argument-utils.js.map +1 -1
- package/lib/utils/layout-utils.d.ts +6 -22
- package/lib/utils/layout-utils.d.ts.map +1 -1
- package/lib/utils/layout-utils.js +1 -1
- package/lib/utils/layout-utils.js.map +1 -1
- package/lib/utils/smodel-util.d.ts +117 -11
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +142 -37
- package/lib/utils/smodel-util.js.map +1 -1
- package/lib/utils/viewpoint-util.d.ts +3 -3
- package/lib/utils/viewpoint-util.d.ts.map +1 -1
- package/lib/utils/viewpoint-util.js +19 -3
- package/lib/utils/viewpoint-util.js.map +1 -1
- package/lib/views/base-view-module.d.ts.map +1 -1
- package/lib/views/base-view-module.js +21 -19
- package/lib/views/base-view-module.js.map +1 -1
- package/lib/views/compartments.js +2 -2
- package/lib/views/compartments.js.map +1 -1
- package/lib/views/glsp-edge-view.d.ts +1 -1
- package/lib/views/glsp-edge-view.d.ts.map +1 -1
- package/lib/views/glsp-edge-view.js +1 -1
- package/lib/views/glsp-edge-view.js.map +1 -1
- package/lib/views/glsp-projection-view.d.ts +30 -0
- package/lib/views/glsp-projection-view.d.ts.map +1 -0
- package/lib/views/glsp-projection-view.js +142 -0
- package/lib/views/glsp-projection-view.js.map +1 -0
- package/lib/views/index.d.ts +1 -0
- package/lib/views/index.d.ts.map +1 -1
- package/lib/views/index.js +7 -2
- package/lib/views/index.js.map +1 -1
- package/lib/views/issue-marker-view.d.ts.map +1 -1
- package/lib/views/issue-marker-view.js +3 -3
- package/lib/views/issue-marker-view.js.map +1 -1
- package/lib/views/rounded-corner-view.d.ts.map +1 -1
- package/lib/views/rounded-corner-view.js +2 -2
- package/lib/views/rounded-corner-view.js.map +1 -1
- package/package.json +8 -18
- package/src/base/action-dispatcher.ts +26 -16
- package/src/base/actions/focus-change-action.ts +25 -8
- package/src/base/actions/sprotty-actions.ts +26 -0
- package/src/base/auto-complete/auto-complete-actions.ts +7 -5
- package/src/base/auto-complete/auto-complete-widget.ts +15 -13
- package/src/base/command-stack.ts +7 -6
- package/src/base/container-modules.ts +4 -3
- package/src/base/di.config.ts +4 -5
- package/src/base/drag-aware-mouse-listener.ts +4 -4
- package/src/base/editor-context-service.ts +32 -12
- package/src/base/focus-tracker.ts +5 -4
- package/src/base/model/model-registry.ts +2 -2
- package/src/base/model/update-model-command.ts +54 -41
- package/src/base/model-initialization-constraint.ts +9 -11
- package/src/base/selection-clearing-mouse-listener.ts +1 -1
- package/src/base/source-uri-aware.ts +5 -4
- package/src/base/tool-manager/glsp-tool-manager.ts +9 -9
- package/src/base/tool-manager/tool-actions.ts +37 -0
- package/src/base/types.ts +31 -24
- package/src/base/view/view-registry.ts +2 -2
- package/src/features/change-bounds/model.ts +5 -5
- package/src/features/change-bounds/movement-restrictor.ts +74 -44
- package/src/features/change-bounds/snap.spec.ts +89 -0
- package/src/features/change-bounds/snap.ts +99 -12
- package/src/features/command-palette/di.config.ts +5 -7
- package/src/features/command-palette/server-command-palette-provider.ts +9 -8
- package/src/features/context-menu/delete-element-context-menu.ts +6 -6
- package/src/features/context-menu/di.config.ts +3 -2
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +51 -29
- package/src/features/context-menu/server-context-menu-provider.ts +7 -6
- package/src/features/copy-paste/copy-paste-context-menu.ts +30 -23
- package/src/features/copy-paste/copy-paste-handler.ts +6 -6
- package/src/features/copy-paste/di.config.ts +7 -15
- package/src/features/decoration/decoration-placer.ts +4 -4
- package/src/features/decoration/di.config.ts +3 -5
- package/src/features/edit-label/di.config.ts +4 -5
- package/src/features/edit-label/edit-label-tool.ts +1 -2
- package/src/features/edit-label/edit-label-validator.ts +6 -10
- package/src/features/hints/di.config.ts +3 -3
- package/src/features/hints/type-hints.ts +33 -18
- package/src/features/hover/di.config.ts +8 -2
- package/src/features/hover/hover.ts +53 -11
- package/src/features/layout/di.config.ts +15 -7
- package/src/features/layout/freeform-layout.ts +6 -15
- package/src/features/layout/hbox-layout.ts +256 -0
- package/src/features/layout/{layout-commands.spec.ts → layout-elements-action.spec.ts} +89 -65
- package/src/features/layout/layout-elements-action.ts +486 -0
- package/src/features/layout/vbox-layout.ts +20 -20
- package/src/features/model-source-watcher/model-source-changed-action-handler.ts +7 -12
- package/src/features/mouse-tool/di.config.ts +3 -4
- package/src/features/mouse-tool/mouse-tool.ts +18 -57
- package/src/features/navigation/navigation-action-handler.ts +76 -42
- package/src/features/navigation/navigation-target-resolver.spec.ts +3 -3
- package/src/features/navigation/navigation-target-resolver.ts +8 -13
- package/src/features/reconnect/model.ts +2 -2
- package/src/features/save/di.config.ts +2 -3
- package/src/features/save/save-keylistener.ts +3 -3
- package/src/features/select/di.config.ts +6 -8
- package/src/features/select/select-feedback-action.ts +18 -46
- package/src/features/select/select-mouse-listener.ts +82 -3
- package/src/features/select/selection-service.spec.ts +12 -9
- package/src/features/select/selection-service.ts +52 -60
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +52 -22
- package/src/features/tool-feedback/creation-tool-feedback.ts +79 -30
- package/src/features/tool-feedback/css-feedback.ts +40 -37
- package/src/features/tool-feedback/di.config.ts +4 -5
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +140 -88
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +4 -3
- package/src/features/tool-feedback/marquee-tool-feedback.ts +38 -13
- package/src/features/tool-feedback/model.ts +1 -3
- package/src/features/tool-feedback/view.tsx +3 -3
- package/src/features/tool-palette/di.config.ts +3 -2
- package/src/features/tool-palette/tool-palette.ts +35 -19
- package/src/features/tools/base-glsp-tool.ts +11 -11
- package/src/features/tools/change-bounds-tool.ts +37 -67
- package/src/features/tools/delete-tool.ts +9 -9
- package/src/features/tools/di.config.ts +23 -12
- package/src/features/tools/edge-creation-tool.ts +21 -12
- package/src/features/tools/edge-edit-tool.ts +25 -21
- package/src/features/tools/enable-default-tools-on-focus-loss.ts +33 -0
- package/src/features/tools/marquee-behavior.ts +2 -2
- package/src/features/tools/marquee-mouse-tool.ts +13 -14
- package/src/features/tools/marquee-tool.ts +3 -3
- package/src/features/tools/model.ts +4 -3
- package/src/features/tools/node-creation-tool.ts +8 -8
- package/src/features/tools/view.tsx +2 -3
- package/src/features/validation/di.config.ts +13 -11
- package/src/features/validation/issue-marker.ts +22 -12
- package/src/features/validation/marker-navigator.spec.ts +4 -2
- package/src/features/validation/marker-navigator.ts +67 -82
- package/src/features/validation/validate.ts +62 -89
- package/src/features/viewport/di.config.ts +1 -2
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
- package/src/index.ts +9 -9
- package/src/lib/model.ts +4 -4
- package/src/model-source/glsp-diagram-server.ts +15 -15
- package/src/sprotty-reexport.ts +283 -0
- package/src/utils/layout-utils.ts +9 -29
- package/src/utils/smodel-util.ts +139 -43
- package/src/utils/viewpoint-util.ts +5 -14
- package/src/views/base-view-module.ts +5 -1
- package/src/views/compartments.tsx +1 -1
- package/src/views/glsp-edge-view.tsx +4 -4
- package/src/views/glsp-projection-view.tsx +166 -0
- package/src/views/index.ts +2 -0
- package/src/views/issue-marker-view.tsx +2 -2
- package/src/views/rounded-corner-view.tsx +2 -3
- package/lib/features/layout/layout-commands.d.ts +0 -153
- package/lib/features/layout/layout-commands.d.ts.map +0 -1
- package/lib/features/layout/layout-commands.js +0 -412
- package/lib/features/layout/layout-commands.js.map +0 -1
- package/lib/features/layout/layout-commands.spec.d.ts +0 -3
- package/lib/features/layout/layout-commands.spec.d.ts.map +0 -1
- package/lib/features/layout/layout-commands.spec.js.map +0 -1
- package/lib/features/tool-palette/palette-item.d.ts.map +0 -1
- package/lib/features/tool-palette/palette-item.js.map +0 -1
- package/lib/protocol-reexport.d.ts +0 -45
- package/lib/protocol-reexport.d.ts.map +0 -1
- package/lib/protocol-reexport.js +0 -75
- package/lib/protocol-reexport.js.map +0 -1
- package/src/features/layout/layout-commands.ts +0 -424
- package/src/features/tool-palette/palette-item.ts +0 -38
- package/src/protocol-reexport.ts +0 -64
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
/* eslint-disable import/no-deprecated,no-unused-expressions */
|
|
17
|
+
import { SNodeSchema } from '@eclipse-glsp/protocol';
|
|
17
18
|
import { expect } from 'chai';
|
|
18
19
|
import { Container } from 'inversify';
|
|
19
20
|
import 'mocha';
|
|
@@ -26,7 +27,6 @@ import {
|
|
|
26
27
|
SIssueMarker,
|
|
27
28
|
SModelElement,
|
|
28
29
|
SModelRoot,
|
|
29
|
-
SNodeSchema,
|
|
30
30
|
SParentElement,
|
|
31
31
|
TYPES
|
|
32
32
|
} from 'sprotty';
|
|
@@ -38,7 +38,9 @@ import { MarkerNavigator } from './marker-navigator';
|
|
|
38
38
|
describe('MarkerNavigator', () => {
|
|
39
39
|
const container = new Container();
|
|
40
40
|
container.load(defaultModule, decorationModule, markerNavigatorModule);
|
|
41
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
41
42
|
container.rebind(TYPES.IModelFactory).to(SGraphFactory).inSingletonScope();
|
|
43
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
42
44
|
const graphFactory = container.get<SGraphFactory>(TYPES.IModelFactory);
|
|
43
45
|
const markerNavigator = container.get<MarkerNavigator>(MarkerNavigator);
|
|
44
46
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,45 +13,60 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Action, CenterAction, Point } from '@eclipse-glsp/protocol';
|
|
16
|
+
import { Action, CenterAction, hasArrayProp, hasStringProp, Point, SelectAction } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
18
|
import {
|
|
19
|
+
ActionDispatcher,
|
|
19
20
|
BoundsAware,
|
|
20
|
-
CenterCommand,
|
|
21
|
-
Command,
|
|
22
|
-
CommandExecutionContext,
|
|
23
|
-
CommandReturn,
|
|
24
21
|
findParentByFeature,
|
|
22
|
+
IActionHandler,
|
|
25
23
|
IContextMenuItemProvider,
|
|
26
24
|
isBoundsAware,
|
|
27
25
|
isSelectable,
|
|
28
26
|
KeyListener,
|
|
29
27
|
MenuItem,
|
|
30
28
|
Selectable,
|
|
31
|
-
SelectAction,
|
|
32
29
|
SIssueMarker,
|
|
33
30
|
SIssueSeverity,
|
|
34
31
|
SModelElement,
|
|
35
|
-
SModelRoot
|
|
36
|
-
TYPES
|
|
32
|
+
SModelRoot
|
|
37
33
|
} from 'sprotty';
|
|
38
34
|
import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
|
|
39
|
-
import {
|
|
35
|
+
import { TYPES } from '../../base/types';
|
|
40
36
|
import { collectIssueMarkers, MarkerPredicates } from '../../utils/marker';
|
|
41
|
-
import { isSelectableAndBoundsAware } from '../../utils/smodel-util';
|
|
42
|
-
import {
|
|
37
|
+
import { getElements, isSelectableAndBoundsAware } from '../../utils/smodel-util';
|
|
38
|
+
import { SelectionService } from '../select/selection-service';
|
|
43
39
|
|
|
44
|
-
export
|
|
45
|
-
|
|
40
|
+
export interface NavigateToMarkerAction extends Action {
|
|
41
|
+
kind: typeof NavigateToMarkerAction.KIND;
|
|
46
42
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
public readonly severities: SIssueSeverity[] = MarkerNavigator.ALL_SEVERITIES,
|
|
51
|
-
public kind = NavigateToMarkerAction.KIND
|
|
52
|
-
) {}
|
|
43
|
+
direction: MarkerNavigationDirection;
|
|
44
|
+
selectedElementIds?: string[];
|
|
45
|
+
severities: SIssueSeverity[];
|
|
53
46
|
}
|
|
54
47
|
|
|
48
|
+
export type MarkerNavigationDirection = 'next' | 'previous';
|
|
49
|
+
|
|
50
|
+
export namespace NavigateToMarkerAction {
|
|
51
|
+
export const KIND = 'navigateToMarker';
|
|
52
|
+
|
|
53
|
+
export function is(object: any): object is NavigateToMarkerAction {
|
|
54
|
+
return Action.hasKind(object, KIND) && hasStringProp(object, 'direction') && hasArrayProp(object, 'severities');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function create(options: {
|
|
58
|
+
direction?: MarkerNavigationDirection;
|
|
59
|
+
selectedElementIds?: string[];
|
|
60
|
+
severities?: SIssueSeverity[];
|
|
61
|
+
}): NavigateToMarkerAction {
|
|
62
|
+
return {
|
|
63
|
+
kind: KIND,
|
|
64
|
+
direction: 'next',
|
|
65
|
+
severities: MarkerNavigator.ALL_SEVERITIES,
|
|
66
|
+
...options
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
55
70
|
export class SModelElementComparator {
|
|
56
71
|
compare(_one: SModelElement, _other: SModelElement): number {
|
|
57
72
|
return 0;
|
|
@@ -89,7 +104,7 @@ export class MarkerNavigator {
|
|
|
89
104
|
protected markerComparator: SModelElementComparator;
|
|
90
105
|
|
|
91
106
|
next(
|
|
92
|
-
root: SModelRoot
|
|
107
|
+
root: Readonly<SModelRoot>,
|
|
93
108
|
current?: SModelElement & BoundsAware,
|
|
94
109
|
predicate: (marker: SIssueMarker) => boolean = MarkerPredicates.ALL
|
|
95
110
|
): SIssueMarker | undefined {
|
|
@@ -101,7 +116,7 @@ export class MarkerNavigator {
|
|
|
101
116
|
}
|
|
102
117
|
|
|
103
118
|
previous(
|
|
104
|
-
root: SModelRoot
|
|
119
|
+
root: Readonly<SModelRoot>,
|
|
105
120
|
current?: SModelElement & BoundsAware,
|
|
106
121
|
predicate: (marker: SIssueMarker) => boolean = MarkerPredicates.ALL
|
|
107
122
|
): SIssueMarker | undefined {
|
|
@@ -112,7 +127,7 @@ export class MarkerNavigator {
|
|
|
112
127
|
return markers[this.getPreviousIndex(current, markers) % markers.length];
|
|
113
128
|
}
|
|
114
129
|
|
|
115
|
-
protected getMarkers(root: SModelRoot
|
|
130
|
+
protected getMarkers(root: Readonly<SModelRoot>, predicate: (marker: SIssueMarker) => boolean): SIssueMarker[] {
|
|
116
131
|
const markers = collectIssueMarkers(root);
|
|
117
132
|
return markers.filter(predicate).sort(this.markerComparator.compare);
|
|
118
133
|
}
|
|
@@ -137,86 +152,56 @@ export class MarkerNavigator {
|
|
|
137
152
|
}
|
|
138
153
|
|
|
139
154
|
@injectable()
|
|
140
|
-
export class
|
|
141
|
-
static KIND = NavigateToMarkerAction.KIND;
|
|
142
|
-
|
|
155
|
+
export class NavigateToMarkerActionHandler implements IActionHandler {
|
|
143
156
|
@inject(SModelElementComparator)
|
|
144
157
|
protected markerComparator: SModelElementComparator;
|
|
145
158
|
|
|
146
159
|
@inject(MarkerNavigator)
|
|
147
160
|
protected markerNavigator: MarkerNavigator;
|
|
148
161
|
|
|
149
|
-
@inject(
|
|
162
|
+
@inject(TYPES.SelectionService)
|
|
150
163
|
protected selectionService: SelectionService;
|
|
151
164
|
|
|
152
|
-
|
|
153
|
-
protected
|
|
165
|
+
@inject(TYPES.IActionDispatcher)
|
|
166
|
+
protected actionDispatcher: ActionDispatcher;
|
|
154
167
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
168
|
+
handle(action: NavigateToMarkerAction): void {
|
|
169
|
+
const selected = this.getSelectedElements(action);
|
|
170
|
+
const target = this.getTarget(action, selected);
|
|
158
171
|
|
|
159
|
-
|
|
160
|
-
const root = context.root;
|
|
161
|
-
const selected = this.getSelectedElements(root);
|
|
162
|
-
const target = this.getTarget(selected, root);
|
|
163
|
-
if (target === undefined) {
|
|
164
|
-
return root;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
const selectableTarget = findParentByFeature(target, isSelectable);
|
|
172
|
+
const selectableTarget = target ? findParentByFeature(target, isSelectable) : undefined;
|
|
168
173
|
if (selectableTarget) {
|
|
169
|
-
const
|
|
170
|
-
this.
|
|
171
|
-
this.
|
|
172
|
-
this.centerCommand.execute(context);
|
|
173
|
-
return this.selectCommand.execute(context);
|
|
174
|
+
const deselectedElementsIDs = selected.map(e => e.id).filter(id => id !== selectableTarget.id);
|
|
175
|
+
this.actionDispatcher.dispatch(SelectAction.create({ selectedElementsIDs: [selectableTarget.id], deselectedElementsIDs }));
|
|
176
|
+
this.actionDispatcher.dispatch(CenterAction.create([selectableTarget.id]));
|
|
174
177
|
}
|
|
175
|
-
return root;
|
|
176
178
|
}
|
|
177
179
|
|
|
178
|
-
protected getSelectedElements(
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
selectedIds = this.action.selectedElementIds;
|
|
182
|
-
} else {
|
|
183
|
-
selectedIds = Array.from(this.selectionService.getSelectedElementIDs());
|
|
180
|
+
protected getSelectedElements(action: NavigateToMarkerAction): (SModelElement & Selectable)[] {
|
|
181
|
+
if (action.selectedElementIds && action.selectedElementIds.length > 0) {
|
|
182
|
+
return getElements(this.selectionService.getModelRoot().index, action.selectedElementIds, isSelectable);
|
|
184
183
|
}
|
|
185
|
-
return
|
|
184
|
+
return this.selectionService.getSelectedElements();
|
|
186
185
|
}
|
|
187
186
|
|
|
188
|
-
protected getTarget(selected: SModelElement[]
|
|
189
|
-
const
|
|
190
|
-
const
|
|
191
|
-
if (
|
|
192
|
-
return this.markerNavigator.previous(root,
|
|
187
|
+
protected getTarget(action: NavigateToMarkerAction, selected: SModelElement[]): SIssueMarker | undefined {
|
|
188
|
+
const root = this.selectionService.getModelRoot();
|
|
189
|
+
const target = selected.sort(this.markerComparator.compare).find(isBoundsAware);
|
|
190
|
+
if (action.direction === 'previous') {
|
|
191
|
+
return this.markerNavigator.previous(root, target, marker => this.matchesSeverities(action, marker));
|
|
193
192
|
} else {
|
|
194
|
-
return this.markerNavigator.next(root,
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
protected matchesSeverities(marker: SIssueMarker): boolean {
|
|
199
|
-
return marker.issues.find(issue => this.action.severities.includes(issue.severity)) !== undefined;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
undo(context: CommandExecutionContext): CommandReturn {
|
|
203
|
-
if (this.selectCommand) {
|
|
204
|
-
context.root = this.selectCommand.undo(context);
|
|
193
|
+
return this.markerNavigator.next(root, target, marker => this.matchesSeverities(action, marker));
|
|
205
194
|
}
|
|
206
|
-
return this.centerCommand ? this.centerCommand.undo(context) : context.root;
|
|
207
195
|
}
|
|
208
196
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
context.root = this.selectCommand.redo(context);
|
|
212
|
-
}
|
|
213
|
-
return this.centerCommand ? this.centerCommand.redo(context) : context.root;
|
|
197
|
+
protected matchesSeverities(action: NavigateToMarkerAction, marker: SIssueMarker): boolean {
|
|
198
|
+
return marker.issues.find(issue => action.severities.includes(issue.severity)) !== undefined;
|
|
214
199
|
}
|
|
215
200
|
}
|
|
216
201
|
|
|
217
202
|
@injectable()
|
|
218
203
|
export class MarkerNavigatorContextMenuItemProvider implements IContextMenuItemProvider {
|
|
219
|
-
@inject(
|
|
204
|
+
@inject(TYPES.SelectionService) protected selectionService: SelectionService;
|
|
220
205
|
|
|
221
206
|
getItems(root: Readonly<SModelRoot>, lastMousePosition?: Point): Promise<MenuItem[]> {
|
|
222
207
|
const selectedElementIds = Array.from(this.selectionService.getSelectedElementIDs());
|
|
@@ -232,14 +217,14 @@ export class MarkerNavigatorContextMenuItemProvider implements IContextMenuItemP
|
|
|
232
217
|
id: 'next-marker',
|
|
233
218
|
label: 'Next marker',
|
|
234
219
|
group: 'marker',
|
|
235
|
-
actions: [
|
|
220
|
+
actions: [NavigateToMarkerAction.create({ direction: 'next', selectedElementIds })],
|
|
236
221
|
isEnabled: () => hasMarkers
|
|
237
222
|
},
|
|
238
223
|
{
|
|
239
224
|
id: 'previous-marker',
|
|
240
225
|
label: 'Previous marker',
|
|
241
226
|
group: 'marker',
|
|
242
|
-
actions: [
|
|
227
|
+
actions: [NavigateToMarkerAction.create({ direction: 'previous', selectedElementIds })],
|
|
243
228
|
isEnabled: () => hasMarkers
|
|
244
229
|
}
|
|
245
230
|
]
|
|
@@ -250,11 +235,11 @@ export class MarkerNavigatorContextMenuItemProvider implements IContextMenuItemP
|
|
|
250
235
|
|
|
251
236
|
@injectable()
|
|
252
237
|
export class MarkerNavigatorKeyListener extends KeyListener {
|
|
253
|
-
keyDown(_element: SModelElement, event: KeyboardEvent): Action[] {
|
|
238
|
+
override keyDown(_element: SModelElement, event: KeyboardEvent): Action[] {
|
|
254
239
|
if (matchesKeystroke(event, 'Period', 'ctrl')) {
|
|
255
|
-
return [
|
|
240
|
+
return [NavigateToMarkerAction.create({ direction: 'next' })];
|
|
256
241
|
} else if (matchesKeystroke(event, 'Comma', 'ctrl')) {
|
|
257
|
-
return [
|
|
242
|
+
return [NavigateToMarkerAction.create({ direction: 'previous' })];
|
|
258
243
|
}
|
|
259
244
|
return [];
|
|
260
245
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,27 +13,16 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Action, DeleteMarkersAction, Marker, SetMarkersAction } from '@eclipse-glsp/protocol';
|
|
16
|
+
import { Action, DeleteMarkersAction, hasArrayProp, Marker, SetMarkersAction } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable, optional } from 'inversify';
|
|
18
|
-
import {
|
|
19
|
-
Command,
|
|
20
|
-
CommandExecutionContext,
|
|
21
|
-
CommandReturn,
|
|
22
|
-
IActionDispatcher,
|
|
23
|
-
SIssue,
|
|
24
|
-
SIssueMarker,
|
|
25
|
-
SModelElement,
|
|
26
|
-
SModelRoot,
|
|
27
|
-
SParentElement,
|
|
28
|
-
TYPES
|
|
29
|
-
} from 'sprotty';
|
|
18
|
+
import { CommandExecutionContext, CommandReturn, IActionDispatcher, IActionHandler, ICommand, SIssueMarker, SParentElement } from 'sprotty';
|
|
30
19
|
import { EditorContextService } from '../../base/editor-context-service';
|
|
31
|
-
import {
|
|
20
|
+
import { TYPES } from '../../base/types';
|
|
32
21
|
import { removeCssClasses } from '../../utils/smodel-util';
|
|
33
22
|
import { getSeverity } from '../hover/hover';
|
|
34
23
|
import { IFeedbackActionDispatcher, IFeedbackEmitter } from '../tool-feedback/feedback-action-dispatcher';
|
|
35
24
|
import { FeedbackCommand } from '../tool-feedback/model';
|
|
36
|
-
import { createSIssue, getOrCreateSIssueMarker, getSIssueMarker } from './issue-marker';
|
|
25
|
+
import { createSIssue, getOrCreateSIssueMarker, getSIssueMarker, GIssueMarker } from './issue-marker';
|
|
37
26
|
|
|
38
27
|
/**
|
|
39
28
|
* Feedback emitter sending actions for visualizing model validation feedback and
|
|
@@ -41,11 +30,11 @@ import { createSIssue, getOrCreateSIssueMarker, getSIssueMarker } from './issue-
|
|
|
41
30
|
*/
|
|
42
31
|
@injectable()
|
|
43
32
|
export class ValidationFeedbackEmitter implements IFeedbackEmitter {
|
|
44
|
-
@inject(
|
|
33
|
+
@inject(TYPES.IFeedbackActionDispatcher) protected feedbackActionDispatcher: IFeedbackActionDispatcher;
|
|
45
34
|
|
|
46
35
|
@inject(TYPES.IActionDispatcherProvider) protected actionDispatcher: () => Promise<IActionDispatcher>;
|
|
47
36
|
|
|
48
|
-
private registeredAction:
|
|
37
|
+
private registeredAction: ApplyMarkersAction;
|
|
49
38
|
|
|
50
39
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
51
40
|
private constructor() {}
|
|
@@ -54,13 +43,13 @@ export class ValidationFeedbackEmitter implements IFeedbackEmitter {
|
|
|
54
43
|
* Register the action that should be emitted for visualizing validation feedback.
|
|
55
44
|
* @param action the action that should be emitted when the model is updated and that will visualize the model validation feedback.
|
|
56
45
|
*/
|
|
57
|
-
registerValidationFeedbackAction(action:
|
|
46
|
+
registerValidationFeedbackAction(action: ApplyMarkersAction): void {
|
|
58
47
|
// De-register old action responsible for applying markers and re-applying them when the model is updated
|
|
59
48
|
this.feedbackActionDispatcher.deregisterFeedback(this, []);
|
|
60
49
|
|
|
61
50
|
// Clear existing markers
|
|
62
51
|
if (this.registeredAction !== undefined) {
|
|
63
|
-
const deleteMarkersAction =
|
|
52
|
+
const deleteMarkersAction = DeleteMarkersAction.create(this.registeredAction.markers);
|
|
64
53
|
this.actionDispatcher().then(dispatcher => dispatcher.dispatch(deleteMarkersAction));
|
|
65
54
|
}
|
|
66
55
|
|
|
@@ -88,101 +77,92 @@ export abstract class ExternalMarkerManager {
|
|
|
88
77
|
|
|
89
78
|
removeMarkers(markers: Marker[]): void {
|
|
90
79
|
if (this.actionDispatcher) {
|
|
91
|
-
this.actionDispatcher.dispatch(
|
|
80
|
+
this.actionDispatcher.dispatch(DeleteMarkersAction.create(markers));
|
|
92
81
|
}
|
|
93
82
|
}
|
|
94
83
|
|
|
95
84
|
abstract setMarkers(markers: Marker[], sourceUri?: string): void;
|
|
96
85
|
}
|
|
97
86
|
|
|
98
|
-
/**
|
|
99
|
-
* Command for handling `SetMarkersAction`
|
|
100
|
-
*/
|
|
101
87
|
@injectable()
|
|
102
|
-
export class
|
|
103
|
-
@inject(ValidationFeedbackEmitter)
|
|
104
|
-
|
|
105
|
-
@inject(EditorContextService) protected editorContextService: EditorContextService;
|
|
88
|
+
export class SetMarkersActionHandler implements IActionHandler {
|
|
89
|
+
@inject(ValidationFeedbackEmitter)
|
|
90
|
+
protected validationFeedbackEmitter: ValidationFeedbackEmitter;
|
|
106
91
|
|
|
107
|
-
|
|
92
|
+
@inject(ExternalMarkerManager)
|
|
93
|
+
@optional()
|
|
94
|
+
protected externalMarkerManager?: ExternalMarkerManager;
|
|
108
95
|
|
|
109
|
-
|
|
110
|
-
|
|
96
|
+
@inject(EditorContextService)
|
|
97
|
+
protected editorContextService: EditorContextService;
|
|
98
|
+
|
|
99
|
+
handle(action: SetMarkersAction): void | Action | ICommand {
|
|
100
|
+
const markers: Marker[] = action.markers;
|
|
101
|
+
this.setMarkers(markers);
|
|
111
102
|
}
|
|
112
103
|
|
|
113
|
-
async
|
|
114
|
-
const markers: Marker[] = this.action.markers;
|
|
104
|
+
async setMarkers(markers: Marker[]): Promise<void> {
|
|
115
105
|
const uri = await this.editorContextService.getSourceUri();
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
const applyMarkersAction: ApplyMarkersAction = new ApplyMarkersAction(markers);
|
|
106
|
+
this.externalMarkerManager?.setMarkers(markers, uri);
|
|
107
|
+
const applyMarkersAction = ApplyMarkersAction.create(markers);
|
|
120
108
|
this.validationFeedbackEmitter.registerValidationFeedbackAction(applyMarkersAction);
|
|
121
|
-
return context.root;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
undo(context: CommandExecutionContext): CommandReturn {
|
|
125
|
-
return context.root;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
redo(context: CommandExecutionContext): CommandReturn {
|
|
129
|
-
return this.execute(context);
|
|
130
109
|
}
|
|
131
110
|
}
|
|
132
111
|
|
|
133
112
|
/**
|
|
134
|
-
*
|
|
113
|
+
* Action for applying makers to the graphical model.
|
|
135
114
|
*/
|
|
136
|
-
export interface
|
|
137
|
-
|
|
115
|
+
export interface ApplyMarkersAction extends Action {
|
|
116
|
+
kind: typeof ApplyMarkersAction.KIND;
|
|
117
|
+
markers: Marker[];
|
|
138
118
|
}
|
|
139
119
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
120
|
+
export namespace ApplyMarkersAction {
|
|
121
|
+
export const KIND = 'applyMarkers';
|
|
122
|
+
|
|
123
|
+
export function is(object: any): object is ApplyMarkersAction {
|
|
124
|
+
return Action.hasKind(object, KIND) && hasArrayProp(object, 'markers');
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export function create(markers: Marker[]): ApplyMarkersAction {
|
|
128
|
+
return {
|
|
129
|
+
kind: KIND,
|
|
130
|
+
markers
|
|
131
|
+
};
|
|
132
|
+
}
|
|
146
133
|
}
|
|
147
134
|
|
|
148
135
|
/**
|
|
149
|
-
*
|
|
136
|
+
* Handles {@link ApplyMarkersAction}s by creating the corresponding {@link SIssueMarker}s and
|
|
137
|
+
* adding them to the graphical model.
|
|
150
138
|
*/
|
|
151
139
|
@injectable()
|
|
152
140
|
export class ApplyMarkersCommand extends FeedbackCommand {
|
|
153
|
-
static KIND =
|
|
154
|
-
readonly priority = 0;
|
|
141
|
+
static KIND = ApplyMarkersAction.KIND;
|
|
155
142
|
|
|
156
143
|
constructor(@inject(TYPES.Action) protected action: ApplyMarkersAction) {
|
|
157
144
|
super();
|
|
158
145
|
}
|
|
159
146
|
|
|
160
147
|
execute(context: CommandExecutionContext): CommandReturn {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
const modelElement: SModelElement | undefined = context.root.index.getById(marker.elementId);
|
|
148
|
+
this.action.markers.forEach(marker => {
|
|
149
|
+
const modelElement = context.root.index.getById(marker.elementId);
|
|
164
150
|
if (modelElement instanceof SParentElement) {
|
|
165
|
-
const issueMarker
|
|
166
|
-
const issue
|
|
151
|
+
const issueMarker = getOrCreateSIssueMarker(modelElement);
|
|
152
|
+
const issue = createSIssue(marker);
|
|
167
153
|
issueMarker.issues.push(issue);
|
|
154
|
+
if (issueMarker instanceof GIssueMarker) {
|
|
155
|
+
issueMarker.computeProjectionCssClasses();
|
|
156
|
+
}
|
|
168
157
|
addMaxSeverityCSSClassToIssueParent(modelElement, issueMarker);
|
|
169
158
|
}
|
|
170
|
-
}
|
|
159
|
+
});
|
|
171
160
|
return context.root;
|
|
172
161
|
}
|
|
173
|
-
|
|
174
|
-
undo(context: CommandExecutionContext): CommandReturn {
|
|
175
|
-
return context.root;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
redo(context: CommandExecutionContext): CommandReturn {
|
|
179
|
-
return this.execute(context);
|
|
180
|
-
}
|
|
181
162
|
}
|
|
182
163
|
|
|
183
164
|
function addMaxSeverityCSSClassToIssueParent(modelElement: SParentElement, issueMarker: SIssueMarker): void {
|
|
184
165
|
const maxSeverityCSSClass = getSeverity(issueMarker);
|
|
185
|
-
|
|
186
166
|
if (!modelElement.cssClasses) {
|
|
187
167
|
modelElement.cssClasses = [maxSeverityCSSClass];
|
|
188
168
|
} else {
|
|
@@ -192,14 +172,15 @@ function addMaxSeverityCSSClassToIssueParent(modelElement: SParentElement, issue
|
|
|
192
172
|
}
|
|
193
173
|
|
|
194
174
|
function removeCSSClassFromIssueParent(modelElement: SParentElement, issueMarker: SIssueMarker): void {
|
|
195
|
-
|
|
175
|
+
const severity = getSeverity(issueMarker);
|
|
176
|
+
removeCssClasses(modelElement, [severity]);
|
|
196
177
|
}
|
|
197
178
|
|
|
198
179
|
/**
|
|
199
180
|
* Command for handling `DeleteMarkersAction`
|
|
200
181
|
*/
|
|
201
182
|
@injectable()
|
|
202
|
-
export class DeleteMarkersCommand extends
|
|
183
|
+
export class DeleteMarkersCommand extends FeedbackCommand {
|
|
203
184
|
static KIND = DeleteMarkersAction.KIND;
|
|
204
185
|
|
|
205
186
|
constructor(@inject(TYPES.Action) protected action: DeleteMarkersAction) {
|
|
@@ -207,15 +188,14 @@ export class DeleteMarkersCommand extends Command {
|
|
|
207
188
|
}
|
|
208
189
|
|
|
209
190
|
execute(context: CommandExecutionContext): CommandReturn {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
const modelElement: SModelElement | undefined = context.root.index.getById(marker.elementId);
|
|
191
|
+
this.action.markers.forEach(marker => {
|
|
192
|
+
const modelElement = context.root.index.getById(marker.elementId);
|
|
213
193
|
if (modelElement instanceof SParentElement) {
|
|
214
|
-
const issueMarker
|
|
215
|
-
if (issueMarker
|
|
194
|
+
const issueMarker = getSIssueMarker(modelElement);
|
|
195
|
+
if (issueMarker) {
|
|
216
196
|
removeCSSClassFromIssueParent(modelElement, issueMarker);
|
|
217
197
|
for (let index = 0; index < issueMarker.issues.length; ++index) {
|
|
218
|
-
const issue
|
|
198
|
+
const issue = issueMarker.issues[index];
|
|
219
199
|
if (issue.message === marker.description) {
|
|
220
200
|
issueMarker.issues.splice(index--, 1);
|
|
221
201
|
}
|
|
@@ -227,15 +207,8 @@ export class DeleteMarkersCommand extends Command {
|
|
|
227
207
|
}
|
|
228
208
|
}
|
|
229
209
|
}
|
|
230
|
-
}
|
|
231
|
-
return context.root;
|
|
232
|
-
}
|
|
210
|
+
});
|
|
233
211
|
|
|
234
|
-
undo(context: CommandExecutionContext): CommandReturn {
|
|
235
212
|
return context.root;
|
|
236
213
|
}
|
|
237
|
-
|
|
238
|
-
redo(context: CommandExecutionContext): CommandReturn {
|
|
239
|
-
return this.execute(context);
|
|
240
|
-
}
|
|
241
214
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2021-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -27,7 +27,6 @@ import {
|
|
|
27
27
|
TYPES,
|
|
28
28
|
ZoomMouseListener
|
|
29
29
|
} from 'sprotty';
|
|
30
|
-
|
|
31
30
|
import { GLSPScrollMouseListener } from './glsp-scroll-mouse-listener';
|
|
32
31
|
|
|
33
32
|
const glspViewportModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2021-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -23,16 +23,16 @@ export class GLSPScrollMouseListener extends ScrollMouseListener implements IAct
|
|
|
23
23
|
preventScrolling = false;
|
|
24
24
|
|
|
25
25
|
handle(action: Action): void | Action | ICommand {
|
|
26
|
-
if (action
|
|
27
|
-
if (action.toolIds.includes(MarqueeMouseTool.ID)) {
|
|
26
|
+
if (action.kind === EnableToolsAction.KIND) {
|
|
27
|
+
if ((action as EnableToolsAction).toolIds.includes(MarqueeMouseTool.ID)) {
|
|
28
28
|
this.preventScrolling = true;
|
|
29
29
|
}
|
|
30
|
-
} else if (action
|
|
30
|
+
} else if (action.kind === EnableDefaultToolsAction.KIND) {
|
|
31
31
|
this.preventScrolling = false;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
mouseDown(target: SModelElement, event: MouseEvent): (Action | Promise<Action>)[] {
|
|
35
|
+
override mouseDown(target: SModelElement, event: MouseEvent): (Action | Promise<Action>)[] {
|
|
36
36
|
if (this.preventScrolling) {
|
|
37
37
|
return [];
|
|
38
38
|
}
|