-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Support 'browser-only' Theia #12853
Support 'browser-only' Theia #12853
Conversation
19743d5
to
606f42a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This works really well. Good job 👍
I have a few remarks and questions on some of the changes here though.
packages/core/src/browser-only/i18n/i18n-frontend-only-module.ts
Outdated
Show resolved
Hide resolved
packages/workspace/src/browser-only/browser-only-workspace-server.ts
Outdated
Show resolved
Hide resolved
packages/workspace/src/browser-only/browser-only-workspace-server.ts
Outdated
Show resolved
Hide resolved
dev-packages/application-manager/src/application-package-manager.ts
Outdated
Show resolved
Hide resolved
We're currently working on updating the branch on the latest state of |
31e754f
to
c9dfb70
Compare
Hi @msujew, The license check complains about |
@sdirix I had to trigger the license harvesting manually on I'll take another look at this PR once I'm back from vacation (second week of January). |
@msujew could we maybe get this in for January? |
The landscape of theia plugin types and deployment modes is feeling somewhat complex from a relative outsider looking in:
It would be great if this PR also added some statement around how this interacts with existing plugin/extension types and what limitations exist. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great, looks good to me.
@paulalexwilson I don't think that the documentation change makes sense in the scope of this PR. Feel free to create a separate issue though, and someone might pick it up. Note that in general, the browser-only Theia version is supposed to eventually support all features of Theia that are possible without a dedicated backend (which is basically everything except for running a terminal). See #12852 for open tasks and further discussion. |
Adds tooling, adapts the current code base and provides an example application for the new 'browser-only' Theia application target. This target generates a Theia frontend application which can run without a backend, transforming the Theia application to a static site. Adapts tooling to: - support new 'browser-only' application target - support new 'frontendOnly' and 'frontendOnlyPreload' module declarations - use http-server when starting 'browser-only' applications Replaces backend services with browser-only variants - implementation of BrowserFS-based filesystem - implementation of 'ServiceConnectionProvider' which timeouts for all requests, enabling loading all Theia packages Adds a browser-only example application and api-samples showcasing the customization of the new BrowserFS-based filesystem. Co-authored-by: Alexandra Buzila <[email protected]> Co-authored-by: Stefan Dirix <[email protected]> Co-authored-by: Tobias Ortmayr <[email protected]> Co-authored-by: Eugen Neufeld <[email protected]>
c9dfb70
to
2cf4f00
Compare
I rebased on latest |
@sdirix Thanks for the valuable contribution 👍 I just tested the feature from 56cf3db but I see no syntax highlighting for Probably the default language setup should work well (even without extensions). The file icon type is fetched properly and indicated at the explorer tab but the Monaco editor seems doesn't highlight syntax yet. The same issue is present on the demo app https://minimal--browseronly-theia.netlify.app/# P.S. If there is a need to attach dedicated issue (supported by reproduction steps), please let me know. I guess the issue is that syntax highlighting for the most common languages should work "from a box" (see the next screenshot). |
@erlmachinedev Given that all syntax highlighting is currently exclusively contributed by vscode extensions, this is expected behavior. This will work as usual once extension support will be added. I think we won't support dedicated syntax highlighting for the browser-only mode, as it's just as much work as adding real support for vscode extensions. |
Hi @erlmachinedev, |
Adds tooling, adapts the current code base and provides an example application for the new 'browser-only' Theia application target. This target generates a Theia frontend application which can run without a backend, transforming the Theia application to a static site.
Implements #12852
What it does
Adapts tooling to:
Replaces backend services with browser-only variants
Adds a browser-only example application and api-samples showcasing the customization of the new BrowserFS-based filesystem.
How to test
Build and run the 'browser-only' Theia example.
You can also find a hosted variant here.
Note that you can build the 'browser-only' Theia even without building the Node native parts via:
Review checklist
Reminder for reviewers