Eclipsetheia
Total Page:16
File Type:pdf, Size:1020Kb
Streamlining Contributions With EclipseTheia [email protected] EclipseCon Germany 2018 EclipseTheia Talk ● Developing today ● Cloud Development – Eclipse Theia ● Theia Development ● Deployement – Workspace managers 2/40 EclipseTheia Developing Today 3/40 EclipseTheia Developing Today ● Checkout the project ● Install the tools / Configure the tools ● Install dependencies ● Start contributing ● Rinse and repeat (⨉ projects ⨉ machines/users) 4/40 EclipseTheia Developing Today - More ● Use the correct Operating System ● Dependency collisions between projects? ● Not your habitual workstation? Have fun recreating something of an environment. 5/40 EclipseTheia What we would like to do ● Checkout the project ● Start contributing 6/40 EclipseTheia What we would like to do ● Removing contribution overhead ● It is about changing habits and the ways of working – Develop anywhere – No compromises 7/40 EclipseTheia Cloud Development 8/40 EclipseTheia Not a new concept ● vi over ssh (remote development) ● Cloud9 (proprietary) ● GitLab IDE (minimalist) ● JDT/CDT over remote desktop (lag) ● ... 9/40 EclipseTheia Theia 10/40 EclipseTheia Theia Framework ● Written in TypeScript ● Runs in the browser ● Server-side – Node.js ● Runs on your desktop – Electron 11/40 EclipseTheia Theia Features ● Code navigation – Code completion, go to definition, ... – LSP based ● Debugging – Breakpoints, step over/in/out – DAP based 12/40 EclipseTheia LSP/DAP? ● Language Server Protocol – Deep language understanding factorization ● Debug Adapter Protocol – Generic protocol to drive a debug session 13/40 EclipseTheia Theia Features ● Git support ● Terminal ● Tasks ● ... 16/40 EclipseTheia Theia Framework ● Extensibility – Extensions – Plugins 17/40 EclipseTheia Theia Application ● Composition of extensions – $ npm install <theia-extension> ● Two targets – “browser” (browser + Node.js server application) – “electron” (desktop application) 18/40 EclipseTheia Theia Development 19/40 EclipseTheia Theia Development ● Extensions (application build time) – Total control, rebinding of components, ... ● Plugins (runtime) – More rigid API via specific contribution points 20/40 EclipseTheia Theia Extensions ● Published as npm packages – $ npm search @theia/* ● Dependency injection – Add/Override any Theia component – InversifyJs 21/40 23 EclipseTheia Theia Extensions ● Various contribution points for extenders – Menus/Commands/Openers – Views/Widgets – Language Clients – TextMate Grammars – And more... ● Everything in the framework can be made as an extension 24/40 EclipseTheia Theia Plugins ● Self-contained (no dependency resolution) ● Runtime isolation ● Simple API 25/40 EclipseTheia Theia Plugins ● API can be extended by Extensions ● VS Code extensions compatibility underway 26/40 EclipseTheia Deployment 27/40 EclipseTheia Cloud? ● Cloud development requires infrastructure – Networked machines – Administration (docker/kubernetes, ...) – Teams to operate 28/40 EclipseTheia Docker ● Basic docker images available – github.com/theia-ide/theia-apps 29/40 EclipseTheia Gitpod ● TypeFox cloud development platform ● Checkout PR branch and review it ● Theia-based gitpod.io 30/40 EclipseTheia Eclipse Che ● RedHat cloud workspace manager ● Heavy-duty ● Theia-able www.eclipse.org/che 31/40 EclipseTheia Personal Use ● Remote – Workspace manager – Vanilla Theia application instance ● Local – Electron application 32/40 EclipseTheia Conclusion 33/40 EclipseTheia What does Theia change? ● Allows anyone to have its own IDE accessible from a browser ● Workspace managers can expose the IDE to work in the space 34/40 EclipseTheia Contributing now ● Contribute from (almost) anywhere ● Avoid setup overhead ● Focus on task at hand 35/40 EclipseTheia 36/40 EclipseTheia Contacts ● Presenter – Paul Maréchal: [email protected] ● Social – gitter.im/theia-ide/theia – github.com/theia-ide/theia/issues 37/40 EclipseTheia References ● github.com/theia-ide/theia ● eclipse.org/che ● gitpod.io 38/40 EclipseTheia Cue and Hay (Q&A) 39/40 .