Overall 3.2 Plan |
The 3.2 plan below is a proto plan and input from
the community is very welcome |
|
Top Items
- Add support for Java SE 6 features [Java SE 6] [committed]
- Relax closed world assumption in
refactoring [Scaling-Up] [committed]
- [>3.2] Add
support for library projects (like binary projects in
PDE) [Scaling-Up] [committed]
- Continue to measure and improve the
performance of key
operations
- Participate in Platform's Logical
model integration effort
- Make JDT/UI *.java agnostic [89977]
- Continue to improve filtering/grouping functionality to
support workspace with lots of projects. [Scaling-Up]
|
|
Component Independent
- [>3.2] Add
support for library projects (like binary projects in
PDE) [Scaling-Up] [committed]
- Add a history to Organize Import, Code assist,
Quick Fix,
Quick Assist... In the case of an element ambiguity (for example
java.awt.List versus java.util.List versus org.eclipse.swt.widgets.List
when organizing imports) these operations should built a histroy of the
selected elements and use that history to sort the elements
accordingly. [Simple to Use]
- Java aware text input fields (camel case navigation,
closing bracket) [Simple to Use]
- Identify code that is better hosted in JDT/Core
[Built to
Last]
- Cleanup usages of deprecated code [Built to
Last]
|
|
Code manipulation
- Offer to filter for the new @category javadoc tag
- Code generation operations
for hash, equals
- Improve sort members action:
group of fields, disable
rearrange of enums, fields and static initializers to preserve semantic.
- [>3.2] Apply
coding conventions (like formatting, organize import,
nls, ...) on save, compile or commit. This requires support from
Platform/Team, Platform/Text and JDT/Core. [Large-scale]
|
|
Quick Fix & Quick Assists
- Additional quick fixes and quick assists
[committed]
- Investigate how to improve the scalability of
quick fix. We
have situations where the list of possible quick fixes is getting
really long [Simple to Use]
- Investigate in applying all quick fixes of a certain type
all together (fixing all exception problems) (needs support from
Platform/UI)
|
|
Source Actions
- Improve TODO comment generation for source actions.
Comments should only be generated if users have to look at the
generated code.
- Write more test cases for source actions.
|
|
Build path & New Wizard
- Provide action to link additional source on the source
folder build path tab (Benno/Martin)
- Support choosing a JDK on the new project wizard instead
of a compiler compliance level (Benno/Martin)
- Add "New Source Folder" action to Build Path sub menu
(Benno/Martin)
- Add "New Source Folder" action to the second page of the
New Project wizard (Benno/Martin)
|
|
Refactoring
- Relax closed world assumption in refactoring
[Scaling Up] [committed]
- Support grouping/filtering of changes in preview page (for
example allow showing all textual changes only) [Simple to Use]
[committed]
- Support pluggable structure creators for the upper pane of
the preview page (remove dependency between JDT/UI to internal LTK/UI
code). [Built to Last]
- Performance
- [>3.2] Convert
Generalize Type to new type constraint
infrastructure [Built to Last]
- Refactorings should reuse the shared AST
provided by
the Java editor where appropriate
- Improve existing refactorings:
- Hierarchical package rename
- Hierarchical delete
- Hierarchical copy/paste
- Update similarly named elements on rename (e.g
when
renaming a type update field names and locals if parts of the name
match the type name)
- [>3.2] Change
signature propagation
- [>3.2] More
use of code assist in dialog fields (extract
constant, extract method, ...)
- [>3.2] Extract
Method: improve duplicate finding (replace with
existing method)
- API compatibility
- Support creation of delegate
methods to provide API compatibility (change method signature, rename,
move, ...)
- New refactorings
- [>3.2] Investigate
in a refactoring to introduce a type parameter into a non generic class
- Introduce indirection
- Extract
Superclass
- Replace Invocations
|
|
Package Explorer
- Support inclusion filters
when in hierarchical
layout mode
(see bug 65240)
[committed]
- Support better grouping mechanisms for referenced libraries
(jars) [Large-scale]
- Investigate to use sync exec instead of async
exec to
update the package explorer when receiving a Java model delta
|
|
Type Hierarchy
- Improve lock mode for subclasses of generic classes
[Simple to Use] [committed]
|
|
Search
- [>3.2] Support
searching for code snippets instead of single
references or declarations. For example allow searching for all method
calls to IRunnableContext#run where the first argument is boolean
'false'. [Large-Scale] [proposed]
- [>3.2] Investigate
in generic rewriting of compilation units based
on the result of snippet based searching. For example rewrite all
method calls to IRunnableContext#run(false, ?, ?) to
IRunnbleContext#run(true, ?, ?). [Large-Scale] [proposed]
|
|
JUnit
- Support for running and implementing JUnit4
test cases.
- [>3.2] Support
for sub packages while executing all tests in a
package.
- Support for JUnit result model. This will allow
executing more than one JUnit test and to switch between JUnit results
|
|
Browsing
- Support inclusion filters in
packages view when in
hierarchical layout mode (see bug 65240)
[committed]
- [>3.2] Investigate
in higher level browsing support. For large
systems, browsing dependencies on method call level is too fine
granular. Dependencies are better visualized on type, package, source
folder or project level. [Large-scale]
|
|
Navigation
- [>3.2] Improve
Expand Selection (additional sync points: line, ...)
|
|
Articles
- How to use the AST rewrite to manipulate source code
- How to contribute a quick assist/quick fix
- How to write your own refactoring
|
|
Dependencies
- Platform/Core:
- [Support for Logical model integration]: this
support might impact the refactoring processor/participant architecture
and how the mapping between IResources and language elements is
decribed.
- Snap shotting
- Allow merge for Copy/Move (see bug 31883,
bug 29838)
- Platform/UI:
- [Provide more customizable UI]: Depending on the
requirements this might impact the way how JDT/UI currently builds the
global menu and tool bar as well as the context menus
- [Provide more support for large scale workspaces]:
JDT/UI has currently working set support in the package explorer. If
Platform absorbs this concept the JDT/UI and Platform/UI implementation
should be alligned.
- [Improve task assistance in text fields]: JDT/UI
has currently its own implementation for content assist in text input
fields. This implemenation should be given up in favour of the
Platform/UI implementation.
- Outstanding discussion topics:
- Universal Navigator
- Cancellation of label and content provider calls
(e.g. cancelling getChildren)
- Extensible actions and pluggable actions (define
rename action for different file extensions and allow participation in
rename)
- Platform/Team:
- Commit hook to apply code styles
- Platform/Text
- Save hook to apply code styles
- JDT/Core
- J2SE 6.0 progress
- Compile hook to apply code styles
- ISourceManipulation and linked resources (see bug 31456)
|