@eclipse-glsp/client 0.9.0-rc-01 → 0.10.0-next.bb1c2fd.157
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/LICENSE +642 -277
- package/README.md +4 -2
- package/css/command-palette.css +9 -5
- package/css/decoration.css +3 -2
- package/css/glsp-sprotty.css +16 -7
- package/css/tool-palette.css +44 -27
- package/lib/base/action-dispatcher.d.ts +19 -3
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +47 -65
- package/lib/base/action-dispatcher.js.map +1 -1
- package/lib/base/actions/focus-change-action.d.ts +1 -1
- package/lib/base/actions/focus-change-action.d.ts.map +1 -1
- package/lib/base/actions/focus-change-action.js +4 -5
- package/lib/base/actions/focus-change-action.js.map +1 -1
- package/lib/base/{args.d.ts → argumentable.d.ts} +3 -5
- package/lib/base/argumentable.d.ts.map +1 -0
- package/lib/base/{args.js → argumentable.js} +1 -1
- package/lib/base/argumentable.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts +1 -1
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +3 -3
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +119 -153
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.d.ts +3 -18
- package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
- package/lib/base/auto-complete/validation-decorator.js +44 -65
- 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 +19 -37
- package/lib/base/command-stack.js.map +1 -1
- package/lib/base/container-modules.d.ts +40 -0
- package/lib/base/container-modules.d.ts.map +1 -0
- package/lib/base/container-modules.js +100 -0
- package/lib/base/container-modules.js.map +1 -0
- package/lib/base/di.config.d.ts +12 -2
- package/lib/base/di.config.d.ts.map +1 -1
- package/lib/base/di.config.js +43 -27
- package/lib/base/di.config.js.map +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts +3 -2
- package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
- package/lib/base/drag-aware-mouse-listener.js +23 -62
- package/lib/base/drag-aware-mouse-listener.js.map +1 -1
- package/lib/base/{editor-context.d.ts → editor-context-service.d.ts} +18 -22
- package/lib/base/editor-context-service.d.ts.map +1 -0
- package/lib/base/editor-context-service.js +109 -0
- package/lib/base/editor-context-service.js.map +1 -0
- package/lib/base/focus-tracker.d.ts +17 -1
- package/lib/base/focus-tracker.d.ts.map +1 -1
- package/lib/base/focus-tracker.js +19 -39
- package/lib/base/focus-tracker.js.map +1 -1
- package/lib/base/model/model-registry.js +10 -28
- package/lib/base/model/model-registry.js.map +1 -1
- package/lib/base/model/update-model-command.d.ts +19 -5
- package/lib/base/model/update-model-command.d.ts.map +1 -1
- package/lib/base/model/update-model-command.js +69 -94
- package/lib/base/model/update-model-command.js.map +1 -1
- package/lib/base/model-initialization-constraint.d.ts +16 -1
- package/lib/base/model-initialization-constraint.d.ts.map +1 -1
- package/lib/base/model-initialization-constraint.js +34 -54
- package/lib/base/model-initialization-constraint.js.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.js +10 -28
- package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
- package/lib/base/source-uri-aware.js +2 -5
- 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 +58 -140
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
- package/lib/base/types.d.ts +3 -1
- package/lib/base/types.d.ts.map +1 -1
- package/lib/base/types.js +4 -2
- package/lib/base/types.js.map +1 -1
- package/lib/base/view/view-registry.js +10 -28
- package/lib/base/view/view-registry.js.map +1 -1
- package/lib/features/change-bounds/model.d.ts +3 -1
- package/lib/features/change-bounds/model.d.ts.map +1 -1
- package/lib/features/change-bounds/model.js +20 -31
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts +17 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +28 -42
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/change-bounds/snap.d.ts +17 -1
- package/lib/features/change-bounds/snap.d.ts.map +1 -1
- package/lib/features/change-bounds/snap.js +13 -39
- package/lib/features/change-bounds/snap.js.map +1 -1
- package/lib/features/command-palette/command-palette-tool.js +30 -38
- package/lib/features/command-palette/command-palette-tool.js.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 +18 -2
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +28 -33
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +1 -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 +20 -68
- 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 -8
- 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 +16 -0
- 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 +61 -71
- 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 +18 -2
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +30 -31
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +22 -2
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +99 -72
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts +19 -2
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.js +70 -70
- 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 +11 -11
- package/lib/features/copy-paste/di.config.js.map +1 -1
- package/lib/features/decoration/decoration-placer.d.ts +17 -1
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
- package/lib/features/decoration/decoration-placer.js +12 -46
- package/lib/features/decoration/decoration-placer.js.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.js +7 -7
- package/lib/features/edit-label/di.config.js.map +1 -1
- package/lib/features/edit-label/edit-label-tool.js +20 -43
- package/lib/features/edit-label/edit-label-tool.js.map +1 -1
- package/lib/features/edit-label/edit-label-validator.d.ts +16 -1
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-validator.js +40 -62
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/hints/di.config.d.ts +0 -15
- package/lib/features/hints/di.config.d.ts.map +1 -1
- package/lib/features/hints/di.config.js +9 -9
- package/lib/features/hints/di.config.js.map +1 -1
- package/lib/features/hints/model.d.ts +3 -2
- package/lib/features/hints/model.d.ts.map +1 -1
- package/lib/features/hints/model.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +17 -45
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +81 -140
- 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 +11 -9
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +28 -2
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +56 -76
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.d.ts +1 -1
- package/lib/features/layout/di.config.d.ts.map +1 -1
- package/lib/features/layout/di.config.js +11 -7
- package/lib/features/layout/di.config.js.map +1 -1
- package/lib/features/layout/freeform-layout.d.ts +16 -0
- package/lib/features/layout/freeform-layout.d.ts.map +1 -0
- package/lib/features/layout/freeform-layout.js +107 -0
- package/lib/features/layout/freeform-layout.js.map +1 -0
- package/lib/features/layout/layout-commands.d.ts +19 -3
- package/lib/features/layout/layout-commands.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.js +189 -265
- package/lib/features/layout/layout-commands.js.map +1 -1
- package/lib/features/layout/layout-commands.spec.d.ts +0 -15
- package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.spec.js +95 -89
- package/lib/features/layout/layout-commands.spec.js.map +1 -1
- package/lib/features/layout/vbox-layout.d.ts +25 -0
- package/lib/features/layout/vbox-layout.d.ts.map +1 -0
- package/lib/features/layout/vbox-layout.js +188 -0
- package/lib/features/layout/vbox-layout.js.map +1 -0
- package/lib/features/model-source-watcher/di.config.d.ts +0 -15
- package/lib/features/model-source-watcher/di.config.d.ts.map +1 -1
- package/lib/features/model-source-watcher/di.config.js +7 -7
- 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 +17 -2
- 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 +38 -46
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
- package/lib/features/mouse-tool/di.config.js +5 -5
- package/lib/features/mouse-tool/di.config.js.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts +2 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +70 -215
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
- package/lib/features/navigation/di.config.d.ts +0 -15
- package/lib/features/navigation/di.config.d.ts.map +1 -1
- package/lib/features/navigation/di.config.js +11 -10
- package/lib/features/navigation/di.config.js.map +1 -1
- package/lib/features/navigation/navigation-action-handler.d.ts +19 -38
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
- package/lib/features/navigation/navigation-action-handler.js +118 -254
- package/lib/features/navigation/navigation-action-handler.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.d.ts +18 -40
- package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.js +46 -188
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts +0 -15
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.js +26 -26
- package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
- package/lib/features/rank/model.d.ts +1 -1
- package/lib/features/rank/model.js +2 -2
- package/lib/features/rank/model.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 +9 -27
- 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 +6 -6
- package/lib/features/save/di.config.js.map +1 -1
- package/lib/features/save/{save.d.ts → save-keylistener.d.ts} +4 -10
- package/lib/features/save/save-keylistener.d.ts.map +1 -0
- package/lib/features/{undo-redo/model.d.ts → save/save-keylistener.js} +16 -12
- package/lib/features/save/save-keylistener.js.map +1 -0
- package/lib/features/select/di.config.js +11 -11
- package/lib/features/select/di.config.js.map +1 -1
- package/lib/features/select/select-feedback-action.d.ts.map +1 -1
- package/lib/features/select/select-feedback-action.js +45 -71
- package/lib/features/select/select-feedback-action.js.map +1 -1
- package/lib/features/select/select-mouse-listener.js +7 -23
- package/lib/features/select/select-mouse-listener.js.map +1 -1
- package/lib/features/select/selection-service.d.ts +17 -1
- package/lib/features/select/selection-service.d.ts.map +1 -1
- package/lib/features/select/selection-service.js +134 -236
- package/lib/features/select/selection-service.js.map +1 -1
- package/lib/features/select/selection-service.spec.js +96 -139
- package/lib/features/select/selection-service.spec.js.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +19 -2
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +102 -142
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +18 -2
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +95 -118
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +20 -2
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/css-feedback.js +37 -81
- 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 +27 -27
- package/lib/features/tool-feedback/di.config.js.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +18 -2
- 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 -208
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +19 -3
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.js +35 -72
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +17 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.js +41 -84
- package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/model.d.ts +1 -1
- package/lib/features/tool-feedback/model.js +11 -27
- package/lib/features/tool-feedback/model.js.map +1 -1
- package/lib/features/tool-feedback/view.d.ts +21 -5
- package/lib/features/tool-feedback/view.d.ts.map +1 -1
- package/lib/features/tool-feedback/view.js +29 -51
- 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 +6 -6
- package/lib/features/tool-palette/di.config.js.map +1 -1
- package/lib/features/tool-palette/palette-item.d.ts +2 -3
- package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
- package/lib/features/tool-palette/palette-item.js +6 -6
- package/lib/features/tool-palette/palette-item.js.map +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts +19 -3
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +199 -269
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.d.ts +18 -2
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
- package/lib/features/tools/base-glsp-tool.js +37 -59
- package/lib/features/tools/base-glsp-tool.js.map +1 -1
- package/lib/features/tools/change-bounds-tool.d.ts +20 -3
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
- package/lib/features/tools/change-bounds-tool.js +192 -241
- package/lib/features/tools/change-bounds-tool.js.map +1 -1
- package/lib/features/tools/delete-tool.d.ts +17 -1
- package/lib/features/tools/delete-tool.d.ts.map +1 -1
- package/lib/features/tools/delete-tool.js +71 -104
- package/lib/features/tools/delete-tool.js.map +1 -1
- package/lib/features/tools/di.config.d.ts +0 -15
- package/lib/features/tools/di.config.d.ts.map +1 -1
- package/lib/features/tools/di.config.js +19 -19
- package/lib/features/tools/di.config.js.map +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts +17 -2
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +62 -87
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts +17 -1
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +112 -183
- package/lib/features/tools/edge-edit-tool.js.map +1 -1
- package/lib/features/tools/marquee-behavior.d.ts +42 -0
- package/lib/features/tools/marquee-behavior.d.ts.map +1 -0
- package/lib/features/tools/marquee-behavior.js +128 -0
- package/lib/features/tools/marquee-behavior.js.map +1 -0
- package/{src/features/undo-redo/model.ts → lib/features/tools/marquee-behavior.spec.d.ts} +3 -12
- package/lib/features/tools/marquee-behavior.spec.d.ts.map +1 -0
- package/lib/features/tools/marquee-behavior.spec.js +165 -0
- package/lib/features/tools/marquee-behavior.spec.js.map +1 -0
- package/lib/features/tools/marquee-mouse-tool.d.ts +24 -13
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +86 -195
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
- package/lib/features/tools/marquee-tool.d.ts +17 -1
- package/lib/features/tools/marquee-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-tool.js +32 -73
- package/lib/features/tools/marquee-tool.js.map +1 -1
- package/lib/features/tools/model.js +4 -22
- package/lib/features/tools/model.js.map +1 -1
- package/lib/features/tools/node-creation-tool.d.ts +17 -2
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/node-creation-tool.js +60 -90
- package/lib/features/tools/node-creation-tool.js.map +1 -1
- package/lib/features/tools/view.d.ts +1 -1
- package/lib/features/tools/view.d.ts.map +1 -1
- package/lib/features/tools/view.js +12 -31
- package/lib/features/tools/view.js.map +1 -1
- package/lib/features/validation/di.config.js +12 -12
- package/lib/features/validation/di.config.js.map +1 -1
- package/lib/features/validation/issue-marker.d.ts +2 -2
- package/lib/features/validation/issue-marker.d.ts.map +1 -1
- package/lib/features/validation/issue-marker.js +17 -55
- package/lib/features/validation/issue-marker.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts +17 -1
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +131 -164
- package/lib/features/validation/marker-navigator.js.map +1 -1
- package/lib/features/validation/marker-navigator.spec.d.ts +0 -15
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.spec.js +83 -77
- package/lib/features/validation/marker-navigator.spec.js.map +1 -1
- package/lib/features/validation/validate.d.ts +18 -29
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +147 -300
- package/lib/features/validation/validate.js.map +1 -1
- package/lib/features/viewport/di.config.js +10 -10
- package/lib/features/viewport/di.config.js.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +18 -2
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +16 -47
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
- package/lib/index.d.ts +9 -15
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +29 -34
- package/lib/index.js.map +1 -1
- package/lib/lib/model.js +11 -27
- package/lib/lib/model.js.map +1 -1
- package/lib/model-source/glsp-diagram-server.d.ts +3 -5
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +60 -121
- package/lib/model-source/glsp-diagram-server.js.map +1 -1
- package/lib/protocol-reexport.d.ts +45 -0
- package/lib/protocol-reexport.d.ts.map +1 -0
- package/lib/protocol-reexport.js +75 -0
- package/lib/protocol-reexport.js.map +1 -0
- package/lib/utils/argument-utils.d.ts +3 -3
- package/lib/utils/argument-utils.d.ts.map +1 -1
- package/lib/utils/argument-utils.js +32 -97
- package/lib/utils/argument-utils.js.map +1 -1
- package/lib/utils/html-utils.js +2 -2
- package/lib/utils/html-utils.js.map +1 -1
- package/lib/utils/layout-utils.d.ts +3 -2
- package/lib/utils/layout-utils.d.ts.map +1 -1
- package/lib/utils/layout-utils.js +5 -5
- package/lib/utils/layout-utils.js.map +1 -1
- package/lib/utils/marker.d.ts +0 -38
- package/lib/utils/marker.d.ts.map +1 -1
- package/lib/utils/marker.js +14 -61
- package/lib/utils/marker.js.map +1 -1
- package/lib/utils/smodel-util.d.ts +4 -4
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +16 -65
- package/lib/utils/smodel-util.js.map +1 -1
- package/lib/utils/viewpoint-util.d.ts +3 -2
- package/lib/utils/viewpoint-util.d.ts.map +1 -1
- package/lib/utils/viewpoint-util.js +15 -30
- package/lib/utils/viewpoint-util.js.map +1 -1
- package/lib/views/base-view-module.d.ts +0 -15
- package/lib/views/base-view-module.d.ts.map +1 -1
- package/lib/views/base-view-module.js +28 -28
- package/lib/views/base-view-module.js.map +1 -1
- package/lib/views/compartments.d.ts +6 -0
- package/lib/views/compartments.d.ts.map +1 -0
- package/lib/views/compartments.js +43 -0
- package/lib/views/compartments.js.map +1 -0
- package/lib/views/glsp-edge-view.d.ts +18 -3
- package/lib/views/glsp-edge-view.d.ts.map +1 -1
- package/lib/views/glsp-edge-view.js +32 -77
- package/lib/views/glsp-edge-view.js.map +1 -1
- package/lib/views/index.d.ts +1 -1
- package/lib/views/index.d.ts.map +1 -1
- package/lib/views/index.js +1 -1
- package/lib/views/index.js.map +1 -1
- package/lib/views/issue-marker-view.d.ts +2 -1
- package/lib/views/issue-marker-view.d.ts.map +1 -1
- package/lib/views/issue-marker-view.js +36 -50
- package/lib/views/issue-marker-view.js.map +1 -1
- package/lib/views/rounded-corner-view.d.ts +2 -3
- package/lib/views/rounded-corner-view.d.ts.map +1 -1
- package/lib/views/rounded-corner-view.js +40 -70
- package/lib/views/rounded-corner-view.js.map +1 -1
- package/lib/views/rounded-corner.d.ts +2 -1
- package/lib/views/rounded-corner.d.ts.map +1 -1
- package/lib/views/rounded-corner.js +44 -65
- package/lib/views/rounded-corner.js.map +1 -1
- package/package.json +12 -19
- package/src/base/action-dispatcher.ts +12 -12
- package/src/base/actions/focus-change-action.ts +2 -2
- package/src/base/{args.ts → argumentable.ts} +2 -3
- package/src/base/auto-complete/auto-complete-actions.ts +1 -1
- package/src/base/auto-complete/auto-complete-widget.ts +37 -25
- package/src/base/auto-complete/validation-decorator.ts +12 -11
- package/src/base/command-stack.ts +2 -5
- package/src/base/container-modules.ts +112 -0
- package/src/base/di.config.ts +33 -18
- package/src/base/drag-aware-mouse-listener.ts +3 -4
- package/src/base/{editor-context.ts → editor-context-service.ts} +4 -31
- package/src/base/focus-tracker.ts +2 -4
- package/src/base/model/update-model-command.ts +8 -16
- package/src/base/model-initialization-constraint.ts +3 -2
- package/src/base/tool-manager/glsp-tool-manager.ts +3 -5
- package/src/base/types.ts +4 -2
- package/src/features/change-bounds/model.ts +15 -5
- package/src/features/change-bounds/movement-restrictor.ts +17 -9
- package/src/features/change-bounds/snap.ts +3 -2
- package/src/features/command-palette/server-command-palette-provider.ts +11 -9
- package/src/features/context-menu/delete-element-context-menu.ts +3 -4
- package/src/features/context-menu/di.config.ts +11 -9
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +40 -10
- package/src/features/context-menu/server-context-menu-provider.ts +10 -7
- package/src/features/copy-paste/copy-paste-context-menu.ts +59 -30
- package/src/features/copy-paste/copy-paste-handler.ts +18 -10
- package/src/features/copy-paste/di.config.ts +2 -3
- package/src/features/decoration/decoration-placer.ts +3 -13
- package/src/features/edit-label/edit-label-validator.ts +11 -12
- package/src/features/hints/di.config.ts +2 -3
- package/src/features/hints/model.ts +4 -3
- package/src/features/hints/type-hints.ts +23 -90
- package/src/features/hover/di.config.ts +4 -3
- package/src/features/hover/hover.ts +26 -7
- package/src/features/layout/di.config.ts +8 -4
- package/src/features/layout/freeform-layout.ts +133 -0
- package/src/features/layout/layout-commands.spec.ts +82 -64
- package/src/features/layout/layout-commands.ts +43 -34
- package/src/features/layout/vbox-layout.ts +256 -0
- package/src/features/model-source-watcher/di.config.ts +3 -4
- package/src/features/model-source-watcher/model-source-changed-action-handler.ts +11 -7
- package/src/features/mouse-tool/mouse-tool.ts +33 -23
- package/src/features/navigation/di.config.ts +4 -10
- package/src/features/navigation/navigation-action-handler.ts +33 -69
- package/src/features/navigation/navigation-target-resolver.spec.ts +3 -7
- package/src/features/navigation/navigation-target-resolver.ts +13 -91
- package/src/features/rank/model.ts +2 -2
- package/src/features/reconnect/model.ts +2 -3
- package/src/features/save/di.config.ts +2 -3
- package/src/features/save/{save.ts → save-keylistener.ts} +3 -11
- package/src/features/select/select-feedback-action.ts +4 -6
- package/src/features/select/selection-service.spec.ts +11 -6
- package/src/features/select/selection-service.ts +14 -10
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +26 -20
- package/src/features/tool-feedback/creation-tool-feedback.ts +49 -14
- package/src/features/tool-feedback/css-feedback.ts +9 -6
- package/src/features/tool-feedback/di.config.ts +2 -5
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +19 -18
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +8 -9
- package/src/features/tool-feedback/marquee-tool-feedback.ts +4 -5
- package/src/features/tool-feedback/model.ts +1 -2
- package/src/features/tool-feedback/view.tsx +17 -11
- package/src/features/tool-palette/di.config.ts +2 -4
- package/src/features/tool-palette/palette-item.ts +4 -6
- package/src/features/tool-palette/tool-palette.ts +44 -40
- package/src/features/tools/base-glsp-tool.ts +4 -4
- package/src/features/tools/change-bounds-tool.ts +64 -34
- package/src/features/tools/delete-tool.ts +9 -6
- package/src/features/tools/di.config.ts +2 -3
- package/src/features/tools/edge-creation-tool.ts +5 -10
- package/src/features/tools/edge-edit-tool.ts +10 -20
- package/src/features/tools/marquee-behavior.spec.ts +175 -0
- package/src/features/tools/marquee-behavior.ts +158 -0
- package/src/features/tools/marquee-mouse-tool.ts +43 -134
- package/src/features/tools/marquee-tool.ts +2 -3
- package/src/features/tools/node-creation-tool.ts +4 -11
- package/src/features/tools/view.tsx +17 -12
- package/src/features/validation/issue-marker.ts +2 -3
- package/src/features/validation/marker-navigator.spec.ts +18 -14
- package/src/features/validation/marker-navigator.ts +24 -12
- package/src/features/validation/validate.ts +7 -40
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +3 -12
- package/src/index.ts +30 -19
- package/src/model-source/glsp-diagram-server.ts +12 -28
- package/src/protocol-reexport.ts +64 -0
- package/src/utils/argument-utils.ts +14 -11
- package/src/utils/layout-utils.ts +13 -7
- package/src/utils/marker.ts +2 -26
- package/src/utils/smodel-util.ts +15 -11
- package/src/utils/viewpoint-util.ts +4 -4
- package/src/views/base-view-module.ts +1 -2
- package/src/{base/actions/edit-mode-action.ts → views/compartments.tsx} +18 -14
- package/src/views/glsp-edge-view.tsx +21 -14
- package/src/views/index.ts +1 -1
- package/src/views/issue-marker-view.tsx +28 -19
- package/src/views/rounded-corner-view.tsx +38 -25
- package/src/views/rounded-corner.ts +5 -6
- package/lib/base/actions/context-actions.d.ts +0 -36
- package/lib/base/actions/context-actions.d.ts.map +0 -1
- package/lib/base/actions/context-actions.js +0 -51
- package/lib/base/actions/context-actions.js.map +0 -1
- package/lib/base/actions/edit-mode-action.d.ts +0 -13
- package/lib/base/actions/edit-mode-action.d.ts.map +0 -1
- package/lib/base/actions/edit-mode-action.js +0 -56
- package/lib/base/actions/edit-mode-action.js.map +0 -1
- package/lib/base/actions/edit-validation-actions.d.ts +0 -78
- package/lib/base/actions/edit-validation-actions.d.ts.map +0 -1
- package/lib/base/actions/edit-validation-actions.js +0 -83
- package/lib/base/actions/edit-validation-actions.js.map +0 -1
- package/lib/base/actions/protocol-actions.d.ts +0 -41
- package/lib/base/actions/protocol-actions.d.ts.map +0 -1
- package/lib/base/actions/protocol-actions.js +0 -151
- package/lib/base/actions/protocol-actions.js.map +0 -1
- package/lib/base/args.d.ts.map +0 -1
- package/lib/base/args.js.map +0 -1
- package/lib/base/editor-context.d.ts.map +0 -1
- package/lib/base/editor-context.js +0 -174
- package/lib/base/editor-context.js.map +0 -1
- package/lib/base/operations/operation.d.ts +0 -135
- package/lib/base/operations/operation.d.ts.map +0 -1
- package/lib/base/operations/operation.js +0 -231
- package/lib/base/operations/operation.js.map +0 -1
- package/lib/features/copy-paste/copy-paste-actions.d.ts +0 -50
- package/lib/features/copy-paste/copy-paste-actions.d.ts.map +0 -1
- package/lib/features/copy-paste/copy-paste-actions.js +0 -68
- package/lib/features/copy-paste/copy-paste-actions.js.map +0 -1
- package/lib/features/hints/request-type-hints-action.d.ts +0 -32
- package/lib/features/hints/request-type-hints-action.d.ts.map +0 -1
- package/lib/features/hints/request-type-hints-action.js +0 -30
- package/lib/features/hints/request-type-hints-action.js.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action.d.ts +0 -24
- package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action.js +0 -17
- package/lib/features/model-source-watcher/model-source-changed-action.js.map +0 -1
- package/lib/features/save/save.d.ts.map +0 -1
- package/lib/features/save/save.js +0 -62
- package/lib/features/save/save.js.map +0 -1
- package/lib/features/undo-redo/model.d.ts.map +0 -1
- package/lib/features/undo-redo/model.js +0 -22
- package/lib/features/undo-redo/model.js.map +0 -1
- package/lib/model-source/glsp-server-status.d.ts +0 -30
- package/lib/model-source/glsp-server-status.d.ts.map +0 -1
- package/lib/model-source/glsp-server-status.js +0 -61
- package/lib/model-source/glsp-server-status.js.map +0 -1
- package/lib/utils/array-utils.d.ts +0 -28
- package/lib/utils/array-utils.d.ts.map +0 -1
- package/lib/utils/array-utils.js +0 -61
- package/lib/utils/array-utils.js.map +0 -1
- package/lib/views/default-types.d.ts +0 -37
- package/lib/views/default-types.d.ts.map +0 -1
- package/lib/views/default-types.js +0 -47
- package/lib/views/default-types.js.map +0 -1
- package/src/base/actions/context-actions.ts +0 -43
- package/src/base/actions/edit-validation-actions.ts +0 -103
- package/src/base/actions/protocol-actions.ts +0 -82
- package/src/base/operations/operation.ts +0 -178
- package/src/features/copy-paste/copy-paste-actions.ts +0 -60
- package/src/features/hints/request-type-hints-action.ts +0 -36
- package/src/features/model-source-watcher/model-source-changed-action.ts +0 -26
- package/src/model-source/glsp-server-status.ts +0 -38
- package/src/utils/array-utils.ts +0 -55
- package/src/views/default-types.ts +0 -48
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2021 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { injectable } from 'inversify';
|
|
17
|
+
import {
|
|
18
|
+
Bounds,
|
|
19
|
+
BoundsData,
|
|
20
|
+
Dimension,
|
|
21
|
+
EMPTY_BOUNDS,
|
|
22
|
+
isBoundsAware,
|
|
23
|
+
isLayoutableChild,
|
|
24
|
+
isValidDimension,
|
|
25
|
+
LayoutContainer,
|
|
26
|
+
Point,
|
|
27
|
+
SChildElement,
|
|
28
|
+
SModelElement,
|
|
29
|
+
SParentElement,
|
|
30
|
+
StatefulLayouter,
|
|
31
|
+
VBoxLayouter,
|
|
32
|
+
VBoxLayoutOptions
|
|
33
|
+
} from 'sprotty';
|
|
34
|
+
|
|
35
|
+
export interface VBoxLayoutOptionsExt extends VBoxLayoutOptions {
|
|
36
|
+
hGrab: boolean;
|
|
37
|
+
vGrab: boolean;
|
|
38
|
+
prefWidth: number | null;
|
|
39
|
+
prefHeight: number | null;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Extends VBoxLayouter to support additional layout options
|
|
44
|
+
*/
|
|
45
|
+
@injectable()
|
|
46
|
+
export class VBoxLayouterExt extends VBoxLayouter {
|
|
47
|
+
static KIND = VBoxLayouter.KIND;
|
|
48
|
+
|
|
49
|
+
layout(container: SParentElement & LayoutContainer, layouter: StatefulLayouter): void {
|
|
50
|
+
const boundsData = layouter.getBoundsData(container);
|
|
51
|
+
const options = this.getLayoutOptions(container);
|
|
52
|
+
const childrenSize = this.getChildrenSize(container, options, layouter);
|
|
53
|
+
|
|
54
|
+
const fixedSize = this.getFixedContainerBounds(container, options, layouter);
|
|
55
|
+
|
|
56
|
+
const maxWidth =
|
|
57
|
+
options.paddingFactor *
|
|
58
|
+
(options.resizeContainer
|
|
59
|
+
? Math.max(fixedSize.width - options.paddingLeft - options.paddingRight, childrenSize.width)
|
|
60
|
+
: Math.max(0, fixedSize.width - options.paddingLeft - options.paddingRight));
|
|
61
|
+
const maxHeight =
|
|
62
|
+
options.paddingFactor *
|
|
63
|
+
(options.resizeContainer
|
|
64
|
+
? Math.max(fixedSize.height - options.paddingTop - options.paddingBottom, childrenSize.height)
|
|
65
|
+
: Math.max(0, fixedSize.height - options.paddingTop - options.paddingBottom));
|
|
66
|
+
|
|
67
|
+
// Remaining size that can be grabbed by children with the vGrab option
|
|
68
|
+
const grabHeight: number = maxHeight - childrenSize.height;
|
|
69
|
+
// Number of children that request vGrab
|
|
70
|
+
// FIXME: This approach works fine when only 1 child uses VGrab, but may cause rounding issues
|
|
71
|
+
// when the grabHeight can't be equally shared by all children.
|
|
72
|
+
const grabbingChildren = container.children
|
|
73
|
+
.map(child => this.getChildLayoutOptions(child, options))
|
|
74
|
+
.filter(opt => opt.vGrab).length;
|
|
75
|
+
|
|
76
|
+
if (maxWidth > 0 && maxHeight > 0) {
|
|
77
|
+
const offset = this.layoutChildren(container, layouter, options, maxWidth, maxHeight, grabHeight, grabbingChildren);
|
|
78
|
+
boundsData.bounds = this.getFinalContainerBounds(container, offset, options, childrenSize.width, childrenSize.height);
|
|
79
|
+
boundsData.boundsChanged = true;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
protected getChildrenSize(
|
|
84
|
+
container: SParentElement & LayoutContainer,
|
|
85
|
+
containerOptions: VBoxLayoutOptionsExt,
|
|
86
|
+
layouter: StatefulLayouter
|
|
87
|
+
): Dimension {
|
|
88
|
+
let maxWidth = -1;
|
|
89
|
+
let maxHeight = 0;
|
|
90
|
+
let isFirst = true;
|
|
91
|
+
container.children.forEach(child => {
|
|
92
|
+
if (isLayoutableChild(child)) {
|
|
93
|
+
const bounds = layouter.getBoundsData(child).bounds;
|
|
94
|
+
if (bounds !== undefined && isValidDimension(bounds)) {
|
|
95
|
+
maxHeight += bounds.height;
|
|
96
|
+
if (isFirst) {
|
|
97
|
+
isFirst = false;
|
|
98
|
+
} else {
|
|
99
|
+
maxHeight += containerOptions.vGap;
|
|
100
|
+
}
|
|
101
|
+
maxWidth = Math.max(maxWidth, bounds.width);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
const result = {
|
|
106
|
+
width: maxWidth,
|
|
107
|
+
height: maxHeight
|
|
108
|
+
};
|
|
109
|
+
return result;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
protected layoutChildren(
|
|
113
|
+
container: SParentElement & LayoutContainer,
|
|
114
|
+
layouter: StatefulLayouter,
|
|
115
|
+
containerOptions: VBoxLayoutOptionsExt,
|
|
116
|
+
maxWidth: number,
|
|
117
|
+
maxHeight: number,
|
|
118
|
+
grabHeight?: number,
|
|
119
|
+
grabbingChildren?: number
|
|
120
|
+
): Point {
|
|
121
|
+
let currentOffset: Point = {
|
|
122
|
+
x: containerOptions.paddingLeft + 0.5 * (maxWidth - maxWidth / containerOptions.paddingFactor),
|
|
123
|
+
y: containerOptions.paddingTop + 0.5 * (maxHeight - maxHeight / containerOptions.paddingFactor)
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
container.children.forEach(child => {
|
|
127
|
+
if (isLayoutableChild(child)) {
|
|
128
|
+
const boundsData = layouter.getBoundsData(child);
|
|
129
|
+
const bounds = boundsData.bounds;
|
|
130
|
+
const childOptions = this.getChildLayoutOptions(child, containerOptions);
|
|
131
|
+
if (bounds !== undefined && isValidDimension(bounds)) {
|
|
132
|
+
currentOffset = this.layoutChild(
|
|
133
|
+
child,
|
|
134
|
+
boundsData,
|
|
135
|
+
bounds,
|
|
136
|
+
childOptions,
|
|
137
|
+
containerOptions,
|
|
138
|
+
currentOffset,
|
|
139
|
+
maxWidth,
|
|
140
|
+
maxHeight,
|
|
141
|
+
grabHeight,
|
|
142
|
+
grabbingChildren
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
return currentOffset;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
protected layoutChild(
|
|
151
|
+
child: SChildElement,
|
|
152
|
+
boundsData: BoundsData,
|
|
153
|
+
bounds: Bounds,
|
|
154
|
+
childOptions: VBoxLayoutOptionsExt,
|
|
155
|
+
containerOptions: VBoxLayoutOptionsExt,
|
|
156
|
+
currentOffset: Point,
|
|
157
|
+
maxWidth: number,
|
|
158
|
+
maxHeight: number,
|
|
159
|
+
grabHeight?: number,
|
|
160
|
+
grabbingChildren?: number
|
|
161
|
+
): Point {
|
|
162
|
+
let offset = super.layoutChild(child, boundsData, bounds, childOptions, containerOptions, currentOffset, maxWidth, maxHeight);
|
|
163
|
+
if (childOptions.hGrab) {
|
|
164
|
+
boundsData.bounds = {
|
|
165
|
+
x: boundsData.bounds!.x,
|
|
166
|
+
y: boundsData.bounds!.y,
|
|
167
|
+
width: maxWidth,
|
|
168
|
+
height: boundsData.bounds!.height
|
|
169
|
+
};
|
|
170
|
+
boundsData.boundsChanged = true;
|
|
171
|
+
}
|
|
172
|
+
if (childOptions.vGrab && grabHeight && grabbingChildren) {
|
|
173
|
+
const height = boundsData.bounds!.height + grabHeight / grabbingChildren;
|
|
174
|
+
boundsData.bounds = {
|
|
175
|
+
x: boundsData.bounds!.x,
|
|
176
|
+
y: boundsData.bounds!.y,
|
|
177
|
+
width: boundsData.bounds!.width,
|
|
178
|
+
height: height
|
|
179
|
+
};
|
|
180
|
+
boundsData.boundsChanged = true;
|
|
181
|
+
offset = { x: currentOffset.x, y: currentOffset.y + height };
|
|
182
|
+
}
|
|
183
|
+
return offset;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
protected getFixedContainerBounds(container: SModelElement, layoutOptions: VBoxLayoutOptionsExt, layouter: StatefulLayouter): Bounds {
|
|
187
|
+
const currentContainer = container;
|
|
188
|
+
// eslint-disable-next-line no-constant-condition
|
|
189
|
+
if (isBoundsAware(currentContainer)) {
|
|
190
|
+
const bounds = currentContainer.bounds;
|
|
191
|
+
const elementOptions = this.getElementLayoutOptions(currentContainer);
|
|
192
|
+
const width = elementOptions?.prefWidth ?? 0;
|
|
193
|
+
const height = elementOptions?.prefHeight ?? 0;
|
|
194
|
+
return { ...bounds, width, height };
|
|
195
|
+
}
|
|
196
|
+
return EMPTY_BOUNDS;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
protected getChildLayoutOptions(child: SChildElement, containerOptions: VBoxLayoutOptionsExt): VBoxLayoutOptionsExt {
|
|
200
|
+
return super.getChildLayoutOptions(child, containerOptions) as VBoxLayoutOptionsExt;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
protected getLayoutOptions(element: SModelElement): VBoxLayoutOptionsExt {
|
|
204
|
+
return super.getLayoutOptions(element) as VBoxLayoutOptionsExt;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
protected getElementLayoutOptions(element: SModelElement): VBoxLayoutOptionsExt | undefined {
|
|
208
|
+
return (element as any).layoutOptions;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
protected getFinalContainerBounds(
|
|
212
|
+
container: SParentElement & LayoutContainer,
|
|
213
|
+
lastOffset: Point,
|
|
214
|
+
options: VBoxLayoutOptionsExt,
|
|
215
|
+
maxWidth: number,
|
|
216
|
+
maxHeight: number
|
|
217
|
+
): Bounds {
|
|
218
|
+
const elementOptions = this.getElementLayoutOptions(container);
|
|
219
|
+
const width = elementOptions?.prefWidth ?? options.minWidth;
|
|
220
|
+
const height = elementOptions?.prefHeight ?? options.minHeight;
|
|
221
|
+
|
|
222
|
+
const result = {
|
|
223
|
+
x: container.bounds.x,
|
|
224
|
+
y: container.bounds.y,
|
|
225
|
+
width: Math.max(width, maxWidth + options.paddingLeft + options.paddingRight),
|
|
226
|
+
height: Math.max(height, maxHeight + options.paddingTop + options.paddingBottom)
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
return result;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
protected getDefaultLayoutOptions(): VBoxLayoutOptionsExt {
|
|
233
|
+
return {
|
|
234
|
+
resizeContainer: true,
|
|
235
|
+
paddingTop: 5,
|
|
236
|
+
paddingBottom: 5,
|
|
237
|
+
paddingLeft: 5,
|
|
238
|
+
paddingRight: 5,
|
|
239
|
+
paddingFactor: 1,
|
|
240
|
+
vGap: 1,
|
|
241
|
+
hAlign: 'center',
|
|
242
|
+
minWidth: 0,
|
|
243
|
+
minHeight: 0,
|
|
244
|
+
hGrab: false,
|
|
245
|
+
vGrab: false,
|
|
246
|
+
// eslint-disable-next-line no-null/no-null
|
|
247
|
+
prefHeight: null,
|
|
248
|
+
// eslint-disable-next-line no-null/no-null
|
|
249
|
+
prefWidth: null
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
protected spread(a: VBoxLayoutOptionsExt, b: VBoxLayoutOptionsExt): VBoxLayoutOptionsExt {
|
|
254
|
+
return { ...a, ...b };
|
|
255
|
+
}
|
|
256
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2020-2021 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,10 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { ModelSourceChangedAction } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { ContainerModule } from 'inversify';
|
|
17
|
-
import { configureActionHandler } from 'sprotty
|
|
18
|
-
|
|
19
|
-
import { ModelSourceChangedAction } from './model-source-changed-action';
|
|
18
|
+
import { configureActionHandler } from 'sprotty';
|
|
20
19
|
import { ModelSourceChangedActionHandler } from './model-source-changed-action-handler';
|
|
21
20
|
|
|
22
21
|
const modelSourceWatcherModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2020-2021 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,11 +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 {
|
|
17
|
+
Action,
|
|
18
|
+
GLSPServerStatusAction,
|
|
19
|
+
isModelSourceChangedAction,
|
|
20
|
+
ModelSourceChangedAction,
|
|
21
|
+
ServerMessageAction
|
|
22
|
+
} from '@eclipse-glsp/protocol';
|
|
16
23
|
import { inject, injectable, optional } from 'inversify';
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
import { GLSPServerStatusAction, ServerMessageAction } from '../../model-source/glsp-server-status';
|
|
20
|
-
import { isModelSourceChangedAction, ModelSourceChangedAction } from './model-source-changed-action';
|
|
24
|
+
import { IActionDispatcher, IActionHandler, TYPES, ViewerOptions } from 'sprotty';
|
|
21
25
|
|
|
22
26
|
/**
|
|
23
27
|
* An external handler of the model source change event.
|
|
@@ -36,14 +40,14 @@ export abstract class ExternalModelSourceChangedHandler {
|
|
|
36
40
|
|
|
37
41
|
@injectable()
|
|
38
42
|
export class ModelSourceChangedActionHandler implements IActionHandler {
|
|
39
|
-
|
|
40
43
|
@inject(TYPES.IActionDispatcher)
|
|
41
44
|
protected dispatcher: IActionDispatcher;
|
|
42
45
|
|
|
43
46
|
@inject(TYPES.ViewerOptions)
|
|
44
47
|
protected options: ViewerOptions;
|
|
45
48
|
|
|
46
|
-
@inject(ExternalModelSourceChangedHandler)
|
|
49
|
+
@inject(ExternalModelSourceChangedHandler)
|
|
50
|
+
@optional()
|
|
47
51
|
protected externalModelSourceChangedHandler?: ExternalModelSourceChangedHandler;
|
|
48
52
|
|
|
49
53
|
handle(action: Action): void {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2021 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,10 +13,10 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action, isAction } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { injectable, multiInject, optional } from 'inversify';
|
|
17
|
-
import { VNode, VNodeData } from 'snabbdom
|
|
18
|
-
import {
|
|
19
|
-
|
|
18
|
+
import { On, VNode, VNodeData } from 'snabbdom';
|
|
19
|
+
import { MouseListener, MouseTool, SModelElement, SModelRoot, TYPES } from 'sprotty';
|
|
20
20
|
import { getRank } from '../rank/model';
|
|
21
21
|
|
|
22
22
|
export interface IMouseTool {
|
|
@@ -46,25 +46,25 @@ export class RankingMouseTool extends MouseTool implements IMouseTool {
|
|
|
46
46
|
decorate(vnode: VNode, element: SModelElement): VNode {
|
|
47
47
|
// we need to overwrite the existing event handlers registered by the original mouse tool
|
|
48
48
|
if (element instanceof SModelRoot) {
|
|
49
|
-
overwriteOn(vnode, 'mouseover', this.mouseOver.bind(this), element);
|
|
50
|
-
overwriteOn(vnode, 'mouseout', this.mouseOut.bind(this), element);
|
|
51
|
-
overwriteOn(vnode, 'mouseenter', this.mouseEnter.bind(this), element);
|
|
52
|
-
overwriteOn(vnode, 'mouseleave', this.mouseLeave.bind(this), element);
|
|
53
|
-
overwriteOn(vnode, 'mousedown', this.mouseDown.bind(this), element);
|
|
54
|
-
overwriteOn(vnode, 'mouseup', this.mouseUp.bind(this), element);
|
|
55
|
-
overwriteOn(vnode, 'mousemove', this.mouseMove.bind(this), element);
|
|
56
|
-
overwriteOn(vnode, 'wheel', this.wheel.bind(this), element);
|
|
57
|
-
overwriteOn(vnode, 'contextmenu', (
|
|
58
|
-
|
|
59
|
-
}, element);
|
|
60
|
-
overwriteOn(vnode, 'dblclick', this.doubleClick.bind(this), element);
|
|
49
|
+
overwriteOn(vnode, 'mouseover', this.mouseOver.bind(this, element), element);
|
|
50
|
+
overwriteOn(vnode, 'mouseout', this.mouseOut.bind(this, element), element);
|
|
51
|
+
overwriteOn(vnode, 'mouseenter', this.mouseEnter.bind(this, element), element);
|
|
52
|
+
overwriteOn(vnode, 'mouseleave', this.mouseLeave.bind(this, element), element);
|
|
53
|
+
overwriteOn(vnode, 'mousedown', this.mouseDown.bind(this, element), element);
|
|
54
|
+
overwriteOn(vnode, 'mouseup', this.mouseUp.bind(this, element), element);
|
|
55
|
+
overwriteOn(vnode, 'mousemove', this.mouseMove.bind(this, element), element);
|
|
56
|
+
overwriteOn(vnode, 'wheel', this.wheel.bind(this, element), element);
|
|
57
|
+
overwriteOn(vnode, 'contextmenu', this.contextMenu.bind(this, element), element);
|
|
58
|
+
overwriteOn(vnode, 'dblclick', this.doubleClick.bind(this, element), element);
|
|
61
59
|
}
|
|
62
|
-
vnode = this.mouseListeners.reduce(
|
|
63
|
-
(n: VNode, listener: MouseListener) => listener.decorate(n, element),
|
|
64
|
-
vnode);
|
|
60
|
+
vnode = this.mouseListeners.reduce((n: VNode, listener: MouseListener) => listener.decorate(n, element), vnode);
|
|
65
61
|
return vnode;
|
|
66
62
|
}
|
|
67
63
|
|
|
64
|
+
contextMenu(model: SModelRoot, event: MouseEvent): void {
|
|
65
|
+
event.preventDefault();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
68
|
protected handleEvent<K extends keyof MouseListener>(methodName: K, model: SModelRoot, event: MouseEvent): void {
|
|
69
69
|
this.focusOnMouseEvent(methodName, model);
|
|
70
70
|
const element = this.getTargetElement(model, event);
|
|
@@ -74,13 +74,23 @@ export class RankingMouseTool extends MouseTool implements IMouseTool {
|
|
|
74
74
|
this.notifyListenersByRank(element, methodName, model, event);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
async notifyListenersByRank<K extends keyof MouseListener>(
|
|
77
|
+
async notifyListenersByRank<K extends keyof MouseListener>(
|
|
78
|
+
element: SModelElement,
|
|
79
|
+
methodName: K,
|
|
80
|
+
model: SModelRoot,
|
|
81
|
+
event: MouseEvent
|
|
82
|
+
): Promise<void> {
|
|
78
83
|
for (const rank of this.rankedMouseListeners) {
|
|
79
84
|
await this.dispatchActions(rank[1], methodName, element, event);
|
|
80
85
|
}
|
|
81
86
|
}
|
|
82
87
|
|
|
83
|
-
async dispatchActions<K extends keyof MouseListener>(
|
|
88
|
+
async dispatchActions<K extends keyof MouseListener>(
|
|
89
|
+
mouseListeners: MouseListener[],
|
|
90
|
+
methodName: K,
|
|
91
|
+
element: SModelElement,
|
|
92
|
+
event: MouseEvent
|
|
93
|
+
): Promise<void> {
|
|
84
94
|
const actions = mouseListeners
|
|
85
95
|
.map(listener => listener[methodName].apply(listener, [element, event]))
|
|
86
96
|
.reduce((a, b) => a.concat(b));
|
|
@@ -115,13 +125,13 @@ function groupBy<K, T>(array: Array<T>, keyFunction: (x: T) => K): Map<K, T[]> {
|
|
|
115
125
|
return new Map<K, T[]>([...unsortedMap.entries()].sort());
|
|
116
126
|
}
|
|
117
127
|
|
|
118
|
-
function overwriteOn(vnode: VNode, event: string, listener: (model: SModelElement,
|
|
128
|
+
function overwriteOn(vnode: VNode, event: string, listener: (model: SModelElement, _event: Event) => void, element: SModelElement): void {
|
|
119
129
|
const val = getOn(vnode);
|
|
120
130
|
// ignore any previous val[event] registrations
|
|
121
131
|
(val as any)[event] = [listener, element];
|
|
122
132
|
}
|
|
123
133
|
|
|
124
|
-
function getOn(vnode: VNode):
|
|
134
|
+
function getOn(vnode: VNode): On {
|
|
125
135
|
const data = getData(vnode);
|
|
126
136
|
if (!data.on) {
|
|
127
137
|
data.on = {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2020-2021 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,16 +13,10 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { NavigateToExternalTargetAction, NavigateToTargetAction } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { ContainerModule } from 'inversify';
|
|
17
|
-
import { configureActionHandler } from 'sprotty
|
|
18
|
-
|
|
19
|
-
import {
|
|
20
|
-
NavigateAction,
|
|
21
|
-
NavigateToExternalTargetAction,
|
|
22
|
-
NavigateToTargetAction,
|
|
23
|
-
NavigationActionHandler,
|
|
24
|
-
ProcessNavigationArgumentsAction
|
|
25
|
-
} from './navigation-action-handler';
|
|
18
|
+
import { configureActionHandler } from 'sprotty';
|
|
19
|
+
import { NavigateAction, NavigationActionHandler, ProcessNavigationArgumentsAction } from './navigation-action-handler';
|
|
26
20
|
import { NavigationTargetResolver } from './navigation-target-resolver';
|
|
27
21
|
|
|
28
22
|
export const navigationModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2020-2021 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,28 +13,29 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { inject, injectable } from 'inversify';
|
|
17
16
|
import {
|
|
18
17
|
Action,
|
|
19
|
-
|
|
18
|
+
Args,
|
|
20
19
|
CenterAction,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
GLSPServerStatusAction,
|
|
21
|
+
isNavigateToExternalTargetAction,
|
|
22
|
+
isNavigateToTargetAction,
|
|
23
|
+
isSetNavigationTargetsAction,
|
|
24
|
+
NavigateToExternalTargetAction,
|
|
25
|
+
NavigateToTargetAction,
|
|
26
|
+
NavigationTarget,
|
|
27
|
+
RequestNavigationTargetsAction,
|
|
28
28
|
SelectAction,
|
|
29
29
|
SelectAllAction,
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
ServerMessageAction,
|
|
31
|
+
SetResolvedNavigationTargetAction
|
|
32
|
+
} from '@eclipse-glsp/protocol';
|
|
33
|
+
import { inject, injectable } from 'inversify';
|
|
34
|
+
import { ActionHandlerRegistry, IActionDispatcher, IActionHandler, ICommand, ILogger, TYPES } from 'sprotty';
|
|
32
35
|
|
|
33
|
-
import {
|
|
34
|
-
import { EditorContext, EditorContextServiceProvider } from '../../base/editor-context';
|
|
36
|
+
import { EditorContextServiceProvider } from '../../base/editor-context-service';
|
|
35
37
|
import { GLSP_TYPES } from '../../base/types';
|
|
36
|
-
import {
|
|
37
|
-
import { NavigationTarget, NavigationTargetResolver, SetResolvedNavigationTargetAction } from './navigation-target-resolver';
|
|
38
|
+
import { NavigationTargetResolver } from './navigation-target-resolver';
|
|
38
39
|
|
|
39
40
|
/**
|
|
40
41
|
* Action for triggering a navigation of a certain target type.
|
|
@@ -50,55 +51,11 @@ import { NavigationTarget, NavigationTargetResolver, SetResolvedNavigationTarget
|
|
|
50
51
|
export class NavigateAction implements Action {
|
|
51
52
|
static readonly KIND = 'navigate';
|
|
52
53
|
readonly kind = NavigateAction.KIND;
|
|
53
|
-
constructor(readonly targetTypeId: string, readonly args?: Args) {
|
|
54
|
+
constructor(readonly targetTypeId: string, readonly args?: Args) {}
|
|
54
55
|
}
|
|
55
56
|
|
|
56
57
|
export function isNavigateAction(action: Action): action is NavigateAction {
|
|
57
|
-
return action !== undefined &&
|
|
58
|
-
&& (action as NavigateAction).targetTypeId !== undefined;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/** Action that is usually sent to the server to request navigation targets for a navigation type. */
|
|
62
|
-
export class RequestNavigationTargetsAction implements RequestAction<SetNavigationTargetsAction> {
|
|
63
|
-
static readonly KIND = 'requestNavigationTargets';
|
|
64
|
-
kind = RequestNavigationTargetsAction.KIND;
|
|
65
|
-
constructor(readonly targetTypeId: string, readonly editorContext: EditorContext,
|
|
66
|
-
readonly requestId: string = generateRequestId()) { }
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/** Action that is usually sent from the server to the client as a repsonse to a `RequestNavigationTargetsAction`. */
|
|
70
|
-
export class SetNavigationTargetsAction implements ResponseAction {
|
|
71
|
-
static readonly KIND = 'setNavigationTargets';
|
|
72
|
-
kind = SetNavigationTargetsAction.KIND;
|
|
73
|
-
constructor(readonly targets: NavigationTarget[], readonly responseId: string = '', readonly args?: Args) { }
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export function isSetNavigationTargetsAction(action: Action): action is SetNavigationTargetsAction {
|
|
77
|
-
return action !== undefined && (action.kind === SetNavigationTargetsAction.KIND)
|
|
78
|
-
&& (action as SetNavigationTargetsAction).targets !== undefined;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/** Action that triggers the navigation to a particular navigation target, such as element IDs, queries, etc.. */
|
|
82
|
-
export class NavigateToTargetAction implements Action {
|
|
83
|
-
static readonly KIND = 'navigateToTarget';
|
|
84
|
-
readonly kind = NavigateToTargetAction.KIND;
|
|
85
|
-
constructor(readonly target: NavigationTarget) { }
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export function isNavigateToTargetAction(action: Action): action is NavigateToTargetAction {
|
|
89
|
-
return action !== undefined && (action.kind === NavigateToTargetAction.KIND)
|
|
90
|
-
&& (action as NavigateToTargetAction).target !== undefined;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
export class NavigateToExternalTargetAction implements Action {
|
|
94
|
-
static readonly KIND = 'navigateToExternalTarget';
|
|
95
|
-
readonly kind = NavigateToExternalTargetAction.KIND;
|
|
96
|
-
constructor(readonly target: NavigationTarget) { }
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
export function isNavigateToExternalTargetAction(action: Action): action is NavigateToExternalTargetAction {
|
|
100
|
-
return action !== undefined && (action.kind === NavigateToExternalTargetAction.KIND)
|
|
101
|
-
&& (action as NavigateToExternalTargetAction).target !== undefined;
|
|
58
|
+
return action !== undefined && action.kind === NavigateAction.KIND && (action as NavigateAction).targetTypeId !== undefined;
|
|
102
59
|
}
|
|
103
60
|
|
|
104
61
|
/** Action to trigger the processing of additional navigation arguments.
|
|
@@ -112,12 +69,15 @@ export function isNavigateToExternalTargetAction(action: Action): action is Navi
|
|
|
112
69
|
export class ProcessNavigationArgumentsAction implements Action {
|
|
113
70
|
static readonly KIND = 'processNavigationArguments';
|
|
114
71
|
readonly kind = ProcessNavigationArgumentsAction.KIND;
|
|
115
|
-
constructor(readonly args: Args) {
|
|
72
|
+
constructor(readonly args: Args) {}
|
|
116
73
|
}
|
|
117
74
|
|
|
118
75
|
export function isProcessNavigationArgumentsAction(action: Action): action is ProcessNavigationArgumentsAction {
|
|
119
|
-
return
|
|
120
|
-
|
|
76
|
+
return (
|
|
77
|
+
action !== undefined &&
|
|
78
|
+
action.kind === ProcessNavigationArgumentsAction.KIND &&
|
|
79
|
+
(action as ProcessNavigationArgumentsAction).args !== undefined
|
|
80
|
+
);
|
|
121
81
|
}
|
|
122
82
|
|
|
123
83
|
/**
|
|
@@ -144,7 +104,6 @@ export function isProcessNavigationArgumentsAction(action: Action): action is Pr
|
|
|
144
104
|
*/
|
|
145
105
|
@injectable()
|
|
146
106
|
export class NavigationActionHandler implements IActionHandler {
|
|
147
|
-
|
|
148
107
|
readonly notificationTimeout = 5000;
|
|
149
108
|
|
|
150
109
|
@inject(TYPES.ILogger) protected logger: ILogger;
|
|
@@ -172,8 +131,11 @@ export class NavigationActionHandler implements IActionHandler {
|
|
|
172
131
|
const response = await this.dispatcher.request(new RequestNavigationTargetsAction(action.targetTypeId, context));
|
|
173
132
|
if (isSetNavigationTargetsAction(response) && response.targets && response.targets.length === 1) {
|
|
174
133
|
if (response.targets.length > 1) {
|
|
175
|
-
this.logger.warn(
|
|
176
|
-
|
|
134
|
+
this.logger.warn(
|
|
135
|
+
this,
|
|
136
|
+
'Processing of multiple targets is not supported yet. ' + 'Only the first is being processed.',
|
|
137
|
+
response.targets
|
|
138
|
+
);
|
|
177
139
|
}
|
|
178
140
|
return this.dispatcher.dispatch(new NavigateToTargetAction(response.targets[0]));
|
|
179
141
|
}
|
|
@@ -203,7 +165,9 @@ export class NavigationActionHandler implements IActionHandler {
|
|
|
203
165
|
return this.resolver.resolve(action.target);
|
|
204
166
|
}
|
|
205
167
|
|
|
206
|
-
protected containsElementIdsOrArguments(
|
|
168
|
+
protected containsElementIdsOrArguments(
|
|
169
|
+
target: SetResolvedNavigationTargetAction | undefined
|
|
170
|
+
): target is SetResolvedNavigationTargetAction {
|
|
207
171
|
return target !== undefined && (this.containsElementIds(target.elementIds) || this.containsArguments(target.args));
|
|
208
172
|
}
|
|
209
173
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2020-2021 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,15 +14,12 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
/* eslint-disable no-unused-expressions */
|
|
17
|
+
import { NavigationTarget } from '@eclipse-glsp/protocol';
|
|
18
|
+
import { expect } from 'chai';
|
|
17
19
|
import 'mocha';
|
|
18
20
|
import 'reflect-metadata';
|
|
19
21
|
|
|
20
|
-
import { expect } from 'chai';
|
|
21
|
-
|
|
22
|
-
import { NavigationTarget } from './navigation-target-resolver';
|
|
23
|
-
|
|
24
22
|
describe('NavigationTarget', () => {
|
|
25
|
-
|
|
26
23
|
it('should be able to set and get element IDs', () => {
|
|
27
24
|
const navigationTarget: NavigationTarget = { uri: 'uri' };
|
|
28
25
|
NavigationTarget.setElementIds(navigationTarget, ['id1', 'id2']);
|
|
@@ -57,5 +54,4 @@ describe('NavigationTarget', () => {
|
|
|
57
54
|
NavigationTarget.setTextPosition(navigationTarget, { line: 1, character: 2 });
|
|
58
55
|
expect(NavigationTarget.hasArguments(navigationTarget)).to.be.true;
|
|
59
56
|
});
|
|
60
|
-
|
|
61
57
|
});
|