Ideas

The Babel project provides a set of tools to make the job of globalizing Eclipse projects easier. We also have a translation server setup for people world wide, who are interested, to contribute translations in their language of choice. Babel is still in its initial stage. We need a lot of help providing functionality to the project. Enhancements may include: a voting mechanism for the translation server bug 209687, process Subversion hosted map files bug 217196, switching among translated/untranslated/all strings bug 217228, allow bookmarking file/string/translation bug 221420, interface to mark a string non-translatable bug 221970, API for translation server bug 223036, provide pseudo translation language packs bug 217339, integrate spell checking into translation server bug 221282, provide a dictionary of translations bug 217260.

The idea is to produce a pattern language, rules engine, and user interface to allow the Java developer to perform queries n and make safe modifications of their code code. It's a superset of the current refactoring because ideally current refactorings could be expressed this new system, forming a nice set of initial examples. he users could then adapt those rules to their own purposes or come up with completely new ones. See bug 144642 for more informations.

Running a specific set of JUnit sets in the background while editing Java source code would help to detect defects early. The concept is to provide unobstrusive early detection and reporting of changes to source code that negatively affect its agreed upon functionality. Detecting failing tests would mark the changed source code with annotations to see which changes affected the green bar. There are already some (forgotten) bugs: bug 12167 and bug 51292.

The JDT debugger provides debugging services and works with any JDPA-compliant JVM. The debugger has greatly matured over the years. Debugging facilities in general have not advanced much, however. Many in the research community would like to extend the capabilities of the JDT debugger without losing (or re-writing) existing functionality. Doing so often requires customizing how the JDT debugger makes use of the Java Debug Interface (JDI). This project would open up the JDI portion of the debugger in such a way that extensibility can be accomplished in a safe manner.

This project will leverage and extend the existing STP Intermediate Model (STP-IM) in order to provide better support for transformations between process editors (BPMN and BPEL) and architecture editors (SCA in particular, potentially EID as well). The contribution would be of great importance to SOA developers and would therefore be an important incentive for the community adoption of the Eclipse STP.

Eclipse User Assistance allows for help content to be dynamically produced. Traditionally, all Eclipse content came in the form of hand-written HTML files. This is so 90's, we should have help content producers to produce help content from DITA or DocBook files.

Eclipse uses Bugzilla in many interesting ways. It uses it in the normal fashion for bug tracking. It also uses a modified version for IP tracking (IPZilla). This proposal is to create a GraphicsZilla to help streamline icon and graphics creation in Eclipse. This would allow not only programmers to contribute their talents to Eclipse. This would also make the process of where icons come from more transparent. See this blog post and bug for more info. Note, this would also provide a viewable repository of all the graphics used in Eclipse... which is currently lacking now.

Eclipse runs pretty much everywhere these days... in cell phones... devices... desktops... servers... how about a web browser? This proposal is being left open-ended for a purpose. I'd like to see a student figure out how to get Eclipse plug-ins (bundles) installed into a browser like Firefox and then somehow expose working with them via some API... maybe XPCOM or Javascript. That's all ;p

There are some crazy people out there developing Eclipse plug-ins using languages other than Java (how dare they ;p!). Scala is one of these popular languages and there already has been some Eclipse integration to make this happen. However, PDE suffers from limitations that strictly binds itself to Java... the goal of this project would be to analyze these PDE limitations... and come up with patches or prototyped code to let PDE play better with Scala and other languages.

PDE allows you to create plug-ins using Java these days. This request is simply for a student to explore the realm of creating plug-ins using JavaScript or other languages. To start simple, I'd start with adding a new schema attribute of type "javascript" to allow plug-in authors to at least plug different languages in. From there, we can explore ideas on "how would you define a view" in such a way that you could take javascript or java code?

Equinox has a new component called transforms that allows you to transform various aspects of a plug-in during runtime. For example, a common use case is to write a transform that modifies some plugin.xml entries to not display certain menu items. This project aims to provide tooling for the transforms component so plugin authors can easily author transforms.

Xpand is a template language which allows users to comment their templates with a JavaDoc-like syntax. So far, there is no tooling that can use this documentation. The goals of the project are to (1) create an engine that can parse Xpand template comments, (2) create a commandline tool that can generate a JavaDoc-like HTML output for all template comments in a project, and (3) enhance the Xpand text editor to show template comments in a tooltip when hovering over the respective template invocation.

The TCP/IP Monitor plugin available with the Eclipse WTP could use some improvement in several areas. A few suggestions are XML prettyfying, switchable layouts, persistable message logs, tabs for concurrent listeners, proxy mode, HTTP proxy support, simulation of slow connections, documentation and overall UI and usability improvement. IMHO, such additions, alongwith other requirements expressed by developers for this plugin, would make it more popular among the Eclipse Web developer community.

