Skip to content

Providers: example of removing indirection between UI code and worker thread

Administrator requested to merge lg/providers-expose-worker into master

Created by: lguychard

This is an example of removing indirection between the UI code and the worker thread, and directly calling into proxied getHover(), getReferences(), getDefinition() from the UI thread, rather than calling into services.textDocumentDefinition.getLocations(), services.textDocumentHover.getHover(), etc.

As we migrate providers to flatten the extension API implementation according to RFC155, it's probably the right timing to remove services. This will:

  • Greatly simplify the implementation
  • Guarantee that providers can only be invoked when the extension host worker has been created, because, to instantiate Controller, you will need to have instantiated the extension host

I didn't really attempt to make this compile / work, it's just for clarification / discussion purposes.

Merge request reports

Loading