Documentation Insight 3 is a brand new version. It includes significant new features and improvements. Since it is close to announce first Beta version of Documentation Insight (DI) 3, let’s take a look at some parts of DI3 in this Sneak Preview series.
In this preview, you will experience the new Documentation Generator.
1. VS 2012 Presentation style
Compared to previous classic presentation, the new VS2012 (like) presentation style in DI 3 is more clean and elegant.
2. Group by Projects
You may organize the units by Projects. The documentation in project source will be showed in the corresponding topic.
3. Inheritance Hierarchy
For class and interface types, all base types and derived types are showed in the inheritance hierarchy.
4. Syntax Highlighter
Both the syntax prototype and code examples will be highlighted.
5. Inherited Members & Filters
All inherited members will be displayed in the member list. You may also filter the members by clicking the right check boxes (inherited /protected)
6. Information on Overloads/Overridden/Implements
There will be additional information if a member has overloads, or overridden a member, or what methods of interfaces was implemented by this method.
Method resolution clause is also supported.
7. Inherited Docs
The documentation generator will try to reveal documentation from overridden members or implemented members. Say you documented an interface IList<T> and TList<T> implements the interface, then All members of TList<T> will inherit documentation from the interface IList<T> if available.
8. Improvements about hyperlinks in code
We spent several months to reveal Delphi grammar and built our own compiler front-end from scratch. Therefore, it is possible to resolve symbols in code.
9. Default documentation
For some code elements, we may choose default (friendly) documentation. e.g. For constructor/destructor/class constructor/class destructor/class operators/resource strings. Say for an instance constructor, its default documentation may looks like:
Initializes a new instance of the TFoo class.
10. More XMLDoc tags
If you want exclude an member from your final documentation file, you may apply self closed <exclude /> tag against the API. If a property should be taken as an event, you may apply <event /> tag to it. (e.g. property OnChanged: Event<TNotifyEvent>;)
Known issues in the demo:
* Some keywords will not be highlighted.
* The default topic was not synced in the TableOfContents.
Future work on Documentation Generator:
* Supports Overloads
* Resolve RTL/VCL symbols and produce hyperlinks to online RAD Studio Library DocWiki. (Or maybe even the MSHelp2 links)
* Consider PDF/Html Search