Upload
martinlippert
View
5.572
Download
2
Tags:
Embed Size (px)
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.
Citation preview
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
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)
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“
what happensif you do things differently?
lightweight instead of heavyweightreusing existing tools
connecting instead of integratingbrowser basedcloud hosted
...
Eclipse Orion„Open Source Platform for Cloud Based Development“
similar directionawesome platform
very modular and re-useable
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
orionhub.orgplayground hosted by Eclipse
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
Introducing
Scripted
a lightweight JavaScript editorthat runs in your browser
Choices and decisions
focus on editorlightweight, fast
keystroke driven
running locally
advanced code comprehensionusing inferencing engine
module-aware content-assist
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
Eclipse Orion(all JavaScript client)
Choices and decisions
Editor Component
JSLint
navigator
Git integration
site hosting
content assist
sign-on
folding
Choices and decisions
Editor Component
JSLint
Git integration
site hosting
content assist
sign-on
folding
Choices and decisions
Editor Component
JSLintsite hosting
content assist
sign-on
folding
Choices and decisions
Editor Component
JSLint
content assist
sign-on
folding
Choices and decisions
Editor Component folding
JSLint
content assist
Choices and decisions
Editor Component
JSLint
content assist
Scripted Client(all JavaScript client)
Choices and decisions
Editor Component
JSLint
cross fileanalysis
content assist
Scripted Client(all JavaScript client)
Choices and decisions
Editor Component
JSLint
AMD support
cross fileanalysis
content assist
Scripted Client(all JavaScript client)
Choices and decisions
Editor Component
JSLint
AMD supportCommonJS support
cross fileanalysis
content assist
Scripted Client(all JavaScript client)
Choices and decisions
Editor Component
JSLint
AMD supportCommonJS support
simple navigator
cross fileanalysis
content assist
Scripted Client(all JavaScript client)
Choices and decisions
Editor Component
content assist
JSLint
AMD supportCommonJS support
simple navigator
inplace outline cross fileanalysis
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
Choices and decisions
Eclipse Orion(hosted or local)
serve JS/HTMS/CSS/files Search
OSGi (Java)
Git Integration Sign-On
Scripted Server(local, all JavaScript)
Choices and decisions
serve JS/HTMS/CSS/files search
Scripted Server(local, all JavaScript)
Choices and decisions
serve JS/HTMS/CSS/files search
node.js
Scripted Server(local, all JavaScript)
Choices and decisions
serve JS/HTMS/CSS/files search
node.js
cross file analysis
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
Demo time...
SummaryEclipse Orion is an awesome
platform for building browser-based tooling
What is next?continuously contribute back to Orion
add more innovative featurescontinue to think beyond the borders
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