Groovy-Eclipse at Eclipsecon2010
Upcoming SlideShare
Loading in...5
×
 

Groovy-Eclipse at Eclipsecon2010

on

  • 1,564 views

With the release of Groovy-Eclipse 2.0.1, we have produced compelling dynamic language support for Groovy in Eclipse. This tool support includes tight integration with JDT, type inferencing ...

With the release of Groovy-Eclipse 2.0.1, we have produced compelling dynamic language support for Groovy in Eclipse. This tool support includes tight integration with JDT, type inferencing throughout, and extensibility for custom DSLs such as Grails.

In this talk, we will explore the power of Groovy-Eclipse in helping to create Groovy and mixed Groovy-Java projects in Eclipse. Through the use of a few simple examples. We will then discuss the internals, including JDT integration, refactoring support, and the inferencing engine. The last part of the talk will show a simple example of extensibility for custom Groovy DSLs.

This talk describes the tooling side of Groovy-Eclipse, please see our related talk "Extending the Eclipse Java Compiler to integrate support for other languages: lessons learned from Groovy Eclipse" that details our extensions to the JDT compiler for multi-language support.

Statistics

Views

Total Views
1,564
Views on SlideShare
1,437
Embed Views
127

Actions

Likes
0
Downloads
36
Comments
0

4 Embeds 127

http://www.eclipsecon.org 121
http://www.slideshare.net 3
http://eclipsecon.org 2
http://translate.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Groovy-Eclipse at Eclipsecon2010 Groovy-Eclipse at Eclipsecon2010 Presentation Transcript

    • Getting Groovy with Eclipse: Next generation tool support for dynamic languages Andrew Eisenberg SpringSource a division of VMWare
    • What is Groovy-Eclipse?
      • Eclipse tool support for the Groovy programming language
      • Recent release of Groovy-Eclipse 2.0.1
      • Two Goals:
        • Deep integration with Java Development Tools (JDT)
        • Editing support for Groovy's dynamicism
    • What is Groovy?
      • This is Java: public class Main { public static void main(String[] args) { System.out.println( “Hello, EclipseCon.” ); } }
    • What is Groovy?
      • This is Groovy: public class Main { public static void main(String[] args) { System.out.println( “Hello, EclipseCon.” ); } }
    • What is Groovy?
      • This is really Groovy: print “Hello, EclipseCon.”
      • Groovy is a dynamically typed JVM language
      • Builds upon the strengths of Java
        • syntax, libraries, runtime, ...
      • Supports extra features
        • scripting, meta-programming, DSLs, …
      • Deep integration with JDT
      • Editing support for Groovy's dynamicism
      Groovy-Eclipse
        • JDT compiler integration (Demo 1)
        • Debug support (Demo 2)
        • Groovy type inferencing (Demo 3)
    • What is deep integration with JDT?
      • Optimize Edit / Save / Compile / Test
        • Same level of quality: Java <-> Groovy
      • Similar feature set where makes sense
      • Seamless Cross-referencing
    • How to achieve Deep integration
      • Extended JDT compiler
        • Compiles both Java and Groovy
        • No need for stub generation
      • Compiler output not just class files
        • Abstract Syntax Tree (AST)
        • Java model
    • Demo 1
      • JDT – Groovy Compiler integration
    • Debug support
      • Much like as in Java:
        • launching applications, tests
        • breakpoints
        • stepping
        • variables view
        • hot swap (new!)
        • display view (work in progress)
      • But, also:
        • launching scripts
        • closure support
        • filter uninteresting stack frames
    • Demo 2
      • Debugging – integration with JDT
      • Inferencing engine
      • guess type information statically
      • def x
      • x = (-1).abs()
      • x = “foo”
      • x.abs()
      IDE support for Groovy's dynamicism x instanceof String x instanceof Integer MissingPropertyException!!!
    • Inferencing Engine is extensible
      • Custom DSLs can plug in (e.g., Grails)
      • Used for many parts of the UI:
        • Content Assist
        • Navigation
        • Search
        • Underlining unknown references
    • Demo 3
      • Type inferencing provides IDE support for groovy dynamicism
    • Groovy-Eclipse
      • Deep integration with JDT
        • Editor
        • Compiler
        • Debugger
      • Support for Groovy's dynamicism
        • Type inferencing
    • Eclipse is now Groovy!
      • Groovy-Eclipse:
      • http://groovy.codehaus.org/Eclipse+Plugin
      • Andrew Eisenberg
      • [email_address]
      • Thank you!
    • JDT Compiler integration .groovy/.java sources Generate .class files or Java model Generate .class files or Java model Generate Select parser Eclipse parser .java files Groovy parser .groovy files Parse Write .class files or cache Java model Resolve references across all files Resolve For IDE operations (Search, content assist...)