Suran Jayathilaka

Suran Jayathilaka, University Of Colombo School Of Computing - Sri lanka

JUnit is well integrated at the moment used to test java code. As there are many other projects which need to implement other testing tools, we should be a generalized form of the Junit framework as provide some extension points to build the implementations of other XUnit frameworks on top of it. See bug 180884 for more informations.

Web-CAT is a plug-in-based web application that supports electronic submission and automated grading of programming assignments that is presently used by over 30 universities and colleges in the United States and elsewhere. The Web-CAT Grader supports traditional models of automated program grading, and also supports grading of assignments where students do their own testing. Web-CAT is already supported by an Eclipse plugin that allows students to view graders' comments on their assignments directly within the IDE. The aim of this project is to provide support for the graders as well, i.e., to allow professors, teaching assistants, and students to mark up code with comments, assign grades (both freeform and from rubrics), and so on. This will not only make grading easier, but will also help turn Eclipse into a student-friendly code review tool, which we hope will encourage wider use of code reviews in teaching.

"Feature diagrams" are a graphical notation for describing the relationships between class elements that first appeared in Michael Feathers' book "Working Effectively with Legacy Code". A prototype plugin for Eclipse that automatically produces feature diagrams, and allows users to modify their layout, now exists. The aim of this project is to connect that plugin to Eclipse's Java refactorings to allow drag-and-drop manipulation of the visual representations of fields and methods.

Provide basic support for XQuery syntax editing. Including coloring, validation, content assistance, possibly provide extensions for allowing the selection of which xquery editors can be used for validation. Preference pages for controling XQuery specificat options for generating output. Possible future ability to include debugging support.

More and more applications are eclipse RCP based applications. This is great but each application launch a JVM and load in memory quite often the same plug-ins. Like xul runner for mozilla, it would be interesting to have an "Eclipse runner". Issues to work on are how to manage several platforms (3.1, 3.2, 3.3, etc..) and share plug-ins (in memory). update : the problem seems to be adressed with p2 provided in eclipse 3.4 M6

Starting a new project requires a lot of duplicative code & metadata: .doc plugins/features, .examples plugins/features, .test examples/features, .sdk feature, .releng project. Being able to generate this from JET templates via a wizard would make it much easier to get a project up and running -- and then get a PDE build that much easier, too.

An Abstract Syntax Tree is the base framework for many powerful tools of a language IDE. For Hibachi, the Ada Development Toolkit project (like JDT or CDT), the presence of an AST would allow many more powerful IDE features, and improve those already in place (like refactoring, code folding, reformating).

Implementation of new or extension of existing Hibachi funtionality. Depending on student interest and background, features may include but are not limited to code folding, Ada body generation, object tooltips display, dependency graphs and trees, code fixing, etc.

Jeffrey Czyz, University at Buffalo. Çağatay Çallı, Middle East Technical University - Turkey. Suran Jayathilaka, University Of Colombo School Of Computing - Sri lanka

Eclipse-Moodle integration

The idea of this project is to provide an Eclipse plugin for the Moodle CMS e-learning system. This tool will enable students participating in online courses to import and export resources (projects or other materials) directly from an Eclipse workspace. Integration with Mylyn (for managing tasks assigned in such courses) could be an additional feature.

The availability of use case documents that are structured in nature opens up vast horizons of possibilities for automation of time consuming tasks. One of these is the generation of test scenarios and test cases for functional testing directly from the use case flows descriptions. This is a fantastic idea not only for its potential in the time it would save, but also (and especially) because the generated tests would be guaranteed to represent the functional requirements expressed in the use case. This project is a concrete exploration of this fascinating idea. You will take our current ideas on the subject and will find interesting ways to create test scenario matrices and, from these, individual test cases, with their associated data, conditions and verification points. The technologies that will be brought to bear include XML Schema, UML, BIRT, Eclipse SWT and JFace.

We are personally using ORMF and Useme in our daily work and are drawing great pleasure from it, because it increases our productivity and it ensures that our use case model is valid and correct. However, whenever we want to see the big picture, either to get an overview of the requirements space or for management purposes, we find ourselves having to build by hand various types of control artifacts, such as use case lists, use case traceability matrices and dependency trees. Once created, these artifacts have to then be maintained up to date as the use case model evolves and changes. This task is tedious and time consuming at best and quite error prone at worst.This project is about the automatic and dynamic generation of such control artifacts from the use case model. You will extract the relevant information from the model stored in the database, create the appropriate reports and visualize them within Eclipse views. The lists and tables presented in these views will be customizable through sorting and filtering, to enable the user to extract all the information she requires at any given point in time. BIRT will be the tool of choice for this work.

