Skip to content

Latest commit

 

History

History
139 lines (108 loc) · 14.3 KB

CHANGELOG.md

File metadata and controls

139 lines (108 loc) · 14.3 KB

Eclipse GLSP Theia Integration Changelog

2.3.0 - active

Changes

Potentially Breaking Changes

Changes

  • [rpc] Ensure that the GLSP client properly reconnects to the backend after a temporary connection loss #197 #203
  • [diagram] Fix a bug that prevented proper disposal of the hidden diagram div after closing a diagram editor #204
  • [diagram] Improve createDiagramWidgetFactory utility function to also support factories for GLSPDiagramWidget subclasses #211
  • [diagram] Ensure that viewport restore on diagram open works generically indecently of how the diagram widget has been created #218

Potentially Breaking Changes

  • [launch] Changed the GLSPServerContributionOptions.debugArgument from debug to glspDebug to avoid clashes with nodes debug argument. Launch configurations and scripts need to be updated accordingly #211
  • [diagram] Fix a bug in the TheiaSelectionForwarder when handling multiple diagrams #227
    • This required a change in event handling. As a consequence the shell property has been removed. This might impact custom subclasses.

Changes

  • [diagram] Fixed a bug that prevented projection bars from being rendered correctly #185
  • [theia] Ensure that configuring multiple GLSP diagram languages does not breaking the inversify configuration #190

Changes

  • [protocol] Update to vscode-jsonrpc 8.0.2 to be compliant with client #136
  • [backend] Add support for using custom JVM args in GLSPSocketServerContribution #125
  • [diagram] Fix a bug that prevented proper focus tracking when switching between tabs #132
  • [diagram] Fix a bug that could cause dispatching of SaveActions even if the diagram is not dirty #141 - Contributed on behalf of STMicroelectronics
  • [backend] (Web)Socket based GLSPServerContributions now supports auto-assigned ports #151
  • [validation] Only keep live validation markers in problems view and clean all others #153
  • [backend] Provide GLSPNodeServerContribution to enable direct server integration into the Theia backed #154 - Contributed on behalf of STMicroelectronics
  • [theia] Add support for showing server progress in Theia #168
  • [websocket] Add support for Websocket communication to GLSP server from both the backend and the frontend directly #155 [#159(#159)] #179
  • [backend] Fix a bug that disconnected all Theia clients when closing a single one #164
  • [diagram] Add support for icons in context menu submenus #180

Breaking Changes

  • [theia] Update Theia dependencies to 1.33.0. Due to API breaks, Theia versions <1.33.0 are no longer supported. #119 - Contributed on behalf of STMicroelectronics
    This also causes breaking changes in:

    • GlspServerContribution (and inherited classes)
      • connect method now takes a Channel instead of a Connection parameter
    • BaseGlspServerContribution (and inherited classes)
      • forward method now takes a Channel as first parameter instead of a Connection
  • [deps] Switch Theia extension dependencies to peer dependencies. These dependencies are no longer autoresolved and have to be declared in the application package. #138 - Contributed on behalf of STMicroelectronics

  • [API] Refactor GLSPContribution API #146

    • GLSPClientContribution.waitForActivation is now optional and is not implemented by default.
    • GLSPClientProviderImpl has been renamed to GLSPClientProvider, function keys have been renamed has well
    • Removed GLSPContribution.Service and dropped the related deprecated session concept.
  • [API] Remove dependency to sprotty-theia #149

    • Modules from sprotty-theia are no longer reexported via the browser index.ts file
  • [diagram] Refactor GLSPDiagramConfiguration. Diagram containers are now child containers of the Theia DI container #152

    • GLSPDiagramConfiguration
      • doCreateContainer method has been renamed to configureContainer and requires additional arguments.
  • [theia] BaseGLSPClientContribution: change createGLSPClient(connectionProvider: ConnectionProvider) to an async function #155

  • [deps] Update to inversify 6 and Typescript 5.x #163

    • GLSP uses a synchronous inversify context this means with inversify 6.x decorator methods (e.g. @postConstruct) with asynchronous results are no longer supported
  • [API] Remove TheiaGLSPConnector. The diagram DI container is now a child container of the Theia main container and has direct access to all Theia services #173

    • Refactor/rename SavableGLSPModelSource -> GLSPSavable
    • Move export functionality from removed connector to theiaExportModule
    • Encapsulate forwarding to Theia selection service in theiaSelectionModule
    • Encapsulate source model changed handling in theiaSourceModelWatcherModule
    • Moving handling of navigation targets into theiaNavigationModule
    • Move server message & process handling from removed connector to theiaNotificationModule
    • Remove GLSPNotificationManager
    • Remove dedicated ServerStatus handling in GLSPDiagramWidget and use the new statusModule instead
  • [diagram] Refactor GLSPDiagramWidget and removed dispatchInitialActions method. #176

    • To dispatch custom initial actions use the new IDiagramStartup service instead.
    • Unify related multi-injection bindings and consistently use ContributionProviders for them
      • Remove DiagramConfigurationRegistry
      • Remove GLSPClientProvider
      • GLSPDiagramWidget now directly injects Theia services -> use GLSPDiagramWidgetFactory to for construction
  • [API] Rename ServerStatusAction -> StatusAction & ServerMessageAction->MessageAction #178

