Scripted - Embracing Eclipse Orion

Post on 10-May-2015

5.569 views 2 download

Tags:

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 of Scripted - Embracing Eclipse Orion

SCRIPTED  -­‐  EMBRACINGECLIPSE  ORION

Mar$n  Lippert

mlippert@vmware.com@mar$nlippert

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

Martin LippertStaff Engineer - VMwaremlippert@vmware.com

@martinlippert

Q&Aand thank you for your attention