12/29/02 - DocJet version 5.1 build 1 released
This release dramatically improves DocJet's capability for dealing with .Net applications, namespaces, and hyperlinking into Visual Studio documentation.
Before you install this release...
The "New Standard" output format has been substantially modified for this release, so if you have a custom output format, you will need to make sure your changes do not conflict. The .HLS file format has changed to XML, but the old format is still supported, so this change should have no affect at all. If you happen to have an HLS file, you can convert it to XML pretty easily using regular expression matches. The advantage to doing this is that hyperlinks generated to those targets will get a hover-over popup.
New Features
- For people creating documentation for .Net applications, the output formats can now create multi-lingual declarations.
- The old "Hyperlink Set" feature has been revitalized to provide linking into the Visual Studio documentation. Support is provided for linking into the STL, ATL, MFC and .Net Framework documentation of VC7. (Linking into the VC6 documentation is still possible, but, as before, rather difficult due to the way the documentation system in VC6 works. If you want to do this, contact support for help.)
- The HLS file format has been changed to a variant of XML, however the old file format is still supported as well.
Defects Corrected
- Handling of namespaces has been dramatically improved. Most of the problems with DocJet's handling of namespaces were rather subtle, and each one taken separately was no big deal. So listing all the problems solved here wouldn't be worth it. The biggest issue fixed was this: The C++ compiler would trip over "namespace N { class C { void F(); } }; using namespace N; void C::F() {}". It would report "N::C::F" and "C::F" as separate objects.
- The auto-hyperlinking engine had a number of small problems. The worst of which was that if you had "::yow" in your comment, it would get replaced with a link to "yow" in the global namespace alright, but the "::" wouldn't show up. This doesn't seem bad until you have a template declaration, "C<x>::yow". Here the auto-hyperlink engine cannot recognize the whole thing as a pointer to "C::yow", it sees it as "C", "<x>", and "::yow", and thus it would be replaced with "C<x>yow".
- If you have an object with a common name, say "list", you might use {noautolink} to keep the auto-hyperlinking engine from replacing all occurrences of this fairly common word with hyperlinks. That's okay, but if "list" appears in a declaration, there is no doubt that it refers to the "list" in the code. So, the auto-hyperlinking engine has been modified so that it operates differently when working on code as opposed to comments. The {noautolink} and related directives now only affect how the engine works on comments.
- If you used ^hats^ to force a link to a {noautolink}'ed object, the link did not have a hover-over.
- Many of the things sorted in alphabetical order, such as the HTML index, were sorted in a case-sensitive way. Most people seem to prefer case-insensitive.
- The XML comment scanner could GPF if it encountered bad XML (an opening markup without a matching close markup.)
- The previous build introduced a bug into IDL Cleanup Hook, it was clipping off the first letter of each parameter and not translating members of coclasses properly.
- A great many small bugs in the C# and VB.Net scanners were fixed.