ORMF provides structured use case definitions (documents) that are validated against an XML schema. One of the most desirable new features is to be able to dynamically generate UML Activity diagrams from the use case flows. The technologies that will be brought to bear include XML Schema, UML, Eclipse GMF and Eclipse EMF

There are number of "helper" document types that are core to the ORMF vision. I use the word "helper" because these types tend to be referred to by all other document types. The document types of interest are Glossary, Issues, NFR, Risks, and Assumptions. The students project would encompass creating the XML schema and structured editors for these types. The skills used would be XML Schema, Eclipse SWT and JFace, Eclipse GMF and Eclipse EMF.

In its first release, p2 limited its expression of dependencies to something equivalent to what most other package management system proposed (A package can say that it requires or conflicts with others). However several provisioning scenarios could benefit from more powerful inter-package dependencies (e.g, when mylyn and SVN are installed, install the connector). The goal of this project is to advance p2 by providing more powerful inter-package dependencies (and their mapping to the PB solver). Directions are: * more complex implications, * mapping filters into the solver, * expressing generic capabilities / dependencies (e.g. putting requirements on memory size, hard drive size, etc), * representing affinities between packages (see the OSGi notion of uses clauses) , * finding a way to automatically pick the most applicable line-up / recommendations

This project aims to create a module for additional Omondo, allowing transformations from computation independent model (CIM) represented by activity diagram,to a platform independent model (PIM) represented by class diagram and use cases, based in model driven architecture (MDA) and UML. The project (paper) was submitted to eclipsecon 2008.

Eclipse Monkey scripts must currently reside under the Scripts menu, which doesn't integrate them well with existing functionality. When customizing a perspective, make it possible to add Monkey scripts to any menu (on the menu bar) that the user decides, both using specifiers in the script and through the UI.

Variables view of CDT debugger currently displays object variables as trees with each data member represented by a separate node. Some types, like std::string, have a complex internal structure, but a simple meaning. Having to open multiple levels of node hierarchy to see the contents of a string is very annoying. In most cases user does not care about all details of the string object and just wants to see the contents of the string. This problem can be solved by supporting user-defined auto expansion rules defining display formats for commonly used types. See bug 155331 for more information.

The CDT provides a front end to many debuggers in order to unify the debug UI around the Debug Platform augmented by a number of C/C++ specific debug views. We currently support the GNU debugger on Windows in parallel with build support for the GCC tool chain. We'd also like to support integration with the Windows SDK. We have Visual C++ build support. This project would be to add in Windows Debugger support.

Implement a EPL'd version of the Yahoo messaging protocol and than code an ECF provider implementation for that. The baseline goal of this project is to just implement messanging for Yahoo... things like file transfer can come later or if there's time.

ECF allows messaging protocols to be plugged in as providers. AIM isn't currently supported. The student can choose to implement the AIM (OSCAR) protocol themselves, or wrap an existing Java library like JOscar.

Developers work in project teams, and team members need to communicate. An IM program integrated into Eclipse itself will be useful for this, that's optimized to transfer large amounts of code which usual IM programs limit and also allows developers to be grouped accordingly.

I think it's worth to take a look at the ECF project. Most of the features are already available there. This project might be re-targeted to provide for better UI integration of/exemplary apps for existing ECF functionality.

Take the R-OSGi Deployment Tool idea (paper) and the prototype and port it to a new platform (PDE projects, ECF remote services, p2 for deployment) so that it can be easily used within Eclipse to deploy a distributed OSGi application.

Virtual Network Console is a popular screen sharing technology. It would be useful to have an implementation of VNC protocol for ECF. See mailing list entry by Marek Zawirski for a more detailed description of idea.

SIP is a popular signaling protocol, widely used for setting up VoIP calls with 2 or more participiants. This project aims to create working SIP/VoIP implementation, that will provide ECF Call API. Implementation should allow VoIP calls using SIP from Eclipse and will make Eclipse a more functional softphone with an another protocol supported (already working implementations are jingle and Skype).

Improvement of distributed development process is common goal of Mylyn and ECF projects. There have been some efforts of integrating these projects. However, there are still some fields where integration could be further extended. This especially covers contacting easily with other developers when doing issue-oriented development with Mylyn. Goal of this project is to extend integration between Mylyn and ECF to allow easy task-oriented communication or task exchange.

Juggling patches is the practice of every day work for all Eclipse developers. The goal of the project is to create a patch file editor with an outline view. The outline view would allow not only browsing the patch, but also navigating to included files, applying only selected hunks and so on.

The goal of the project is to add a dialog allowing the user to select resources to compare. At this momement the user need to select 2 or 3 files with ctrl-clicking. This is not always as easy and reliable as it seems. The dialog would allow browsing the workspace or file system to locate the resource for comparison. Drag'n'dropping would be also very useful.