Changes

  • [navigation] Avoid changing the viewport twice when navigating to a diagram element. #102
  • [example] Improved and modernized styling of the GLSP workflow example #103
  • [diagram] Attached mouseLeave and mouseEnter listeners to the GLSPDiagramWidget. These listener add/remove corresponding css classes which can be used to apply custom styling dependent on the the relative mouse position. #113
  • [build] Updated Typescript to version 4.5.5 and enforced noImplicitOverride #110

Breaking Changes

  • [theia] Updated Theia dependencies to >=1.25.0. Due API breaks Theia version <1.25.0 are no longer supported. #105 #111 #116
  • [protocol] Adapt to renamed ModelSourceChangedAction and handler #117
  • Refactored JavaSocketServerContribution to be able to both launching of Java and node processes. #115
    • Renamed JavaSocketServeContribution -> GLSPSocketServerContribution
    • JavaSocketServerLaunchOptions
      • Renamed to GLSPSocketServerContributionOptions
      • Renamed jarPath property to executable

Changes

  • [backend] Added ability to launch embedded GLSP servers from GLSPBackendContribution #55
  • [feature] Replaced ExternalNavigateToTargetHandler and its implementation in Theia TheiaNavigateToTargetHandler with a generic action NavigateToExternalTargetAction #57
  • [diagram] Cleanup diagram widget initialization by removing no longer needed options #60
  • [diagram] Fixed a bug that prevented activation of the diagram widget on model source changes #61
  • [diagram] Fixed a bug that kept the hover feedback visible after the diagram widget becomes inactive #64
  • [di] Made rebind of CommandPalette to TheiaCommandPalette optional to ensure compatibility with DI configurations where no CommandPalette is bound #65
  • [build] Dropped the dependency to the deprecated @theia/languages package. #66
  • [protocol] Adapted SetDirtyStateAction to provide an optional reason property indicating the cause for the dirty state change #67
  • [feature] Introduced GLSPSelectionDataService which can be used to forward additional information on top of the selection to the Theia selection service. #69
  • [diagram] Fixed a bug that displayed the diagram widget as inactive when initially opened. #75
  • [all] Refactored the theia-integration code base to remove boilerplate configuration code. #84
  • [protocol] Adapt frontend components to conform to the latest protocol changes. #86
  • Upgrade to Theia 1.17.2 and ES2017 #90

Breaking Changes

  • [backend] Renamed GLSPServerContribution.start() to GLSPServerContribution.connect() #35

  • [feature] Replaced ExternalNavigateToTargetHandler and its implementation in Theia TheiaNavigateToTargetHandler with a generic action NavigateToExternalTargetAction #153 and an action handler TheiaNavigateToExternalTargetHandler in Theia #153

  • [build] Dropped the dependency to the deprecated @theia/languages package. This enables compatibility with new Theia versions (>1.4.0). As a consequence the new minium requirement for sprotty-theia is > 0.9.0 #189

  • [all] Refactored the theia-integration code base to remove boilerplate configuration code. This effects the many components of the base API. More details can be found in the corresponding PR. #258

  • [protocol] Adapt frontend components to conform to the latest protocol changes. This affects some action definitions. #315

  • Upgrade to Theia 1.17.2 and ES2017. Downstream projects need to upgrade to ES2017 as well #90

This is the first release of Eclipse GLSP since it is hosted at the Eclipse Foundation. The 0.8.0 release includes new protocol message types and respective framework support for several new features, such as copy-paste, diagram navigation, etc. It also contains several clean-ups of the protocol and refactorings to simplify and streamline the API. The Eclipse Theia integration of GLSP features many improvements, such as problem marker integration, native context menu items and keybindings. Finally, several bug fixes and minor are part of this release as well.