Skip to content

Releases: eclipse-glsp/glsp-client

v2.2.1

22 Jul 12:10
v2.2.1
Compare
Choose a tag to compare

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 LazyInjector that can be used for deferred retrial of services from the container. #330
    • Introduce preLoadDiagram hook for IDiagramStartups. This hook is invoked right before the DiagramLoader starts the model loading process
  • [launch] Introduce GLSPWebWorkerProvider to simply setting up a worker connection to a in-browser GLSP-server #322
  • [diagram] Improve base abstract UIExtension to 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,Dimension and Point. Introduce Vector and Movement types #341 - Contributed on behalf of Axon Ivy AG
  • [features] Introduce optional gridModule for managing and rendering grids and debugModule that 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 ContainerConfiguration API and add additional checks to ensure that all ids of FeatureModules are 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 AutocompleteWidget that prevented proper application of valid suggestions #362
  • [api] Improved behavior of default ToolManager to avoid unnecessary deactivation and reactivation of default tools #367
  • [diagram] Add onFocusChanged event to FocusTracker and EditorContextService #380

Potentially breaking changes

  • [API] Centralize most marquee selection behavior in the MarqueeUtil class which is now a singleton, injectable and needs the DOMHelper. This will cause a break if you manually created the class without injecting it. To construct it manually, you need to provide the DomHelper as a second argument #373.
  • [protocol] Avoid indirect dependency to chai introduce by accidentally exporting testing modules #321
    • @eclipse-glsp/protocol no longer exports test-util.ts via 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 SetModelCommand and unify rank and priority property #323.
    • Method FeedbackAwareUpdateModelCommand.getFeedbackCommands moved to IFeedbackEmitter for re-use, resulting in two new methods: getFeedbackCommands and applyFeedbackCommands.
    • Method FeedbackAwareUpdateModelCommand.getPriority is replaced by a generic rank property and the Ranked namespace.
    • The priority property (higher priority equals earlier execution) in FeedbackCommand is superseeded by a rank property (lower rank equals earlier execution).
  • [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 IGModelRootListeners has moved to the EditorContextService.
      • onModelRootChanged is no deprecated. Use EditorContextService.onModelRootChanged instead
    • EditorContextService: The postRequestModel method has been removed. It was previously unused and effectively a no-op.
    • SelectionService: Injected commandStack property has been removed.
  • [diagram] Introduce a reusable FeedbackEmitter base 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 new FeedbackEmitter API. 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 ChangeBounds API by introducing a centralized ChangeBoundsManage and ChangeBoundsTracker #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

07 Feb 14:25
Compare
Choose a tag to compare

Changes:

  • Align sprotty-protocol version to 1.0.0

Full Changelog: v2.1.0...v2.1.1

2.1.0 Release

23 Jan 12:55
Compare
Choose a tag to compare

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 configureDiagramOptions function to also allow partial configuration of ViewerOptions #296
  • [diagram] Remove unused handleSetContextActions from ToolPalette #301
  • [diagram] Deprecate ISModelRootListener API in favor of IGModelRootListener #303
  • [diagram] Ensure that the suggestion container position of the AutoCompleteWidget is rendered correctly #304
  • [feature] Extend ToolPalette/CreateOperation API to support rendering of preview/ghost elements when creating new nodes #301
  • [protocol] Fix a bug in BaseJsonRpcClient to 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 SelectionService that caused issues with inversify when injecting certain services (e.g. ActionDispatcher) in SelectionChangeListener implementations #305
  • [diagram] Ensure that the SelectionService does 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

09 Nov 13:42
v2.0.0
Compare
Choose a tag to compare

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 EditLabelUIExtension where the diagram becomes dirty without an actual change. #766
  • [diagram] Extend ComputedBoundsAction definition with routing information. This enables proper forwarding of client-side computed routes to the server #201
  • [DI] The createClientContainer function is now deprecated. Please use initializeDiagramContainer instead. This new function can also be used with ModuleConfigurations which 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 Disposable type #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 deselectAll flag for SelectActions #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 registerListener method on GLSP mouse and key tool to return a disposable for de-registration
    • Adapt registerFeedback method from feedback dispatcher to return a disposable for de-registration
    • Introduce dedicated BaseGLSPCreationTool for tools based on trigger actions
    • Introduce toDisposeOnDisable collection in BaseGLSPTool to register disable handling during enablement
  • [DI] Introduce and consistently use FeatureModules instead of plain inversify ContainerModules #267
  • [diagram] Introduce statusModule that binds UI extension to handle & render GLSPStatusMessages. #272
  • [diagram] Provide generic dirty state handling in EditorContextService #272
  • [diagram] Fix bug that broke edge edit (routing) in certain cases #273
  • [API] Introduce DiagramLoader component + life cycle management #274 #282
    • Integration projects no longer need to manually implement the initial diagram loading. Instead a set of configurationsIDiagramOptions and then the diagram loader
      is invoked and initializes the diagram.
    • Add a onServerInitialized event to the GLSPClientAPI.
    • Introduce IDiagramStartup service. Adopters can multi bind this service to hook into the diagram loading lifecycle and provide additional logic. i.e. dispatching of initial actions.
  • [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 IButtonHandler constructor is now deprecated. Please use configureButtonHandler() instead. #195 - Contributed on behalf of STMicroelectronics
  • [node] Update minimum requirements for Node to >=16.11.0 #210
  • [protocol] Renamed UndoOperation and RedoOperation to UndoAction and RedoAction to 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 elementIds property of LayoutOperation is now optional. If undefined the entire model will be layouted #232
  • [API] Refactored base API #259
    • Removed the TYPES.SelectionService service identifier. Please directly use the SelectionService class as service identifier instead
    • The SelectionService binding is now part of the defaultGLSPModule. This means the SelectionService remains available even if the selectModule is not configured
    • RootModelChangeListeners are no longer tied to the FeedbackawareUpdateModelCommand instead they are managed by the GLSPCommandStack
    • IMouseTool and TYPES.IMouseTool are no longer available. Directly inject and use MouseTool instead
    • Refactored rank utility functions
      • isRanked() -> Ranked.is()
      • getRank() -> Ranked.getRank()
      • DEFAULT_RANK -> Ranked.DEFAULT_RANK
  • [API] Introduce Event API to replace the old listener/notifier pattern #261
    • Reworked SelectionService, GlspCommandStack & EditorContextService to 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 I prefix
  • [API] Re-work tool and feedback structure #264
    • Remove generic toolsModule and toolFeedbackModule in favor of individual tool modules
    • Rename dispatchFeedback in BaseGLSPTool to registerFeedback to align with feedback dispatcher
    • Switch arguments in deregisterFeedback in BaseGLSPTool for easier de-registration and clean up actions
  • [protocol] Add messages for server-side progress reporting and remove timeout in ServerMessageAction #265
  • [DI] Renamed and aligned prefixes of DI modules. #266
    • Removed glsp prefix from all modules (e.g. glspSelectModule-> selectModule)
    • In addition, the following modules have been renamed
      • defaultGLSPModule-> baseModule
      • modelHintsModule -> typeHintsModule
      • enableDefaultToolsOnFocusLossModule -> toolFocusLossModule
      • glspEditLabelModule -> labelEditModule
  • [websocket] Introduce a reusable GLSPWebSocketProvider class that supports reconnect on connection loss #269
  • [API] Introduce GLSPModelSource as default implementation for sprotty's ModelSourceAPI #272 #287
    • GLSPDiagramServer has been deprecated and is no longer available
    • SelectionServiceAwareContextMenuMouseListener renamed to GLSPContextMenuMouseListener
    • SourceURIAware interface has been removed. No longe required since we only have one GLSPModelSource binding now.
  • [protocol] Revise TypeHints API and introduce possibility to dynamically query the server for complex connection conditions #285
    • EdgeTypeHint
      • sourceElementTypeIds and targetElementTypeIds are now optional. If not provided all connection targets are allowed
      • Introduce dynamic flag. If a hint has this flag enabled connection tools know that the have to query there server in addition
        to checking the default ...
Read more

1.1.0 Release Candidate 10

30 Jun 13:26
Compare
Choose a tag to compare
Pre-release

What's Changed

Full Changelog: v1.1.0-RC09...v1.1.0-RC10

1.1.0 Release Candidate 9

30 May 19:52
Compare
Choose a tag to compare
Pre-release

What's Changed

Full Changelog: v1.1.0-RC08...v1.1.0-RC09

1.1.0 Release Candiate 8

08 May 08:23
Compare
Choose a tag to compare
Pre-release

What's Changed

New Contributors

Full Changelog: v1.1.0-RC07...v1.1.0-RC08

1.1.0 Release Candiate 7

07 Apr 11:21
Compare
Choose a tag to compare
Pre-release

What's Changed

  • Fix definition of LayoutOperation by @tortmayr in #232
  • Ensure tha DrawFeedbackEdgeAction uses correct type for schema by @tortmayr in #233
  • Reformat code & overall cleanup by @tortmayr in #234
  • GLSP-954 Add DI utility to protocol package by @tortmayr in #236
  • GLSP-954 Ensure that bindAsAService also work with the DI container as context by @tortmayr in #237
  • Bump webpack from 5.75.0 to 5.76.0 by @dependabot in #235

Full Changelog: v1.1.0-RC06...v1.1.0-RC07

1.1.0 Release Candiate 6

06 Mar 17:27
Compare
Choose a tag to compare
Pre-release

What's Changed

Full Changelog: v1.1.0-RC05...v1.1.0-RC06

1.1.0 Release Candiate 5

07 Feb 07:14
Compare
Choose a tag to compare
Pre-release

What's Changed

Full Changelog: v1.1.0-RC04...v1.1.0-RC05