Requested
I'm starting to use SourceForge more and more. If you have
time and you see a feature on this list that you would really
want, could you please enter it in the SourceForge database?
Here is how:
Go to the
JRefactory Project and click on the list of bugs or features.
Then press the button to submit a new request.
Thanks!!!
Also, if you really want a feature that is listed here, send me e-mail
which feature it is. The more people who want a feature, the sooner I'll
get it done. (As it is, I'll never finish this list, so I prioritize
the feature based on the number of requests for it.)
Pretty Printer
- GUI for pretty printer configuration
- Removed duplicate import statements
- Remove import *
- A "remove imports not used" function (automatic or prompt at users choice?)
- Long loop for bug with super() and no ;
- The error box takes a long time to appear
- Removes CVS comments from the end of the file
- Blocks inside a method
- // single line comments move after the {
- When passing values to a function which spans
more than one line, the parameters should line up with
the (
- If only a @return tag, don't include the double space after the name
- Space in statements but not expressions and space after !
- Wrap long lines of code. They should be wrapped on
parameter separator (","), then on open bracket ("("), then on expressions but
not inside brackets.
- Parse Error dialog - only a single one with error in a scrollable area box
- File header without the stars to the left
- Eliminate javadoc comments if it is already
documented in the interface
- Add a header only if no header comments are present
- Growing javadoc comments
- A single line // comment should be moved to the line
before the code
- Remove {} around a single statement
- Indent variable declarations with the previous block
- Default comment for getAt and setAt
- If a method overloads a method from a parent class
or abstract class or implements a method in an interface
insert a javadoc comment that says that the description
is in the appropriate interface/abstract method/parent
class with a @see tag.
- Only use the variable spacing for fields (not for variables in a method)
- Make array declarations line up with the rest of the declarations
- Array {} line up with the declaration but
the contents of the array are indented
- Sort implemented classes
- Sort thrown exceptions
- Newline before extends
- Newline before implements
- Option to add blank line after "package"
- Option to add blank line after "import"
- Sort order for imports. Example: put "java" on top, then javax, then other
packages. This can be done in even more complicated, but logical way if you sort
packages by level matching.
- Option to add blank line after every "import" group (java, javax, com...).
Problem: some imports should be grouped by second package level, like "com" because
they import very different things. Idea: if group contains more than "n"
imports, split it on next level recursively.
- Import sort looks bad if you alread have blank lines between imports because it
keeps blank line after import example:
- Option to add space before block statements like for, while, try, switch...,
but only if they are not the first statement of containing block.
Javadoc template for indexed properties (getSomething(int it), setSomething(int
i))
- Sort order: add option to sort by final / non-final.
- Option to add blank line(s) between method/class declaration and body.
- Templates for getters / setters / parameters: if property name contains
uppercase letters, {3} should be split into lowercase words. Example: setHostName
return "host name". In Javadoc, you'll get "Sets host name" rather than "Sets
hostName". But if there are more than one uppercase letter, split and leave
uppercase: setHostURL becomes "host URL".
- Comments for add / remove listener methods are strange (feature?!). Example:
- Add a removeSomething template.
Refactorings
- Rename method
- Rename inner class
- Rename local variable
- Accurately reflect whether a method can be moved
- Move method into field
- Deleting comment before extract method
- Automatically manage length of undo stack
- NEXT Browser - instead of class diagram view
- Rename package
- Move inner classes into their own file
- Allow user to set public/package for parent class
- Push up a constructor
- Include the javadoc from the original file when you do an extract
- Create stub operation. User enters a method with arguments,
highlights the method, and then selects create stub. System
generates a method with the correct signature based on the inputs
and a reasonable return (null or 0 or false).
- ConvertLocalVariableToInstanceVariable refactoring
- Change the parameters of the extract method
- Better at getting the return type when a return statement is included
- Encapsulate field (replace a public field with a private one,
add getters and setters and replace all usage of the field
with the appropriate accessor.
UML Diagrams
- Add a tooltip for each class (especially when in 10% zoom mode)
- Put a wait cursor over the structure pane when loading the diagrams
- Scroll pane makes larger jumps for the key and class list panels
- Develop a layout engine
- Moving a class changes the view back to 100%
- View inner classes in a diagram
- Center Loading dialog box for the metadata
- Hide methods/fields/classes to simplify the diagram
- Edit classes in the UML diagrams (change class/method/field/arguments names
+ add/remove of the same + updates of usage)
- Add class to a package (without relationship to other classes)
- Sizing of classes in the UML diagram and more steps to the zoom function.
Also, there should be a tick showing what zoom level
is currently chosen
- The dialog box that pops up when "New UML diagram" is chosen has a very
narrow window, unsuitable for long pacakage names.
Resizing the dialog box does not help since the scrollpane does not
"follow".
- JDK summary loader not sized for linux
- When mouse is held at background, it would be nice to move diagram with mouse.
IDEs
- Integrate into netbeans
- Moving/Adding/Renaming classes should update JBuilder
- JRefactory plugs into JEdit (like JavaStyle)
- Plugin for VA4J
I need to learn answers to the following questions before
JRefactory can integrate with VA4J. Some answers are in
Chapter
27.
- How can you get a list of all the classes in the
repository?
- How can you get the text of a specific class?
- How can you set the text of a specific class?
- How can you get the current class that the user is
editing?
- How can you get the text that the user selected?
- Access JRefactory from the structure pane of a .java file in JBuilder
- Add a new diagram to the project pane of JBuilder
- Integrate with Emacs JDE
- It would be nice if the default for the "New UML diagram" was the package
that one are currently viewing. In JBuilder, I often want the UML diagram
for the class that I am currently viewing.
- When a UML diagram is saved, it's (default) location is in its place in the
package hierarchy. Fine. But why is it not shown in its place in the package
hierarchy in the JBuilder project pane? Seems that all UML diagrams are shown
at top level.
- Menu item to edit pretty.settings
Other
- Better documentation of what the pretty printer does:
The pretty printer does these transformations on the source
file:
- reindentation accoring to bla bla style...
- sorting of methods and data members according to these criteria
- ...
Just a brief overview of what changes the pretty printer does to the source
possibly intermixed with some examples.
- Color blind colors in about box
- Do a check for style (catching and ignoring exceptions, correct
case for fields and methods and classes, etc.
- Add embedded JSQL to the parser
- Online help
- Add the ability for a user to add a comment to the log file
to serve as a vote for future refactorings
- Add "usage search". There obviously is one implicitly since the "Rename
class" function updates all usages, but it would be nice to simply have
the results available in a list with a "Show source" option.
Then it would be possible to have the questions "is this class used at
all?" and "where is this class used?" answered easily.
- A "find private fields/methods never used" function. Items found could
actually be removed (after prompting the user ?) Likewise, a
"Find protected/public/default fields/methods would be useful, searching
all available code. Here the user must evaluate wether the items
found can be deleted, since they may be used by others. But it would be
helpful when searching for obsolete code in larger systems.
- Break the JPG file into pages
- Export UML diagram to another UML tool's format
- Indent standards from
Sun
|