Releases: eclipse-glsp/glsp-client
Releases · eclipse-glsp/glsp-client
2.5.0 Release
Changes
- [diagram] Fix text selection issues in chrome #425
- [example] Fix render error for new categories #426
- [api] Introduce & use ProposalString utility type #427
- [i18n] Add missing localization message for marker popups #428
- [diagram] Add missing visibility check to
RoundedCornerNodeView#430 - [layout] Fix a bug in the hGrab/vGrab calculation #435
Potentially breaking changes
- [protocol] Enrich
LayoutOperationwith additional optional client-side information (viewport) #433 #434- To trigger a manual layout the new
TriggerLayoutActionshould be dispatched instead of a directLayoutOperation - Dispatching of direct
LayoutOperations will still work, but the optional information will not be present
- To trigger a manual layout the new
- [layout] Introduce order-agnostic layouts #436
- Introduce a flag for
ILayoutsto specify whether the layouting of children is independent of their semantic order in the model.
TheBringToFrontCommandrespects this flag and only changes the ordering of order-agnostic layouts zordermodule now requires bounds module as we need the layout registry
- Introduce a flag for
- [diagram] Introduce viewport change event for
EditorContextService#438- This change extracts the handling of model related changes into an dedicated
IModelChangeServicewhich is reused by theEditorContextService - The following changes to internal API might affect customizations of adopters:
GLSPCommandStack: 'notifyListener' method has been removedEditorContextService:- Remove
_modelRootandonModelRootChangedEmitterproperties. Corresponding getters now forward to theIModelChangeService - Remove
notifyModelRootChangedmethod (Probably no side effect for adopters. Method was only callable from commandstack anyways)
- Remove
- This change extracts the handling of model related changes into an dedicated
- [node] Update minimum requirements for Node to >=20 #439
Full Changelog: v2.4.0...v2.5.0
2.4.0 Release
Changes
- [diagram] Remove !important rules from default CSS #412 #413 #414
- [diagram] Update default styling for label texts to avoid unintended user selection #415
- [diagram] Fix behavior of
ContainerManagerto allow proper usage of type hints on root/graph level #417 - [diagram] Prevent unintended rendering of not-supported sprotty reconnect handles #418
- [diagram] Allow listening to selection changes in the
AutoCompleteWidget#420 - [api] Introduce a lightweight adaptable message system (i18n) #421
Potentially breaking changes
- [diagram] Refactor a11y feature module and extract move,zoom,shortcut and resize features #396
- The move, zoom, shortcut and resize features have been moved to their own modules. They are now enabled by default
- For now the a11y module remains in experimental state and api breakages might occur in the future
Full Changelog: v2.3.0...v2.4.0
2.3.0 Release
Changes
- [protocol] Ensure that the
@eclipse-glsp/protocolpackage has no default dependency to inversify #384#387 - [diagram] Ensure that
GLSPMousePositionTrackercorrectly calculates the current position in diagram local coordinates #391 - [api] Align
ActionDispatcherinterface withGLSPActionDispatcherimplementation. #394- Directly injecting the
GLSPActionDispatcheris no longer necessary useTYPES.IActionDispatcher/ActionDispatcherinstead
- Directly injecting the
- [standlalone] Adapt
copyPasteStandalonemodule to ensure that copy/cut/paste listeners are scoped to the active diagram and don't trigger globally #395 - [diagram] Introduce
IMovementOptionsfor theChangeBoundsToolto allow configuration of movement behavior #397 - Contributed on behalf of Axon Ivy AG - [diagram] Fix a bug that prevented the
ChangeBoundsToolfrom working correctly if the user moved outside of the diagram during an operation #399 - Contributed on behalf of AxonIvy AG - [api] Improve default
GLSPClientimplementation to be more robust when certain methods are invoked multiple times #402 - [diagram] Fix a bug in the uri handling of the
NavigationTargetResolver#403 - [di] Use inversify ^6.1.3 as new baseline and update to sprotty 1.4.0 #407#408
Potentially breaking changes
- [di] Align Interface usage across *Manager classes #388
- Change DI bindings for:
GridMangertoTYPES.IGridManager,ChangeBoundsManagertoTYPES.IChangeBoundsManagerandDebugManagertoTYPES.IDebugManager.
- Change DI bindings for:
- [api] Improved performance of diagram loading routine #398 - Contributed on behalf of Axon Ivy AG
- Fix behavior of
postRequestModelhook to actually work as descried in the documentation.
Dispatching of long running actions in this hook can delay the initial model loading. - Directly calling model-aware functions in the
preInitializehook is discouraged.
If needed dispatch an action instead.
This ensures that the code will only be called once the model is available.
- Fix behavior of
v2.2.1
Changes
- [diagram] Fix a bug that prevented proper rendering of templates/ghost elements during node creation in Firefox #324 - Contributed on behalf of Axon Ivy AG
- [routing] Improve anchor point calculation for edge routing #325
- [validation] Fix a bug that could cause duplicate validation markers after a model update #329
- [di] Introduce a reusable
LazyInjectorthat can be used for deferred retrial of services from the container. #330- Introduce
preLoadDiagramhook forIDiagramStartups. This hook is invoked right before theDiagramLoaderstarts the model loading process
- Introduce
- [launch] Introduce
GLSPWebWorkerProviderto simply setting up a worker connection to a in-browser GLSP-server #322 - [diagram] Improve base abstract
UIExtensionto allow more fine-grained definition of container and parent #333 - Contributed on behalf of Axon Ivy AG - [protocol] Improve Geometry API. Add utility functions to
Bound,DimensionandPoint. IntroduceVectorandMovementtypes #341 - Contributed on behalf of Axon Ivy AG - [features] Introduce optional
gridModulefor managing and rendering grids anddebugModulethat allows do display additional graphical debug information during development #343 #359 - [diagram] Improve error handling of startup hooks #346
- [feature] Improve style handling in svg exporter #354
- [di] Improve
ContainerConfigurationAPI and add additional checks to ensure that all ids ofFeatureModulesare unique #355 - [diagram] Update to sprotty 1.2.0. Non-breaking as all potential API breaks have been mitigated via the glsp-sprotty rexport layer #357
- [diagram] Fix a bug with the
AutocompleteWidgetthat prevented proper application of valid suggestions #362 - [api] Improved behavior of default
ToolManagerto avoid unnecessary deactivation and reactivation of default tools #367 - [diagram] Add
onFocusChangedevent toFocusTrackerandEditorContextService#380
Potentially breaking changes
- [API] Centralize most marquee selection behavior in the
MarqueeUtilclass which is now a singleton, injectable and needs theDOMHelper. This will cause a break if you manually created the class without injecting it. To construct it manually, you need to provide theDomHelperas a second argument #373. - [protocol] Avoid indirect dependency to
chaiintroduce by accidentally exporting testing modules #321@eclipse-glsp/protocolno longer exportstest-util.tsvia main index. If needed the module can still be imported via the full path@eclipse-glsp/protocol/lib/utils/test-util.ts
- [API] Apply feedback commands already on
SetModelCommandand unifyrankandpriorityproperty #323.- Method
FeedbackAwareUpdateModelCommand.getFeedbackCommandsmoved toIFeedbackEmitterfor re-use, resulting in two new methods:getFeedbackCommandsandapplyFeedbackCommands. - Method
FeedbackAwareUpdateModelCommand.getPriorityis replaced by a genericrankproperty and theRankednamespace. - The
priorityproperty (higher priority equals earlier execution) inFeedbackCommandis superseeded by arankproperty (lower rank equals earlier execution).
- Method
- [DI] Introduce deferred injection for multi-injected services (listeners, action handlers etc.). Highly reduces the likelihood of circular dependency issues during container creation #330.
No API breaks in the core API, but it introduces some minor breaks in protected methods/fields of default implementations:GLSPCommandStack- Handling of
IGModelRootListenershas moved to theEditorContextService. onModelRootChangedis no deprecated. UseEditorContextService.onModelRootChangedinstead
- Handling of
EditorContextService: ThepostRequestModelmethod has been removed. It was previously unused and effectively a no-op.SelectionService: InjectedcommandStackproperty has been removed.
- [diagram] Introduce a reusable
FeedbackEmitterbase implementation that is stable across model updates and allows composing feedback before dispatching it #342
Refactored tool implementations and related services to make use of the newFeedbackEmitterAPI. This can cause potential breaks for adopters that have customized the default tool implementations.
Affected tools and services:MouseTrackingElementPositionListener,HelperLineManager,FeedbackMoveMouseListener,NodeCreationToolMouseListener,EdgeEditListener, - [diagram] Refactor and improve
ChangeBoundsAPI by introducing a centralizedChangeBoundsManageandChangeBoundsTracker#344 #348 #352 - Contributed on behalf of Axon Ivy AG
This can cause potential breaks for adopters that have customized the default tool implementations
Affected tools and services:MouseTrackingElementPositionListener,FeedbackMoveMouseListener,ChangeBoundsTool,ChangeBoundsListener,FeedbackEdgeRouteMovingMouseListener,NodeCreationTool,
Full Changelog: v2.1.0...v2.2.1
2.1.1 Release
2.1.0 Release
Changes
- [diagram] Fix a bug that prevented correct rendering of projection bars when using
GLSPProjectionView#298 - [a11y] Improved responsibility and feedback when resizing or moving diagram elements with keyboard-only commands #295
- [diagram] Extends
configureDiagramOptionsfunction to also allow partial configuration ofViewerOptions#296 - [diagram] Remove unused handleSetContextActions from ToolPalette #301
- [diagram] Deprecate
ISModelRootListenerAPI in favor ofIGModelRootListener#303 - [diagram] Ensure that the suggestion container position of the
AutoCompleteWidgetis rendered correctly #304 - [feature] Extend
ToolPalette/CreateOperationAPI to support rendering of preview/ghost elements when creating new nodes #301 - [protocol] Fix a bug in
BaseJsonRpcClientto ensure that it can handle multiple open diagram sessions #307 - [diagram] Restructure some tools to have a more common infrastructure and support helper lines #306
- [diagram] Fix a bug in
SelectionServicethat caused issues with inversify when injecting certain services (e.g.ActionDispatcher) inSelectionChangeListenerimplementations #305 - [diagram] Ensure that the
SelectionServicedoes not trigger a change event if the selection did not change on model update #313
Full Changelog: v1.0.0...v2.1.0
2.0.0 Release
Changes
- [layout] Improve Layouter to support more dynamic layouts and complex parent/children node structures #187 - Contributed on behalf of STMicroelectronics
- [diagram] Fix SVG export for nested root elements e.g.
GLSPProjectionView#196 - [diagram] Scope the styles to not break existing application layout #209
- [routing] Ensure that routes are properly re-calculated when moving a routing point #198
- [diagram] Fix a bug in the
EditLabelUIExtensionwhere the diagram becomes dirty without an actual change. #766 - [diagram] Extend
ComputedBoundsActiondefinition with routing information. This enables proper forwarding of client-side computed routes to the server #201 - [DI] The
createClientContainerfunction is now deprecated. Please useinitializeDiagramContainerinstead. This new function can also be used withModuleConfigurationswhich allow a more fine granular configuration by adding new modules and/or removing default modules. #218 #231 #236 - [diagram] Fix incorrect calculation of decorator popup positions for edges. #221
- [protocol] Introduce a reusable
Disposabletype #222 - [protocol] Introduce reusable utility functions for DI configuration #236#237
- [diagram] Augment diagram SVG with additional model metadata to enable easier integration tests and accessibility #239
- [validation] Add and track reason for validation markers (e.g. batch and live validation) #243
- [protocol] Introduce optional
deselectAllflag forSelectActions #257 - [protocol] Provide the common interfaces and type definitions for TS-based GLSP servers #245 - Contributed on behalf of STMicroelectronics
- [diagram] Introduce a new set of accessability features for disability-aware conceptual modeling and keyboard-only diagram interactions. (experimental) #240 #241 #242 #254 #276 #279
- [API] Re-work tool and feedback structure #264 #274
- Introduce
registerListenermethod on GLSP mouse and key tool to return a disposable for de-registration - Adapt
registerFeedbackmethod from feedback dispatcher to return a disposable for de-registration - Introduce dedicated
BaseGLSPCreationToolfor tools based on trigger actions - Introduce
toDisposeOnDisablecollection inBaseGLSPToolto register disable handling during enablement
- Introduce
- [DI] Introduce and consistently use
FeatureModules instead of plain inversifyContainerModules #267 - [diagram] Introduce
statusModulethat binds UI extension to handle & renderGLSPStatusMessages. #272 - [diagram] Provide generic dirty state handling in
EditorContextService#272 - [diagram] Fix bug that broke edge edit (routing) in certain cases #273
- [API] Introduce
DiagramLoadercomponent + life cycle management #274 #282- Integration projects no longer need to manually implement the initial diagram loading. Instead a set of configurations
IDiagramOptionsand then the diagram loader
is invoked and initializes the diagram. - Add a
onServerInitializedevent to theGLSPClientAPI. - Introduce
IDiagramStartupservice. Adopters can multi bind this service to hook into the diagram loading lifecycle and provide additional logic. i.e. dispatching of initial actions.
- Integration projects no longer need to manually implement the initial diagram loading. Instead a set of configurations
- [diagram] Fix a bug that broke edge intersection detection when using the
GLSPProjectionView#275 - [diagram] Fix a bug regarding focus handling when integrated in an application frame like Theia #278
Breaking Changes
- [DI] Injecting an
IButtonHandlerconstructor is now deprecated. Please useconfigureButtonHandler()instead. #195 - Contributed on behalf of STMicroelectronics - [node] Update minimum requirements for Node to >=16.11.0 #210
- [protocol] Renamed
UndoOperationandRedoOperationtoUndoActionandRedoActionto match operation specification #216 - [protocol] Remove dependency to
vscode-ws-jsonrpc. The protocol package now directly offers functions to create a websocket rpc connections #215 - [protocol] The
elementIdsproperty ofLayoutOperationis now optional. Ifundefinedthe entire model will be layouted #232 - [API] Refactored base API #259
- Removed the
TYPES.SelectionServiceservice identifier. Please directly use theSelectionServiceclass as service identifier instead - The
SelectionServicebinding is now part of thedefaultGLSPModule. This means theSelectionServiceremains available even if theselectModuleis not configured RootModelChangeListeners are no longer tied to theFeedbackawareUpdateModelCommandinstead they are managed by theGLSPCommandStackIMouseToolandTYPES.IMouseToolare no longer available. Directly inject and useMouseToolinstead- Refactored rank utility functions
isRanked()->Ranked.is()getRank()->Ranked.getRank()DEFAULT_RANK->Ranked.DEFAULT_RANK
- Removed the
- [API] Introduce Event API to replace the old listener/notifier pattern #261
- Reworked
SelectionService,GlspCommandStack&EditorContextServiceto make use of this new API - Removed explicit (de)registration methods for listeners. Use the corresponding event property (e.g.
SelectionService.onSelectionChanged) instead - Aligned naming of injectable interfaces & service identifiers to consistently use the
Iprefix
- Reworked
- [API] Re-work tool and feedback structure #264
- Remove generic
toolsModuleandtoolFeedbackModulein favor of individual tool modules - Rename
dispatchFeedbackinBaseGLSPTooltoregisterFeedbackto align with feedback dispatcher - Switch arguments in
deregisterFeedbackinBaseGLSPToolfor easier de-registration and clean up actions
- Remove generic
- [protocol] Add messages for server-side progress reporting and remove timeout in
ServerMessageAction#265 - [DI] Renamed and aligned prefixes of DI modules. #266
- Removed
glspprefix from all modules (e.g.glspSelectModule->selectModule) - In addition, the following modules have been renamed
defaultGLSPModule->baseModulemodelHintsModule->typeHintsModuleenableDefaultToolsOnFocusLossModule->toolFocusLossModuleglspEditLabelModule->labelEditModule
- Removed
- [websocket] Introduce a reusable
GLSPWebSocketProviderclass that supports reconnect on connection loss #269 - [API] Introduce
GLSPModelSourceas default implementation for sprotty'sModelSourceAPI #272 #287GLSPDiagramServerhas been deprecated and is no longer availableSelectionServiceAwareContextMenuMouseListenerrenamed toGLSPContextMenuMouseListenerSourceURIAwareinterface has been removed. No longe required since we only have oneGLSPModelSourcebinding now.
- [protocol] Revise TypeHints API and introduce possibility to dynamically query the server for complex connection conditions #285
EdgeTypeHintsourceElementTypeIdsandtargetElementTypeIdsare now optional. If not provided all connection targets are allowed- Introduce
dynamicflag. If a hint has this flag enabled connection tools know that the have to query there server in addition
to checking the default ...
1.1.0 Release Candidate 10
What's Changed
- Add keyboard support for searching elements by @aylin-sarioglu in #242
- Update workflow example README by @ndoschek in #251
- Add keyboard support for resizing elements by @aylin-sarioglu in #240
- GLSP-1026 Use new bundled workflow-server package by @tortmayr in #252
- Add documentation for accessibility features by @aylin-sarioglu in #254
- GLSP-1022: Update dependencies by @tortmayr in #253
Full Changelog: v1.1.0-RC09...v1.1.0-RC10
1.1.0 Release Candidate 9
1.1.0 Release Candiate 8
What's Changed
- Add a reason for requesting and setting markers by @planger in #243
- Add missing
reasontoSetMarkersActionby @planger in #244 - Add SVGMetadata API by @haydar-metin in #239
- Fix wrong import by @tortmayr in #246
New Contributors
- @haydar-metin made their first contribution in #239
Full Changelog: v1.1.0-RC07...v1.1.0-RC08