36
SCRIPTED EMBRACING ECLIPSE ORION Mar$n Lippert [email protected] @mar$nlippert

Scripted - Embracing Eclipse Orion

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

Page 1: Scripted - Embracing Eclipse Orion

SCRIPTED  -­‐  EMBRACINGECLIPSE  ORION

Mar$n  Lippert

[email protected]@mar$nlippert

Page 2: Scripted - Embracing Eclipse Orion

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

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

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

what happensif you do things differently?

lightweight instead of heavyweightreusing existing tools

connecting instead of integratingbrowser basedcloud hosted

...

Page 6: Scripted - Embracing Eclipse Orion

Eclipse Orion„Open Source Platform for Cloud Based Development“

similar directionawesome platform

very modular and re-useable

Page 7: Scripted - Embracing Eclipse Orion

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
Page 9: Scripted - Embracing Eclipse Orion
Page 10: Scripted - Embracing Eclipse Orion

orionhub.orgplayground hosted by Eclipse

Page 11: Scripted - Embracing Eclipse Orion

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

Introducing

Scripted

a lightweight JavaScript editorthat runs in your browser

Page 13: Scripted - Embracing Eclipse Orion

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

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

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

Choices and decisions

Editor Component

JSLint

Git integration

site hosting

content assist

sign-on

folding

Page 17: Scripted - Embracing Eclipse Orion

Choices and decisions

Editor Component

JSLintsite hosting

content assist

sign-on

folding

Page 18: Scripted - Embracing Eclipse Orion

Choices and decisions

Editor Component

JSLint

content assist

sign-on

folding

Page 19: Scripted - Embracing Eclipse Orion

Choices and decisions

Editor Component folding

JSLint

content assist

Page 20: Scripted - Embracing Eclipse Orion

Choices and decisions

Editor Component

JSLint

content assist

Page 21: Scripted - Embracing Eclipse Orion

Scripted Client(all JavaScript client)

Choices and decisions

Editor Component

JSLint

cross fileanalysis

content assist

Page 22: Scripted - Embracing Eclipse Orion

Scripted Client(all JavaScript client)

Choices and decisions

Editor Component

JSLint

AMD support

cross fileanalysis

content assist

Page 23: Scripted - Embracing Eclipse Orion

Scripted Client(all JavaScript client)

Choices and decisions

Editor Component

JSLint

AMD supportCommonJS support

cross fileanalysis

content assist

Page 24: Scripted - Embracing Eclipse Orion

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

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

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

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

Scripted Server(local, all JavaScript)

Choices and decisions

serve JS/HTMS/CSS/files search

Page 29: Scripted - Embracing Eclipse Orion

Scripted Server(local, all JavaScript)

Choices and decisions

serve JS/HTMS/CSS/files search

node.js

Page 30: Scripted - Embracing Eclipse Orion

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

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

Demo time...

Page 33: Scripted - Embracing Eclipse Orion

SummaryEclipse Orion is an awesome

platform for building browser-based tooling

Page 34: Scripted - Embracing Eclipse Orion

What is next?continuously contribute back to Orion

add more innovative featurescontinue to think beyond the borders

Page 35: Scripted - Embracing Eclipse Orion

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

Page 36: Scripted - Embracing Eclipse Orion

Martin LippertStaff Engineer - [email protected]

@martinlippert

Q&Aand thank you for your attention