Providers: example of removing indirection between UI code and worker thread
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.