DocWiz
: Project DocWiz
Don't let DocWiz's Beta designation scare you, it's actually quite stable
and usable, but is missing what I consider to be essential features.
Before declaring version 1.0 ready, I will make the following requirements:
- Solid Java and JavaDoc parsing engine (currently there are very few
known bugs)
- A decent command-line interface, using GNU Getopt (done)
- Clean interoperability with most development environments (done)
I'd also like to have a freeware install program.
After 1.0, I plan to go to a split development tree, with even numbered
releases being considered stable and experimental odd numbered releases.
Here's a rough outline of how DocWiz development might progress from there:
- 1.2: External editor invocation, javadoc invoker
- 1.4: Java 2 compliance (actually, this got done earlier than I thought)
- 1.6: Persistent customization, extensible tag framework (again, some
of this is done already)
- 1.8: Tag templates (partially done with 0.67, you can now choose previously
entered text from a drop down list)
- 2.0: Intelligent documentation hints for side-effects and the like
- 1000000.0: Writes all the documentation for you
None of this is set in stone and is highly dependent upon how willing
everyone is to contribute.
- DocWiz doesn't check for read-only files, bad when you're using some
version control systems.
- Unicode input is not fully supported, though "escaped" Unicode supposedly
works correctly.
- There are a few quirks when documenting inner classes.
- Some grid controls don't automatically resize properly under Solaris.
You can help out by fixing bugs and adding new features. I've got several
tasks in mind that would be great for someone just starting out.
But if that's not your bag, there's other stuff for you to do as well.
I need a compelte set of icons and a good-looking logo. I want to have a
gallery of screenshots, showing DocWiz running under various operating systems.
DocWiz needs a good automated testing setup, with a broad variety of input
files.
Have a look at the
latest development sources
via CVSWeb. DocWiz's version control is provided by the
Giant Java Tree
.
Here's a bunch of features I'd like to see, in no particular order.
- Icons
- Screenshots
- More completeness states
- Command-line option for creation of comments
- Save+Exit button
- Save As menu item
- Help|About not appearing under Solaris
- Fix icons on tool bar
- Improved source viewer
- JavaDoc invoker
- Tagged paragraph templates for Beans?
- Templates based upon the superclass?
- Header template
- Line up comments with code
- Multi-line tagged paragraphs
- Read-only file check
- Batch mode: java DocWiz -recursive c:\Thisdir
- Invoke external editor for fields
- HTML editor
- Better separation of user interface and data structure code for embedding
in other environments
- Your most wanted features! Write to
docwiz@hyper-g.com
DocWiz is currently quite stable and usable. It's lacking a couple of features
that would really make it shine, but I use it all the time to document my
own source code.
- Beta 0.68 2001-09-16. Restored JDK 1.2 compatibility. Fixed problem
with @param tag.
- Beta 0.67 2001-09-07. Many new features and enhancements, mostly
courtesy of Lee Meador. Among other things:
- Drag and drop works for moving tabs between the panes. Their location
is preserved when the program closes and reloads.
- The unknown tags pane works. (Note: if you change a tag like "parm"
to become "param" it will move off the unknown tags pane to its regular position,
if there is a parameter with that name, when you change to another pane and
then return.)
- The split pane positions are now saved across program invocations.
The bug that changed the pane size when you clicked another tab is fixed.
- The tabs display correctly in the comment view and code view panes.
Those panes now use courier font (which is monospaced).
- More changes done to the unknown tags. Any tag that can not be
entered on the main tag edit pane appears on the unknown tag pane. This would
include multiple @return tags or @since tags. It would include @param tags
with variable names not in the parameter list (but they appear in both places
so you can edit or delete them.)
- The default option in the Open file dialog is to only show .java
files.
- There is a preferences pane.
- Preferences are present to select how the comment will look, to
some degree. Single line comments can be allowed for each item type.
- Preferences are present to tell how to handle private items. For
each type of item (Method, Field, Constructor, Class, Interface) you can
have private items appear normally, or in grey (but still selectable) or
not be shown.
- Preferences are present for the tab size and max line length.
- There is a preference to tell whether to show the word public, private,
etc. in the list pane with the code item's name.
- The about box (and preferences box) appear centered on the main
window.
- Fixed a bug displaying comments and white space among the "tokens"
returned from the parser. The comments were in reverse order. The code display
looks much better.
- There's a manifest file, so you can run the program with "java
-jar DocWiz0.67.jar"
- Beta 0.66 2000-07-12. User interface is new AppPane style. Uses
a Metal theme to get system colors. Some user preferences now remembered
between sessions, including working directory, window size and pane placement.
Numerous small editing annoyance bugs cleaned up. Java 2 now required.
- Beta 0.65 1999-06-24. Fixed serious problem with commenting methods
and constructors with no arguments (bug report by Matt Mastracci).
- Beta 0.64 1999-06-10. Fixed ordering of @param tags (bug report
by June Smith). Inner class parameters and exceptions no longer reported
as part of containing method (bug report by Matt Mastracci).
- Beta 0.63 1999-05-16. Fixed output bug which caused comments
to show up twice (bug report from Keith Fetterman). Most file operations
moved to CompilationUnit for easier extensibility. -l command line option
added for number of columns for wrapping (Lee Wilson). -f command line switch
to save a file immediately from the command line (Lee Wilson). Compilation
unit (Java source file) I/O has been centralized, so hopefully this will
make adding new command-line options a little easier.
- Beta 0.62 1999-04-28. Fixed comment parsing problem introduced
in 0.61. Command-line option to scan a list of files for uncommented code
(Stefan Tandecki). Removed spurious error message when clicking "Cancel"
button from file open dialog (bug report by Stefan Tandecki). Multiple files
now accepted on the command line.
- Beta 0.61 1999-04-22. Upgraded to Swing 1.1 (Thorsten Ludewig
and Simon Arthur). The binary version is now distributed in two forms: one
which includes the Swing libraries, and one which doesn't. Comment parsing
fix (Jochen Bedersdorfer). DocWiz now checks to see if the file has changed
on disk while you're working on it and asks you how you want to proceed if
it has. Miscellaneous spurious dependencies removed (bug reports from Boi
Sletterink, Andreas Ludwig and Thorsten Ludewig). Vastly improved source
view pane. Packages changed to com.tinyplanet for consistency on the Giant
Java Tree, and the startup command changed to reflect this. Miscellaneous
minor bugfixes.
- Beta 0.60 1999-01-02. You can now specify a file name when starting
DocWiz. An additional class has been added to the default package in order
to make it easier to start DocWiz from the command line. The last non-open-source
class has been eliminated.
- Beta 0.59 1998-12-02. GUI layout and textfield space improvements.
Problem with switching away from an actively editing grid fixed. Word wrapping
for tagged paragraphs. Tagged paragraphs with tab characters now parsed properly
(bug report by Stephanie Bodoff). @deprecated tag support. @since support
for methods and constructors. Compilation problem with reference to dlgInputFrm
(report by Khalid).
- Beta 0.58 1998-10-4. @return really fixed. Some aesthetic
changes.
- Beta 0.57 1998-9-30. Improved performance when formatted comment
window is open. @return and @version fields fixed.
- Beta 0.56 1998-9-25. Fixed constructor toString() method to
not say "null". Separated panels for ExecutableElements, Classes and Fields
into separate files. Made panes resizable. Fixed bug with parsing newline-openbrace
indent style declarations (bug report by Dr. Gregory A. Harrison and Eric
W. Worden). Code contributed by Ramon M. Felciano to automatically update
formatted comment window when typing. Element selection list now displays
"completeness" of comments with an icon. Compile problem due to bad import
statement (bug report by Rose). Data entry panels now initially hidden (bug
report by Francesco "Kinkie" Chemolli).
- Beta 0.55 1998-7-29. Fixed problem with tab characters at beginning
of comment lines (bug report courtesy of Stephen Zagerman). Fixed multi-line
tagged paragraph problem (bug report courtesy of Paulseph-John Farrugia).
Swing 1.0.3 now being used for development. Use of non-open-source libraries
reduced. Comments now line up with the code elements per P-JF and Sun recommendation.
- Beta 0.54 1998-7-19. Source view pane added, UI changed to fit
it in.
- Beta 0.53 1998-7-5. Many more bugs fixed, including problems
with interfaces, UI display problems, creeping comments, and expanding tags.
Also, I'm now using DocWiz to comment my code.
- Beta 0.52 1998-7-3. Use of Swing components expanded; reliance
on non-open-source components reduced. Many minor bugs fixed.
- Beta 0.51 1998-6-12. Problem when writing multiple comments
fixed.
- Beta 0.5 1998-6-10. Significantly more stable version which
uses JavaCC
as its parsing engine. UI based upon Swing. Licensing defined as GPL.
- (Unnumbered Version) 1998-1-11. Based upon
iDoc - the Java(tm) Documentation QA Tool
and ANTLR
, a parser creation tool for Java.