scripted - embracing eclipse orion
DESCRIPTION
The Eclipse Orion project provides a platform for building browser-based development tooling. In this talk we will show how we re-used parts of Orion to build the Scripted code editor, an editor-centric and browser-based tool for JavaScript and web developers. We'll talk about the design decisions that led to creation of a new serverside architecture using Node.js and the challenges in getting the Orion code editor to work with it. We'll also look at how we build and maintain modules usable in Scripted and in Orion.TRANSCRIPT
![Page 2: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/2.jpg)
2
about me
Mar4n LippertStaff Engineer, R&D, at SpringSource/VMware and lead of Spring Tool Suite development
Working areas•Eclipse Tooling for the Spring plaAorm•Open Source CommiDer•Aspect-‐Weaving for OSGi•Cloud IDEs and JavaScript•Agile soKware development
![Page 3: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/3.jpg)
implementing developer toolingfor a long time now
(AJDT, Groovy-Eclipse, Grails IDE, Spring IDE, Cloud Foundry Integration for Eclipse, tc Server Integration for Eclipse, Gradle Integration for Eclipse, add-ons
for m2e, Equinox Weaving)
![Page 4: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/4.jpg)
But how will developer tooling look like in the future?
Or„why is Google able to search the whole web in
10ms and my Eclipse needs 100x longer to open a type hierarchy“
![Page 5: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/5.jpg)
what happensif you do things differently?
lightweight instead of heavyweightreusing existing tools
connecting instead of integratingbrowser basedcloud hosted
...
![Page 6: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/6.jpg)
Eclipse Orion„Open Source Platform for Cloud Based Development“
similar directionawesome platform
very modular and re-useable
![Page 7: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/7.jpg)
Eclipse Orionprovides a platform for:
navigating files and other contentclone from and push to git repositories
code (editing files)directly testing (hosting) our app
+plug-in mechanism
![Page 8: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/8.jpg)
![Page 9: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/9.jpg)
![Page 10: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/10.jpg)
orionhub.orgplayground hosted by Eclipse
![Page 11: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/11.jpg)
Clientpurely JavaScript
runs in the browserplug-ins hosted in non-visible iframes
ServerJava (OSGi application)
relatively stupid (no real logic here)new: node.js-based JavaScript implementation
![Page 12: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/12.jpg)
Introducing
Scripted
a lightweight JavaScript editorthat runs in your browser
![Page 13: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/13.jpg)
Choices and decisions
focus on editorlightweight, fast
keystroke driven
running locally
advanced code comprehensionusing inferencing engine
module-aware content-assist
![Page 14: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/14.jpg)
Eclipse Orion(all JavaScript client)
Choices and decisions
Editor Component
JSLint
navigator
Git integration
site hosting
sign-on
Eclipse Orion(hosted or local)
serve JS/HTMS/CSS/files search
OSGi (Java)
Git integration sign-on
content assist
folding
![Page 15: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/15.jpg)
Eclipse Orion(all JavaScript client)
Choices and decisions
Editor Component
JSLint
navigator
Git integration
site hosting
content assist
sign-on
folding
![Page 16: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/16.jpg)
Choices and decisions
Editor Component
JSLint
Git integration
site hosting
content assist
sign-on
folding
![Page 17: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/17.jpg)
Choices and decisions
Editor Component
JSLintsite hosting
content assist
sign-on
folding
![Page 18: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/18.jpg)
Choices and decisions
Editor Component
JSLint
content assist
sign-on
folding
![Page 19: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/19.jpg)
Choices and decisions
Editor Component folding
JSLint
content assist
![Page 20: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/20.jpg)
Choices and decisions
Editor Component
JSLint
content assist
![Page 21: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/21.jpg)
Scripted Client(all JavaScript client)
Choices and decisions
Editor Component
JSLint
cross fileanalysis
content assist
![Page 22: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/22.jpg)
Scripted Client(all JavaScript client)
Choices and decisions
Editor Component
JSLint
AMD support
cross fileanalysis
content assist
![Page 23: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/23.jpg)
Scripted Client(all JavaScript client)
Choices and decisions
Editor Component
JSLint
AMD supportCommonJS support
cross fileanalysis
content assist
![Page 24: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/24.jpg)
Scripted Client(all JavaScript client)
Choices and decisions
Editor Component
JSLint
AMD supportCommonJS support
simple navigator
cross fileanalysis
content assist
![Page 25: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/25.jpg)
Scripted Client(all JavaScript client)
Choices and decisions
Editor Component
content assist
JSLint
AMD supportCommonJS support
simple navigator
inplace outline cross fileanalysis
![Page 26: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/26.jpg)
Scripted Client(all JavaScript client)
Choices and decisions
Editor Component
JSLint
AMD supportCommonJS support
simple navigator
inplace outline
single page layout
cross fileanalysis
content assist
![Page 27: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/27.jpg)
Choices and decisions
Eclipse Orion(hosted or local)
serve JS/HTMS/CSS/files Search
OSGi (Java)
Git Integration Sign-On
![Page 28: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/28.jpg)
Scripted Server(local, all JavaScript)
Choices and decisions
serve JS/HTMS/CSS/files search
![Page 29: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/29.jpg)
Scripted Server(local, all JavaScript)
Choices and decisions
serve JS/HTMS/CSS/files search
node.js
![Page 30: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/30.jpg)
Scripted Server(local, all JavaScript)
Choices and decisions
serve JS/HTMS/CSS/files search
node.js
cross file analysis
![Page 31: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/31.jpg)
Scripted Client(all JavaScript client)
Scripted overview
Editor Component
JSLint
AMD supportCommonJS support
simple navigator
inplace outline
single page layout
cross fileanalysis
content assist
Scripted Server(local, all JavaScript)
serve JS/HTMS/CSS/files search
node.js
cross file analysis
![Page 32: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/32.jpg)
Demo time...
![Page 33: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/33.jpg)
SummaryEclipse Orion is an awesome
platform for building browser-based tooling
![Page 34: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/34.jpg)
What is next?continuously contribute back to Orion
add more innovative featurescontinue to think beyond the borders
![Page 35: Scripted - Embracing Eclipse Orion](https://reader034.vdocuments.mx/reader034/viewer/2022042614/554f6de1b4c905bb178b4fae/html5/thumbnails/35.jpg)
ResourcesScripted project
https://github.com/scripted-editor/scripted
Forumhttps://groups.google.com/forum/#!forum/scripted-dev
Issue Trackerhttps://issuetracker.springsource.com/browse/scripted
Sample project used herehttps://github.com/aeisenberg/scripted-demo-s2gx2012