Hi,
I have several different independent projects. In each of them, I would like to set up tagging for the runtime libraries. In the case of Java, these are JAR files, although they could also be source trees or .java files. In the case of C/C++, they would be .h files. In the case of .NET, they would be DLLs.
I can see two straightforward ways of doing this:
1) Use the Extension-Specific Tag Files. These are easy to set up and manage with the Context Tagging - Tag Files dialog. However, they are not useful in most cases, since they don't permit different versions of the runtime libraries per workspace. In fact, this limitation affects auto tagged standard libraries in many cases, if you have multiple versions of the standard library. For example, I have JDK1.5 and JDK1.6 on my machine. I can't define them both at the same time. When I used to do C/C++ work, I had the Microsoft VC++ compiler and the GNU compiler both installed -- the same problem occurs.
2) Add all the files to the workspace tag file. This seems to work for me with JAR files. Scott W told me this was not the best way to do it however; I can't remember the exact reasons why.
There is also the suggestion to use Auto-Updated tag files at
http://community.slickedit.com/index.php?topic=564.0I couldn't get this to work. I followed these steps:
1. Open my Java project. No JARs are tagged, either in "Java" Tag Files or in the workspace tag file. The Auto-Updated Tag Files item is empty.
2. Open the Context Tagging Tag File dialog.
3. Click Add Tag File.
4. Select Java.
5. Specify libs.vtg in my project directory for the Tags Database.
6. Specify lib/*.jar, recursive in the Add Tree dialog. SlickEdit builds the tag file. The tag file appears in "Java" Tag Files and contains all the JARs in my project.
7. Select Auto-Updated Tag Files in the tree.
8. Click Add Tag File.
9. Specify my libs.vtg as the Tags Database to add. The tag file now appears in the Auto-Updated category and the "Java" Tag Files category.
10. Select the file in the "Java" Tag Files category.
11. Click Remove Tag File.
12. Click Yes for removing the file from the tag file list.
13. Click No for permanently deleting the file. The tag file now appears only in the Auto-Updated category.
14. Click Done.
After following these steps, I closed the project and examined the workspace definition. It contains this entry:
<TagFiles>
<TagFile File="libs-2.vtg" AutoUpdateFrom="libs.vtg" />
</TagFiles>
The two files are in the directory, and have the same name. I assume the two files reflect the intended network usage of this feature.
However, none of the Context Tagging features are working for symbols defined in the JARs.
If I tag the JARs in "Java" Tag Files, or in the workspace, the features work.
So I have these questions:
1) Should this procedure with Auto-Updated tag files work?
2) What is the downside of tagging the JARs in the workspace tag file?
Does anyone have any further comments about best practices for tagging runtime libraries?