Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Languages Tools Factorization"

m (Goal: Typo)
(Existing common features: add implementations section)
Line 11: Line 11:
 
* http://dev.eclipse.org/mhonarc/lists/ide-dev/msg00023.html (2013)
 
* http://dev.eclipse.org/mhonarc/lists/ide-dev/msg00023.html (2013)
 
* https://bugs.eclipse.org/bugs/show_bug.cgi?id=415563 (2013)
 
* https://bugs.eclipse.org/bugs/show_bug.cgi?id=415563 (2013)
 +
 +
= Active Language Development Tools =
 +
 +
This is not meant to be an exhaustive list of all LDTs.  It is meant to identify which LDTs are under active development and can serve as examples of the kinds of languages and features we want to support:
 +
 +
* [http://eclipse.org/jdt JDT] (JVM)
 +
* [http://eclipse.org/jsdt JSDT]
 +
* [http://eclipse.org/ajdt AJDT] (JVM)
 +
* [http://eclipse.org/cdt CDT]
 +
* [http://eclipse.org/pdt PDT]
 +
* [http://groovy.codehaus.org/Eclipse+Plugin Groovy-Eclipse] (JVM)
 +
* [http://www.ceylon-lang.org/documentation/1.0/ide/ CeylonIDE] (JVM)
 +
* [http://scala-ide.org/ Scala-IDE] (JVM)
 +
* [https://code.google.com/p/counterclockwise/ Counterclockwise] (JVM)
 +
* [http://objectteams.org/distrib/otdt.html Object Teams] (JVM)
 +
  
 
= Existing common features =
 
= Existing common features =
Line 40: Line 56:
 
** ScalaIDE ''?''
 
** ScalaIDE ''?''
 
** CounteClockwise ''?''
 
** CounteClockwise ''?''
 +
 +
== Model ==
 +
 +
* '''Purpose''' Describe an abstract structure of a project so that individual elements can be identified, located, and manipulated
 +
* '''Known implementations'''
 +
** JDT ''relies on LTK?''
 +
** JSDT ''Copied from JDT?''
 +
** CDT ''?''
 +
** AJDT ''?''
 +
** PDT ''?''
 +
** CeylonIDE ''?''
 +
** ScalaIDE ''?''
 +
** CounteClockwise ''?''
 +
  
 
== ... ==
 
== ... ==

Revision as of 19:30, 27 August 2013

Goal

Eclipse is the host of various programming languages tools (JDT, CDT, JSDT/VJET, AJDT, PDT... at Eclipse.org; Ceylon-IDE, Groovy-Eclipse, Scala-IDE, Counterclockwise... outside of Eclipse.org). Most of these tools have been sharing the same features but not necessary the same code because of the lack of factorization on this topic.

The goal is to find out which pieces are implemented by most Language Development Tool, and to implement them in a generic/universal way as part of a LTK-like project or component (or LTK itself). Then, it would be easier to write Tools for new languages by re-using the available bundles, and more mature projects could move towards this new bundles in order to benefit from factorization.

Useful Links/Discussions

Active Language Development Tools

This is not meant to be an exhaustive list of all LDTs. It is meant to identify which LDTs are under active development and can serve as examples of the kinds of languages and features we want to support:


Existing common features

Indexing

  • Purpose Indexing the code structure to make it efficient to search for types/members...
  • Known implementations
    • JDT bundles, architecture?
    • JSDT Copied from JDT?
    • CDT ?
    • AJDT ?
    • PDT ?
    • CeylonIDE ?
    • ScalaIDE ?
    • CounteClockwise ?


Refactoring

  • Purpose Refactoring
  • Known implementations
    • JDT relies on LTK?
    • JSDT Copied from JDT?
    • CDT ?
    • AJDT ?
    • PDT ?
    • CeylonIDE ?
    • ScalaIDE ?
    • CounteClockwise ?

Model

  • Purpose Describe an abstract structure of a project so that individual elements can be identified, located, and manipulated
  • Known implementations
    • JDT relies on LTK?
    • JSDT Copied from JDT?
    • CDT ?
    • AJDT ?
    • PDT ?
    • CeylonIDE ?
    • ScalaIDE ?
    • CounteClockwise ?


...

  • Purpose ...
  • Known implementations
    • JDT relies on LTK?
    • JSDT Copied from JDT?
    • CDT ?
    • AJDT ?
    • PDT ?
    • CeylonIDE ?
    • ScalaIDE ?
    • CounteClockwise ?

Potential new features

Cross-languages search

  • Purpose Polyglot development is becoming mainstream, it would be interesting to develop the tools to handle it easily. For example, developing with Qt can mix JavaScript and C++

Back to the top