@eclipse-glsp/client 0.10.0-next.ca17587.154 → 1.1.0-RC01
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 +10 -9
- 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 +146 -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 -5
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +44 -19
- 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 +12 -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 +201 -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/layouter.d.ts +37 -0
- package/lib/features/layout/layouter.d.ts.map +1 -0
- package/lib/features/layout/layouter.js +131 -0
- package/lib/features/layout/layouter.js.map +1 -0
- package/lib/features/layout/tests/freeform-layout.spec.d.ts +3 -0
- package/lib/features/layout/tests/freeform-layout.spec.d.ts.map +1 -0
- package/lib/features/layout/tests/freeform-layout.spec.js +201 -0
- package/lib/features/layout/tests/freeform-layout.spec.js.map +1 -0
- package/lib/features/layout/tests/hbox-layout.spec.d.ts +3 -0
- package/lib/features/layout/tests/hbox-layout.spec.d.ts.map +1 -0
- package/lib/features/layout/tests/hbox-layout.spec.js +161 -0
- package/lib/features/layout/tests/hbox-layout.spec.js.map +1 -0
- package/lib/features/layout/tests/layouter-test-util.d.ts +34 -0
- package/lib/features/layout/tests/layouter-test-util.d.ts.map +1 -0
- package/lib/features/layout/tests/layouter-test-util.js +96 -0
- package/lib/features/layout/tests/layouter-test-util.js.map +1 -0
- package/lib/features/layout/tests/vbox-layout.spec.d.ts +3 -0
- package/lib/features/layout/tests/vbox-layout.spec.d.ts.map +1 -0
- package/lib/features/layout/tests/vbox-layout.spec.js +161 -0
- package/lib/features/layout/tests/vbox-layout.spec.js.map +1 -0
- package/lib/features/layout/vbox-layout.d.ts +18 -2
- package/lib/features/layout/vbox-layout.d.ts.map +1 -1
- package/lib/features/layout/vbox-layout.js +26 -13
- package/lib/features/layout/vbox-layout.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/source-model-watcher/di.config.d.ts +4 -0
- package/lib/features/{model-source-watcher → source-model-watcher}/di.config.d.ts.map +1 -1
- package/lib/features/{model-source-watcher → source-model-watcher}/di.config.js +4 -4
- package/lib/features/source-model-watcher/di.config.js.map +1 -0
- package/lib/features/{model-source-watcher/model-source-changed-action-handler.d.ts → source-model-watcher/source-model-changed-action-handler.d.ts} +10 -10
- package/lib/features/source-model-watcher/source-model-changed-action-handler.d.ts.map +1 -0
- package/lib/features/{model-source-watcher/model-source-changed-action-handler.js → source-model-watcher/source-model-changed-action-handler.js} +28 -28
- package/lib/features/source-model-watcher/source-model-changed-action-handler.js.map +1 -0
- 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 +11 -5
- package/lib/features/validation/issue-marker.d.ts.map +1 -1
- package/lib/features/validation/issue-marker.js +25 -5
- 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 -91
- 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 +10 -11
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +26 -22
- 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 +301 -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 +148 -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 +10 -19
- 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 +6 -5
- 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 +48 -28
- package/src/features/layout/di.config.ts +17 -7
- package/src/features/layout/freeform-layout.ts +6 -15
- package/src/features/layout/hbox-layout.ts +273 -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/layouter.ts +137 -0
- package/src/features/layout/tests/freeform-layout.spec.ts +216 -0
- package/src/features/layout/tests/hbox-layout.spec.ts +171 -0
- package/src/features/layout/tests/layouter-test-util.ts +122 -0
- package/src/features/layout/tests/vbox-layout.spec.ts +171 -0
- package/src/features/layout/vbox-layout.ts +41 -24
- 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/{model-source-watcher → source-model-watcher}/di.config.ts +5 -5
- package/src/features/{model-source-watcher/model-source-changed-action-handler.ts → source-model-watcher/source-model-changed-action-handler.ts} +17 -22
- 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 +34 -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 -90
- package/src/features/viewport/di.config.ts +1 -2
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
- package/src/index.ts +12 -12
- package/src/lib/model.ts +4 -4
- package/src/model-source/glsp-diagram-server.ts +15 -15
- package/src/sprotty-reexport.ts +288 -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 +173 -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/model-source-watcher/di.config.d.ts +0 -4
- package/lib/features/model-source-watcher/di.config.js.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.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,15 @@
|
|
|
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
|
-
import { getSeverity } from '../hover/hover';
|
|
34
22
|
import { IFeedbackActionDispatcher, IFeedbackEmitter } from '../tool-feedback/feedback-action-dispatcher';
|
|
35
23
|
import { FeedbackCommand } from '../tool-feedback/model';
|
|
36
|
-
import { createSIssue, getOrCreateSIssueMarker, getSIssueMarker } from './issue-marker';
|
|
24
|
+
import { createSIssue, getOrCreateSIssueMarker, getSeverity, getSIssueMarker, GIssueMarker } from './issue-marker';
|
|
37
25
|
|
|
38
26
|
/**
|
|
39
27
|
* Feedback emitter sending actions for visualizing model validation feedback and
|
|
@@ -41,11 +29,11 @@ import { createSIssue, getOrCreateSIssueMarker, getSIssueMarker } from './issue-
|
|
|
41
29
|
*/
|
|
42
30
|
@injectable()
|
|
43
31
|
export class ValidationFeedbackEmitter implements IFeedbackEmitter {
|
|
44
|
-
@inject(
|
|
32
|
+
@inject(TYPES.IFeedbackActionDispatcher) protected feedbackActionDispatcher: IFeedbackActionDispatcher;
|
|
45
33
|
|
|
46
34
|
@inject(TYPES.IActionDispatcherProvider) protected actionDispatcher: () => Promise<IActionDispatcher>;
|
|
47
35
|
|
|
48
|
-
private registeredAction:
|
|
36
|
+
private registeredAction: ApplyMarkersAction;
|
|
49
37
|
|
|
50
38
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
51
39
|
private constructor() {}
|
|
@@ -54,13 +42,13 @@ export class ValidationFeedbackEmitter implements IFeedbackEmitter {
|
|
|
54
42
|
* Register the action that should be emitted for visualizing validation feedback.
|
|
55
43
|
* @param action the action that should be emitted when the model is updated and that will visualize the model validation feedback.
|
|
56
44
|
*/
|
|
57
|
-
registerValidationFeedbackAction(action:
|
|
45
|
+
registerValidationFeedbackAction(action: ApplyMarkersAction): void {
|
|
58
46
|
// De-register old action responsible for applying markers and re-applying them when the model is updated
|
|
59
47
|
this.feedbackActionDispatcher.deregisterFeedback(this, []);
|
|
60
48
|
|
|
61
49
|
// Clear existing markers
|
|
62
50
|
if (this.registeredAction !== undefined) {
|
|
63
|
-
const deleteMarkersAction =
|
|
51
|
+
const deleteMarkersAction = DeleteMarkersAction.create(this.registeredAction.markers);
|
|
64
52
|
this.actionDispatcher().then(dispatcher => dispatcher.dispatch(deleteMarkersAction));
|
|
65
53
|
}
|
|
66
54
|
|
|
@@ -88,101 +76,92 @@ export abstract class ExternalMarkerManager {
|
|
|
88
76
|
|
|
89
77
|
removeMarkers(markers: Marker[]): void {
|
|
90
78
|
if (this.actionDispatcher) {
|
|
91
|
-
this.actionDispatcher.dispatch(
|
|
79
|
+
this.actionDispatcher.dispatch(DeleteMarkersAction.create(markers));
|
|
92
80
|
}
|
|
93
81
|
}
|
|
94
82
|
|
|
95
83
|
abstract setMarkers(markers: Marker[], sourceUri?: string): void;
|
|
96
84
|
}
|
|
97
85
|
|
|
98
|
-
/**
|
|
99
|
-
* Command for handling `SetMarkersAction`
|
|
100
|
-
*/
|
|
101
86
|
@injectable()
|
|
102
|
-
export class
|
|
103
|
-
@inject(ValidationFeedbackEmitter)
|
|
104
|
-
|
|
105
|
-
@inject(EditorContextService) protected editorContextService: EditorContextService;
|
|
87
|
+
export class SetMarkersActionHandler implements IActionHandler {
|
|
88
|
+
@inject(ValidationFeedbackEmitter)
|
|
89
|
+
protected validationFeedbackEmitter: ValidationFeedbackEmitter;
|
|
106
90
|
|
|
107
|
-
|
|
91
|
+
@inject(ExternalMarkerManager)
|
|
92
|
+
@optional()
|
|
93
|
+
protected externalMarkerManager?: ExternalMarkerManager;
|
|
108
94
|
|
|
109
|
-
|
|
110
|
-
|
|
95
|
+
@inject(EditorContextService)
|
|
96
|
+
protected editorContextService: EditorContextService;
|
|
97
|
+
|
|
98
|
+
handle(action: SetMarkersAction): void | Action | ICommand {
|
|
99
|
+
const markers: Marker[] = action.markers;
|
|
100
|
+
this.setMarkers(markers);
|
|
111
101
|
}
|
|
112
102
|
|
|
113
|
-
async
|
|
114
|
-
const markers: Marker[] = this.action.markers;
|
|
103
|
+
async setMarkers(markers: Marker[]): Promise<void> {
|
|
115
104
|
const uri = await this.editorContextService.getSourceUri();
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
const applyMarkersAction: ApplyMarkersAction = new ApplyMarkersAction(markers);
|
|
105
|
+
this.externalMarkerManager?.setMarkers(markers, uri);
|
|
106
|
+
const applyMarkersAction = ApplyMarkersAction.create(markers);
|
|
120
107
|
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
108
|
}
|
|
131
109
|
}
|
|
132
110
|
|
|
133
111
|
/**
|
|
134
|
-
*
|
|
112
|
+
* Action for applying makers to the graphical model.
|
|
135
113
|
*/
|
|
136
|
-
export interface
|
|
137
|
-
|
|
114
|
+
export interface ApplyMarkersAction extends Action {
|
|
115
|
+
kind: typeof ApplyMarkersAction.KIND;
|
|
116
|
+
markers: Marker[];
|
|
138
117
|
}
|
|
139
118
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
119
|
+
export namespace ApplyMarkersAction {
|
|
120
|
+
export const KIND = 'applyMarkers';
|
|
121
|
+
|
|
122
|
+
export function is(object: any): object is ApplyMarkersAction {
|
|
123
|
+
return Action.hasKind(object, KIND) && hasArrayProp(object, 'markers');
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export function create(markers: Marker[]): ApplyMarkersAction {
|
|
127
|
+
return {
|
|
128
|
+
kind: KIND,
|
|
129
|
+
markers
|
|
130
|
+
};
|
|
131
|
+
}
|
|
146
132
|
}
|
|
147
133
|
|
|
148
134
|
/**
|
|
149
|
-
*
|
|
135
|
+
* Handles {@link ApplyMarkersAction}s by creating the corresponding {@link SIssueMarker}s and
|
|
136
|
+
* adding them to the graphical model.
|
|
150
137
|
*/
|
|
151
138
|
@injectable()
|
|
152
139
|
export class ApplyMarkersCommand extends FeedbackCommand {
|
|
153
|
-
static KIND =
|
|
154
|
-
readonly priority = 0;
|
|
140
|
+
static KIND = ApplyMarkersAction.KIND;
|
|
155
141
|
|
|
156
142
|
constructor(@inject(TYPES.Action) protected action: ApplyMarkersAction) {
|
|
157
143
|
super();
|
|
158
144
|
}
|
|
159
145
|
|
|
160
146
|
execute(context: CommandExecutionContext): CommandReturn {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
const modelElement: SModelElement | undefined = context.root.index.getById(marker.elementId);
|
|
147
|
+
this.action.markers.forEach(marker => {
|
|
148
|
+
const modelElement = context.root.index.getById(marker.elementId);
|
|
164
149
|
if (modelElement instanceof SParentElement) {
|
|
165
|
-
const issueMarker
|
|
166
|
-
const issue
|
|
150
|
+
const issueMarker = getOrCreateSIssueMarker(modelElement);
|
|
151
|
+
const issue = createSIssue(marker);
|
|
167
152
|
issueMarker.issues.push(issue);
|
|
153
|
+
if (issueMarker instanceof GIssueMarker) {
|
|
154
|
+
issueMarker.computeProjectionCssClasses();
|
|
155
|
+
}
|
|
168
156
|
addMaxSeverityCSSClassToIssueParent(modelElement, issueMarker);
|
|
169
157
|
}
|
|
170
|
-
}
|
|
158
|
+
});
|
|
171
159
|
return context.root;
|
|
172
160
|
}
|
|
173
|
-
|
|
174
|
-
undo(context: CommandExecutionContext): CommandReturn {
|
|
175
|
-
return context.root;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
redo(context: CommandExecutionContext): CommandReturn {
|
|
179
|
-
return this.execute(context);
|
|
180
|
-
}
|
|
181
161
|
}
|
|
182
162
|
|
|
183
163
|
function addMaxSeverityCSSClassToIssueParent(modelElement: SParentElement, issueMarker: SIssueMarker): void {
|
|
184
164
|
const maxSeverityCSSClass = getSeverity(issueMarker);
|
|
185
|
-
|
|
186
165
|
if (!modelElement.cssClasses) {
|
|
187
166
|
modelElement.cssClasses = [maxSeverityCSSClass];
|
|
188
167
|
} else {
|
|
@@ -192,14 +171,15 @@ function addMaxSeverityCSSClassToIssueParent(modelElement: SParentElement, issue
|
|
|
192
171
|
}
|
|
193
172
|
|
|
194
173
|
function removeCSSClassFromIssueParent(modelElement: SParentElement, issueMarker: SIssueMarker): void {
|
|
195
|
-
|
|
174
|
+
const severity = getSeverity(issueMarker);
|
|
175
|
+
removeCssClasses(modelElement, [severity]);
|
|
196
176
|
}
|
|
197
177
|
|
|
198
178
|
/**
|
|
199
179
|
* Command for handling `DeleteMarkersAction`
|
|
200
180
|
*/
|
|
201
181
|
@injectable()
|
|
202
|
-
export class DeleteMarkersCommand extends
|
|
182
|
+
export class DeleteMarkersCommand extends FeedbackCommand {
|
|
203
183
|
static KIND = DeleteMarkersAction.KIND;
|
|
204
184
|
|
|
205
185
|
constructor(@inject(TYPES.Action) protected action: DeleteMarkersAction) {
|
|
@@ -207,15 +187,14 @@ export class DeleteMarkersCommand extends Command {
|
|
|
207
187
|
}
|
|
208
188
|
|
|
209
189
|
execute(context: CommandExecutionContext): CommandReturn {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
const modelElement: SModelElement | undefined = context.root.index.getById(marker.elementId);
|
|
190
|
+
this.action.markers.forEach(marker => {
|
|
191
|
+
const modelElement = context.root.index.getById(marker.elementId);
|
|
213
192
|
if (modelElement instanceof SParentElement) {
|
|
214
|
-
const issueMarker
|
|
215
|
-
if (issueMarker
|
|
193
|
+
const issueMarker = getSIssueMarker(modelElement);
|
|
194
|
+
if (issueMarker) {
|
|
216
195
|
removeCSSClassFromIssueParent(modelElement, issueMarker);
|
|
217
196
|
for (let index = 0; index < issueMarker.issues.length; ++index) {
|
|
218
|
-
const issue
|
|
197
|
+
const issue = issueMarker.issues[index];
|
|
219
198
|
if (issue.message === marker.description) {
|
|
220
199
|
issueMarker.issues.splice(index--, 1);
|
|
221
200
|
}
|
|
@@ -227,15 +206,8 @@ export class DeleteMarkersCommand extends Command {
|
|
|
227
206
|
}
|
|
228
207
|
}
|
|
229
208
|
}
|
|
230
|
-
}
|
|
231
|
-
return context.root;
|
|
232
|
-
}
|
|
209
|
+
});
|
|
233
210
|
|
|
234
|
-
undo(context: CommandExecutionContext): CommandReturn {
|
|
235
211
|
return context.root;
|
|
236
212
|
}
|
|
237
|
-
|
|
238
|
-
redo(context: CommandExecutionContext): CommandReturn {
|
|
239
|
-
return this.execute(context);
|
|
240
|
-
}
|
|
241
213
|
}
|
|
@@ -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
|
}
|