In the tree view, it's not uncommon to see a long string of nested
folders without any branching. For example:
src
|- edu
|- rice
|- cs
|- drjava
|- sub1
|- sub2
I find that such hierarchies, while really not providing much useful
information, often cause all the useful folders to be indented more
than half of the way across the pane. I deal with this, when file
names start running off the pane, by always scrolling as far right as I
can.
I'd like to see a more elegant presentation of such hierarchies. One
solution is the following, although a better one might present itself:
src/edu/rice/cs/drjava
|- sub1
|- sub2
This is an important problem because most users who develop in
Java using the recommended naming conventions will find
themselves creating such non-branching strings of nested folders.
Logged In: YES
user_id=1060117
This was my submission, by the way. I forgot to check that I was logged
in.
Logged In: YES
user_id=1185203
Currently, the navigation tree begins wherever the project
file is located. If you'd like to collapse the empty
folders src/edu/rice/cs, then simply put the .pjt file in
the "cs" directory rather than the "src" directory.
One option we were thinking about was to have a source root
option in the project file that acts much like the build
directory. We could also have a property describing the
starting point of the navigation tree. That way we could
display any folders between the source root and starting
point as requested. There could be several odd corner cases
with this though.
Logged In: YES
user_id=1060117
Some problems with just moving the project file (some of them also
apply to explicitly setting a tree root):
- The natural place to put the project file is at the "top" of the project. If,
say, the build directory or the extra classpath items were at the top
level, I wouldn't want to have to go *up* from my project file to be able to
reference them.
- If there are more than one of these these empty folder chains -- either
because the code comes from two completely different namespaces
(e.g. edu.rice.cs.drjava and org.apache.bcel), or because there are two
source trees (e.g. src-windows and src-mac in the DrJava code) -- the
project can't see them both.
- One important reason to keep the "src/edu/rice/cs" path is that it
makes clear the correspondence between a class's package and its file
location. If you can't see those names, you're left to assume that the
"drjava" folder really is inside an invisible "src/edu/rice/cs" hierarchy.
- If the source tree comes from CVS or something similar, it's nice to
maintain a distinction between CVS files and local files. Moving the
project file into the tree blurs that distinction.