Slava,
Thanks for your comments and feedback so soon. Replies imbedded below.
Slava Pestov wrote:
> This looks like a very useful plugin. I notice that right now the list
> of tags files must be set on a global basis. While a project manager
> plugin allowing settings to be changed on a per-project basis will fix
> this, in the mean time I think you should make it try to find a 'tags'
> file, by searching first in the directory of the current file, then
> in the parent directory, then in the parent's parent directory, and so
> on. Only if a 'tags' file is not found using that method, should it use
> the list of tag files.
I tend to only work on one project at work, but yes I do agree that having the
ability to switch a set of tag files would be needed. I've added this to the
todo list (TODO.TXT).
As for the recursively searching the parent directory for the tag file, I never
thought of that. I'll have to think about that one. I have thought of the
directory of the current file which I haven't implemented.
> I tried compiling the plugin under JDK 1.1 and it mostly works, with
> the exception of a few JDK 1.2 specific methods being used
> (Vector.add(), as opposed to Vector.addElement()). I know JDK 1.1 is
> rather old, but it is still my primary JDK, because my computer is so
> slow. I have attached a patch which makes the plugin work under JDK
> 1.1; you can apply it if you want.
You are going to make me install JDK 1.1 and compile against it aren't you. OK,
you don't have to twist my arm. :) I'll apply the patch, get a SourceForge
account, and commit the plugin later this weekend.
> This plugin also seems to have problems working with Java source files
> that use packages. For example, I have a 'tags' file in my
> /home/slava/jEdit/ directory; if I try to follow 'jEdit.setProperty()'
> inside /home/slava/jEdit/org/gjt/sp/jedit/BeanShell.java, it will open
> /home/slava/jEdit/org/gjt/sp/jedit/org/gjt/sp/jedit/jEdit.java. Note
> that it resolves the path relative to the current buffer's path, not
> the tag file's path.
Hmmm... w/o looking at the tag file (/home/slava/jEdit/tags) I'm not sure what
the problem is. Currently I open whatever file is associated with the tag in
the tags file. Either take a look at the tag line in /home/slava/jEdit/tags for
jEdit.setProperty, or send me the tags file to take a look at. Perhaps the path
you gave to the ctags program was a relative path and not an absolute one (i.e
"org/gjt/sp/jedit/jEdit.java" instead of "/org/gjt/sp/jedit/jEdit.java").
> The 'Follow Tag' user interface is a bit confusing. It shouldn't show
> the entries for super classes if they don't contain the tag in question.
> Also, if two classes define two methods with the same name, there seems
> to be no way to choose which class to open. Maybe this is a problem
> with my tag program? I am using Exuberant Ctags 3.4.
The listing of possible tag names uses a pretty dumb method. It really only
searches the current source file for things like "class *" and "extends *" and
possibly the variable name (tagging on varName.method()). The tags file isn't
even looked at for listing purposes. This leads to entries in the list that may
not exist. The listing is only meant to resolve tagging on "varName.method()",
and "SuperClass.method()" w/o having to remember what class the method or field
belongs to. Once I get the other kinks out I'll look into making it smarter.
Suggestions welcolm. So there is not problem with your ctags program (although
you may want to upgrade to 5.0.1)
> Finally, you should use standard jEdit message and input dialog boxes
> (GUIUtilities.message(), .error(), .input()) instead of custom ones,
> to ensure a more consistent user interface.
I needed to be able to have the "Open new view" check box in the "Enter Tag"
dialog. I'll look at GUIUtilities to see if I can subclass/extend or add the
check box component with some addComponent() method.
Again, thanks for the feedback.
Ken
|