Juggling patches is the practice of every day work for all Eclipse developers. There are certain use cases when the user would like to compare two patches against each other. The problem is that straight comparison (two patches alone) is not enough, what we need here is comparing diffs in context.

Generating a patch from any comparison is a very common request. It comes in many flavours: users would like to save a patch while comparing two files, two version in local history, current version and a one with a tag and so on. One thing they have in common is the ability to create a patch from actual comparison. It would be definietly a nice feature to have.

Use the EclipseMozilla browser component and find new ways to program rich client applications. Especially, combining Eclipse technology with HTML and Flash is of interest. You should mesh Eclipse technology with web technologies to create a new unique way for rich client programming. This is a very innovative task. For more info contact me.

Toolbars and Menus are so 20th century (extremely outdated) and un-user-friendly. Eclipse's menus are particularly overcrowded and hard to manage. This project would be a bold endeavour - a wild experiment in UI innovation. The idea is to replace the menu and toolbars with an Office 2007-ribbon-inspired structure. Here is a tentative design of the new UI. The structure consists of top-level tabs that correspond to Eclipse IDE perspectives. Under the current tab are groups of buttons with labels on the bottom (like Office 2007). The groups correspond to the current top-level menus. Labels display the full menu on click (unlike Office 2007). The buttons in each group represent a list of relevant actions determined based on some intelligent mix of most-frequently- and most-recently-used statistics. The structure has enough room for 3 rows of buttons in small format with small (16x16) icon and optional label to the right (like Office 2007). The most relevant buttons are displayed in large format when possible, filling all three rows, with a large icon and label below. The structure automatically expands and shrinks based on window size to take advantage of all available space on modern high-resolution/wide-screen displays (like Office 2007).

Nikolay Botev

There has been a good start on this here, and it might be EPL'd already.

Do you like difficult problems of solving resolver problems at runtime? If so... this project is for you. The new provisioning work at Eclipse (p2) is using a new SAT Solver (SAT4J) to do complex resolver computations. This project will explore using SAT4J as the replacement for the current Equinox runtime resolver.

One of the most asked features of RAP is the StyledText widget. Not only to show funny colored texts in your application but it's one of the most complex widgets to implement. But having at least some basic API working enabled RAP to port other parts of RCP to the web based on the new StyledText widget. More information about StyledText can be found here.

Theming allows RAP application developers to give their applications a custom style. Currently, a theme must be defined as a .properties file. As the theming capabilities improve, these files are getting more and more complex. A theme editor should provide an easy-to-use user interface for defining themes. It could be shipped as part of the RAP tooling. For more information on the RAP theming, see the online help.

At the moment RAP does not contain any public tool, which helps the developers to export their projects easier and faster. The goal is to write a plug-in which helps to export projects to a standalone application or a war file.

Ant buildfiles can become large and complex and would benefit from refactoring. Currently there is no support beyond renaming within a buildfile to allow the developer to efficiently refactor Ant buildfiles. The goals would be to implement an infrastructure to support refactorings in Ant buildfiles, participate in other components refactorings and provide a starter set of Ant buildfile refactorings. See bug 89938 for some initial buildfile refactoring ideas.

Remote System Explorer (RSE) provides transparent access to remote resources, including upload and download of files. Compare/merge of entire directory trees as well as minimal upload of trees thanks to Synchronization is currently a missing and often-asked-for feature. The goals would be integrating Platform/Team synchronization APIs on top of RSE file providers first, and then improving the algorithms for performing remote comparisons with minimal data transfer (by using timestamps, file sizes and MD5 hashes eventually). See bug 185925 for more details.

Type Filters such in the Preferences dialog or Plugin Registry view are pretty cool Eclipse features: while typing only the things are shown matched by the query. This works fine filtering trees, but not applicable for tables. In a table or a table tree you may apply your filter only on a specific column or combine some simple queries. Such a filter input field should be added on top of the All Markers or Problems view allowing queries like: (a) Description:token - in Description column: a word which starts with token (b) Java AND (Eclipse OR Equinox) - in any column: Java and Eclipse or Java and Equinox (c) *Dialog< - in any column: a word ends with Dialog. A content assist should support entering complex queries by providing all columns titles plus ":". This proposal may simplify the filter dialog of the Problems view sometime.

Subversive provides functionality to browse repository remotely through Repository View, inspect revisions through History View and make updates and commits through Synchronize View. It covers most use cases typical for development. But there is another pretty important use case – search. It will be very useful if Subversive allows searching specific revisions by the name of modified resource, commit message, etc. Ideally search component should support extended operations set, for example: search resource by name in old revisions, even it doesn’t exist in HEAD, etc.