-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Plugin exports access from frontend #15186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Signed-off-by: Jonah Iden <[email protected]>
Signed-off-by: Jonah Iden <[email protected]>
@jonah-iden this is an architectural change that would ample justification. What problem is this solving? If it's a new feature, can we have a feature request, please? |
@tsmaeder this would greatly improve the ability for adoptors to use theia- and vscode-extensions together. Previously a theia extension was bound to only be able to use functionality from vscode extensions through published commands. But alot of extensions have alot more functionality which in vscode is no problem, since that can only be extended by other vscode extensions. But for theia we have theia extensions where the only way to access this api is to create another vscode extension which publishes commands which would then call the api of the other extension. This increases project complexity by alot. Also could you maybe explain how this is a large architectural change? I just see this as a little optional service which does not disrupt anything? I guess there could be a little security concern. But that could maybe be mitigated by adding a whitelist that an ad |
Just off the top of my head: VS Code is capable of unloading plugins because they can track any references to stuff in plugins. If any random Theia extension can reference stuff in plugins, we can't ever implement that. Right now plugins are isolated and the connections to stuff in plugins is under control of the framework. |
@tsmaeder Ah ok i didn't know about the unloading. Thank you for explaining. |
What it does
This adds a new service to the frontend which would allow theia extensions to access the exportet api of vscode extensions (or theia plugins) from the frontend.
Frontend because there we have a directly associated plugin host to the current session. If i remember correctly the theia backend is kind of stateless so a user would first have to select a plugin host and that would probably get alot more complicated
There are still some limitations.
How to test
I adde a test command (
Plugin API Access Test
) which i will remove again before this is merged.This logs some test calls to the python vscode extension api to the console
Maybe i should rather create a test though.
Follow-ups
Breaking changes
Attribution
Review checklist
Reminder for reviewers