There are a many new features and improvements over previous versions, here are some
of the highlights. Note that not all of the features listed here may be included in
all editions. Please refer to the feature matrix for details.
- Project Management: Master projects, ability to store TOC information in external files, more control over command line output and improved command line handling, just to name a few.
- Editor and Authoring: Snippets, labels with formatting and conditional text features, text variables with automated formatting, CTRL-<SPACE> quick access for inserting labels, variables and snippets and more.
- Unicode: Doc-O-Matic now works with Unicode internally and supports Unicode source and documentation files, Unicode identifiers as well as on-the-fly conversion of external HTML documentation using any installed code page. Doc-O-Matic is now independent of the current system default locale and can create output in any language without change of locale setup.
- Source Code: Added PHP support, improved syntax printing with colorized syntax highlighting and much improved multi-language output. Doc-O-Matic now comes with a new Code Translation tool that helps maintaining the syntax translation matrix.
- Tools: Doc-O-Matic now comes with tools to manage the Code Translation matrix, HxBrowse for browsing the Help 2 namespace registry and tfhxreg for registering Help 2 files, namespaces and plug-ins.
- Localization: Localizing Doc-O-Matic projects can now be handled from one central place, the localization dictionary. All strings in the project that possibly contain translatable content are run throught the dictionary upon output generation. Also, Doc-O-Matic comes with new localized button artwork for HTML and there is a new tool that helps switching the current language easily.
- UI: New UI elements like the Ribbon bar help managing the project more quickly.
| Project Management Features |
|
| |
|
- Master Projects: Projects can now have a master project. The project stores only setting differences between itself and the master project. Changes in the master project are reflected in the project automatically (upon loading). This is an incredibly useful tool when maintaining a set of projects that should have the same settings and only differ in a very little number of settings. Even master project hierarchies are possible.
- New feature: When passing a file on the command line Doc-O-Matic now accepts Doc-O-Matic project files and any other file type it recognizes. This makes it extremely easy to use Doc-O-Matic as convenient viewer application for source code as well as DTX and snippet files. Just drag a file onto the Doc-O-Matic icon and Doc-O-Matic will show you its content:
- When dropping a Project Database file, Doc-O-Matic automatically opens the corresponding project (if available).
- The file extensions for Documentation Topic files, Documentation Snippet files and the project databases are now associated with Doc-O-Matic so they can be double clicked in the Windows Explorer.
- New Project: When creating a new project, you now have the opportunity to select the output formats that should be included.
- UI: The commands for adding and importing folders have be unified, there are no longer different command for these operations. To add a folder with file mask use "Project->Add Folder", to import files from folder permanently use "Project->Import Files from Folder".
- Added: Configuration/Layout: A new dialog has been added that allows convenient scaling of the font size of all selected elements by a certain factor.
- Added: Path Macros: A new application setting has been added to define custom path macros that Doc-O-Matic uses when loading or storing files and folder in project files. Whenever a matching macro path is found in a file name, the macro name will be used. This allows for different source paths on different machines while still being able to share the same project files.
- Added: Project Files: Doc-O-Matic now automatically uses path macros for the default output folders - $(USRDOCOUTPUT), $(USRDOCSGRAPHICS) - and more generally to all paths in the Doc-O-Matic user folder - $(USRDOCS) - to make it easier to move a project to a different user account or computer with a different operating system. Both cases usually mean that the default output folders are different.
- Added: Reports: The Reports View now supports a "Copy" command that lets you clone an existing report with all its settings.
- Added: Core/Project: The project version now consists of 4 numbers, major, minor, release ID and build ID. Release and build ID have been added.
- The Content Manager and the QA Manager now remember which filter was selected across sessions.
- Added/TOC: The TOC information can now be stored in an external file which makes it possible to share a TOC among multiple Doc-O-Matic projects.
- UI: To raise awareness of context sensitive help we have added "Help" buttons to all dialogs.
- All files in the support folder (Doc-O-Matic/support) can now be mirrored in the user's Doc-O-Matic folder - under Windows XP and Windows 2000 this typically is in "C:\Documents and Settings\<user-name>\My Documents\Doc-O-Matic", under Windows Vista it is in "C:\Users\<user-name>\Documents\Doc-O-Matic". If a particular file is mirrored, this version is used upon project-initialization. If a file is not mirrored the original from the Doc-O-Matic installation folder is used. This makes it possible to modify Doc-O-Matic installed files and keeping the changes even if re-installing or repairing a Doc-O-Matic installation. Note that mirrored files are not updated with new content when new versions become available, it is the user's responsibility to maintain those files.
- The graphics folder has been divided in a general folder at Doc-O-Matic\graphics and localized folder for English, German, French, Japanese and Korean which contain all buttons in the respective language.
- "Localization" now works on all strings that usually carry text in the configuration, including AutoDoc folder names, folder descriptions, the PDF link configuration string, PDF header and footer configuration strings, and so on. This means that the localization dictionary is now the central place to localize the output (with respect to built-in phrases and terms).
- Added a new tool "Project->Switch Output Language" that switches both localization dictionary and artwork image paths for all configurations.
- The "Translation" page has been renamed to "Localization".
- Doc-O-Matic now works with Unicode internally throughout the entire application and all output formats (where applicable).
- As a result of the Unicode migration, Doc-O-Matic now supports UTF-8, UCS2, UTF-16 and UTF-32 (UCS4) format source files.
- Source and documentation files in Unicode are supported. New topic files will be written as UTF-8 files, a conversion utility for converting source and topic files will be added. ANSI source and topic files code are still supported for reading and writing.
- Core/Text: Full support for all Unicode character references, including named references and numeric references (both decimal and hexadecimal).
- Unlike previous versions Doc-O-Matic 6 is independent of the current system locale when it processes and generates documentation. As and example this means that you no longer have to use a Japanese system locale to build Japanese content.
- New Code Translation Tool: A new external tool has been added which allows comfortable editing of the type conversion matrix that is used by Doc-O-Matic to generated multi-language syntax output. Also the file format of the code translation matrix has changed.
- Help 2 Namespace Browser: Doc-O-Matic now ships with a namespace browsing too that lets you inspect the registration for the Help 2 system.
- A new tool named TFHxReg is now shipping with Doc-O-Matic which allows easy and painless registration of Help 2 namespaces and titles. It has a number of advantages over H2Reg, including full Unicode support, easy configuration using an XML file and it does not require administrator privileges for most registration tasks. The new tools is now used by default, H2Reg and Microsoft alternative registration methods are still available optionally.
| Editor and Authoring Features |
|
| |
|
- New feature: Snippets. Snippets are text parts that can be re-used any number of times during the authoring. Each snippet is stored in its own file (called .dom-snippet). Snippets can be edited in the editor, they are listed in the Content Manager under the "Templates " Special Topics" folder. In the Editor, snippets can be inserted using the context menu and toolbar buttons, the Editor automatically lists all available snippets. The snippet commands replace the include file commands from previous versions.
- Content Manager: A new command has been added called "New Snippet" which is available from the toolbar and the context popup in the Content Manager.
- New Automatic Text feature: You can now have Doc-O-Matic insert a snippet into all topics. This is a very convenient feature for situations were you need all pages to display a certain phrase, like "This is beta software" or "This is preliminary information and subject to change". The snippet used should start its own section to encapsulate it from the rest of the topic logically. The feature can be configured on general settings page [General Settings]->Documentation->Automatic Text.
- Added: Text Labels, a new way to flag certain text portions. Labeled text parts have a number of automatic features attached to them:
- Labels can be formatted (bold, italic, underlined, code, sub, super and color) automatically
- Labels can be added automatic prefixes and suffixes, like "Note: " or "Warning: ",
- Inside the labeled, automatic text replacements can be applied. This allows for more complex formatting during output generation while keeping the authoring process as simple as possible.
- Labeled text can be excluded for from output. This allows for configuration dependent conditional text.
- Editor: Code blocks can now be tagged with a source language or "Default". When using a specific language code block, Doc-O-Matic will auto-syntax highlight the code block upon output generation using that language. When using "Default" the syntax language will be determined by the topic's context if possible, otherwise by the generic source language option from the output configuration setting.
- Editor enhancement: New keyboard commands are now available for fast insertion of variables, for labeling text and for insertion of snippets. When pressing CTRL-<SPACE> (for variables), SHIFT-CTRL-<SPACE> (for labeling) or CTRL-ALT-<SPACE> (for snippets), the Editor opens a popup menu at the cursor location listing all variables, labels or snippets that can be inserted. This is a shortcut which aids mouse-less operation of the Editor and improves typing speed.
- Added: New option page for managing Text labels.
- Added: New character formatting for subscript and superscript.
- New TOOL: "Tools->Get TOC Information from Topic". This tool imports TOC grouping information from any topic in the project by analyzing its content. It converts lists and links into hierarchical TOC information for the project. This tool is ideal if you import html files that come with a TOC in form of a nested multi-level list containing links to the topics. It lets you import existing TOC information from existing sources and saves the time needed to reconstruct the TOC manually.
- Content Manager: New Contents Design tool available via the popup menu "Contents Design->Get TOC Information from Topic" which imports the TOC from a topic using the Get TOC Information tool.
- Added: Core/Tags: tag and fkeyword XML property tag to add context index entries for Help 2 manually.
- Editor: A new edit command name "Edit->Convert Link to Text" has been added which converts any link into normal text.
- Editor: A new command named "Follow Link" has been added to the Editor which opens a link's target in the Editor instantly.
- Editor: When pasting an image from the clipboard, Doc-O-Matic now presents you with the image dialog showing the image and allowing you to set the image name, path and image properties.
- The emit edit dialog is now wider.
- Added/Variable formatting: Text variables can now carry character formatting styles (bold, italic, underlined, code, sub, super and color) with them. The text variable option pages have been changed accordingly.
- HTML Import now supports conversion of documents in all character sets that are installed on the machine.
- Small changes to the HTML importer making it more robust for nested table setups.
- A new command line switch for DMCC which allows for filtering certain message codes: -i <codelist> takes a semicolon separated list of message codes. All messages matching those codes will be ignored. The warning level will not change, though. If one or more message were ignored during build, DMCC will state that at the end of the build.
- Improved rendering of PDF output.
- HTML and PDF font sizes can now be set to "inherit" which means that the used font size will be inherited from the underlying section element setup.
- HTML and PDF output: Lists, tables and user heading automatically adopt their font used to the section they're contained in. This fixes a long-standing issue that could cause lists, tables and heading to be formatted in a font different from the section.
- A new HTML feature has been added called "HTML File Template" which allows for integration of Doc-O-Matic content into existing layouts. When using this feature, Doc-O-Matic generates all HTML pages by using a template into which its content is copied.
- Added new index options for both visible and context index named "Use dot as qualifier".
- New artwork for HTML buttons (Contents, Index, Glossary, Reference, Search, Up, Previous and Next) in 5 languages (English, German, French, Japanese and Korean). The previous botton artwork ships in "Doc-O-Matic/graphics/classic".
- New HTML and PDF title page artwork.
- The HTML feedback link has changed in that all text parts are now supplied by variables that can be changed separately and are localizable through the dictionary. As a side-effect of this change, old project's feedback link configurations will be reset. If you made changes, please re-apply them.
- A new option has been added to make generation of global class hierarchies optional on settings page [Configuration]->AutoDoc->Local Class Hierarchy.
- New Encoding Option for HTML based output: Doc-O-Matic produces HTML pages in an Encoding of your choice. There is a new option page [Configuration]->Files " Format->Output Options->Encoding which replaces the old locale page. Previously Doc-O-Matic would only set the character set of the generated web pages. Now it actually generates web pages in the desired target encoding. The chosen encoding's code page must be installed on the building system in order for the conversion to be applied. Otherwise, Doc-O-Matic outputs UTF-8 encoded files.
- Added: Syntax highlighting formats which allow you to set character formatting options (bold, italic, underlined, code, sub, super and color) on specific syntax parts (comments, keywords, symbol names, parameter names).
- The Overloaded folder now gets its own automatic text (adjustable at configuration settings page "[Configuration]->AutoDoc->AutoDoc Folder"). This text is used to fill navigation section entries for overloads with meaningful content.
- Class Hierarchy: New option to paint reverse lines with arrows pointing from derived class to base class (default is base class to derived class).
- Added: Output/HTML: External link now automatically come with an image indicating they are external.
- Changed: Output/HTML: External links are now opened through a JavaScript call which gives users the opportunity to change the external link behavior.
- Added: Output/Body Source: A new option was added named "Remove comments from body source code" on configuration settings page [Configuration]->AutoDoc->Code Options->Body Source. When selected this options causes all comments to be stripped from included body source code.
- New: Output/Navigation Tables: A new option has been added to the "AutoDoc Content" page named "Include topics that supply navigation descriptions only". When this option is enabled, essentially Doc-O-Matic will not generate navigation table rows with empty description lines. Topics that supply documentation according to the AutoDoc content setup will be included, topics that don't will not be included.
- New: Output/Navigation Tables: A separation for AutoDoc Content tables has been implemented so the navigation table setup for symbols can be different from that for topics.
- Renamed page "Member Listings" to "Content Options" and moved the table options from "AutoDoc Content" to this page.
- Renamed option "Create Visual Studio 2005 style navigation tables" to "Create separate column for indicator images" on option page "AutoDoc Content"
- Improved/Translation: The dictionaries have been greatly improved and a French dictionary has been added.
- Changed/Options: Two options have been removed from option page AutoDoc->AutoDoc Content->Member Listing, which controlled how combined member section names were constructed. These are now controlled via translation only.
- A new HTML output feature for the TOC page to limit the number of TOC levels.
| New Parsing and Language Features |
|
| |
|
- Multi-language-syntax: Doc-O-Matic now converts constructor/destructor names when generating multi-language syntax.
- Multi-language-syntax: Conversions for different call types (const, ref, ByVal, ByRef, var) are now being made when converting source code. Converted parameter lists are now much more accurate then they have been before.
- Multi-language-syntax: IDL is now converted to C# and VB.NET more accurately.
- Multi-language-syntax: Conversions from C++/CLI types ending with a ^ hat symbol into other .NET languages automatically remove the hat from the type. This behavior can be overridden by a defined type conversion for specific types.
- Added: Parsing/Projects: Added support for BDS Delphi 2007 project files (.dproj).
- Added: Core/Warnings: Added a new topic processing warning (135): The parameter named "%s" is documented multiple times.
- Change: Parser/C: void parameter lists are now ignored. Previously, two functions declared as f(void) and f() were handled as two different symbols. With this change the two are the same. This also means that the symbol ID of f(void) is now "f" whereas it was "f@void" previously. Off-source documentation need to be updated accordingly.
- Added/PHP: PHP has been added as separate file type. Added special handling of PHP parameter names in @param JavaDoc tags.
- Added/Pascal: A new parser option "Automatically use unit "System" which add's System to the using information of all symbols. This primarily is there to generated VCL API help correctly.
- Importing Borland XML Files
- Core/Multi-Language Syntax: Hex values for constants, variables and initializers are now language-converted to their correct prefix.
- New Ribbon bar UI element replaces the main tool bars and views bar (which can be turned on optionally).
- New more complete hints that present more information in a more accessible way.
- Added/QA View: A new popup menu command has been added named "Go to Content Manager" which switches to the Content Manager and selects the topic that is currently selected in the QA View.
- The visited symbol history list now displays 20 items and the value can be changed through the registry HKEY_CURRENT_USER\Software\toolsfactory\Doc-O-Matic\6.0\Symbol View\HistoryMaxCount
| Performance and Miscellaneous Changes |
|
| |
|
- Installer: The installer is now Windows Installer/MSI based for increased compliance with software deployment policies in organizations.
- Improved performance and reduced memory consumption by using FastMM
- Speed: The global project is now build only if required in the output generation process which can save a lot of time. The global needs to be built when either of these conditions are met:
- A Report exists in the project that is run over all or all non-exported topics
- A topic exists in the output topic set that copies its content from a topic that is not exported.
- Reduced memory consumption of topics structure
- Changed: The Content Manager no longer shows check boxes for templates, snippets and special topics.
- Feedback Wizard: The user ID is no longer saved to the registry due to security reasons.
- PDF Font mappings will not be loaded from old project files. The mappings will have to be re-done.
- A new application option for the source editor setup to pass the line number argument as first option on the command line (some text editors require the opened file to be passed as last argument, thus this option).
- You can paste a path into the path edit field in the browse dialog, the explorer control will synchronize with the pasted path.
- A couple of editor fixes related to link insertion and link saving when embedded in labels, subscript and superscript text.
- PDF: A bug has been fixed that caused the font mappings not be updated when a font name of a formatting element was changed.
- Much easier to use new project wizard entry page.
- A bug was fixed that prevented the event auto-classification from working correctly which could cause events to be classified as properties for Delphi source code.
- Fix: A special case of array parameters in VB was not parsed correctly and generated an invalid parameter.
- Fix: A C/C++ declaration syntax problem with array struct-typedef declarations like struct { int i; } x[BOUNDS]; which would cause the [BOUNDS] part to be omitted in the declaration syntax.
- Fix: Now outputs multi-line C macros exactly the way they are declared including white spaces and line continuation backslashes.
- Fix: A C++ template parser problem which caused class ancestor lists to be parsed incorrectly if they contained a nested template class in the ancestor list like class A : public B::C<D>::E {}.
- Fix: A bug in embedded source parsing which affected source embedded in ASPX and JSP files could cause comments not to be picked up correctly.
- Fix: A VB.NET parser bug that caused incorrect parsing of ancestors lists that used generic types with arguments.
- Fix: Comments are now preserved across boundaries of C# and VB.NET regions.
- Fix: The C++ parser didn't correctly pick up implementation location comments of class operators. Also class operators were added to the global function list if the add-functions-without-prototype feature was switched on.
- Fix: The C++ parser sometimes picked up friend function declarations as member functions in classes they were declared in.
- Fix: Open implementation sometimes failed to jump to the right line number when working on with Unix source files.
- Fix: C# parser bug that caused incorrect parsing of fields using initializers with generic type argument lists.
- Fix: Local Class Hierarchies: When using derived classes listing, Doc-O-Matic now excludes classes that are not exported.
- Fix: Core/Multi-Language Syntax: Fixed syntax generation errors when generating C++ syntax from Delphi source code.
- Fix: Core/Syntax Generation: VB.NET enums no longer use wrong "," line separators.
- The emit code is now escaped properly so n sequences that are entered will not result in added linefeeds.
- Fix/Pascal Conditional Parsing: The parser did not correctly handle {$IFEND} directives which could cause the entire file after the directive to be ignored if conditional handling was enabled.
- Fix/Translation: The translation dictionary was missing entries for translation of combined terms like "Public Methods".
- UI: Fixes a problem that cause controls getting invisible temporarily when hitting the ALT key under Vista.
- Fixed/Progress: The progress indication during output generation now reflects the real progress more closely.
- Fix/Output: Parameter lists of functions that inherited the documentation from a base class did not print the full declaration source.
- Fix/Output: The "Always use dot as qualifier" for page titles was not applied to qualify nested namespaces.
- Fix/Editor: The Editor was not always changing the button states correctly.
- Fix/Pascal: Parsing: If a {$REGION} or {$ENDREGION} directive appeared between a comment block and a symbol declaration in Delphi source code, the comment was not associated with the symbol.
- Fix/Pascal: If an attribute appeared between a comment block and a symbol symbol declaration in Delphi source code, the comment was not associated with the symbol.
- Fix: The copy topic lookup has been made more flexible with respect to how a topic ID can specified. It now allows for partial symbol IDs (e.g. excluding the namespace) like the lookup for ALIAS and COMBINE did before.
- Fix/HTML: Anchor links did only show up for sections that had their heading visibility setting set to "Always Show".
- Fix/HTML: Additional Information Sections were not added as anchor links in the title link list regardless of whether the anchor link option was turned on for that section.
- Fix/PDF: The PDF double-page printing option was not correctly loaded into the configuration setup UI (instead it was unchanged relative to its previous state).
- Fix/PDF: The PDF page layout presets were not correctly selected when loading a configuration that matched one of them.
- Fix/Help2: The help collection master files and the h2reg.ini file are now generated in the same directory as the output Help file which fixes problems registering such Help files.
- Fix/Help 2: Topic IDs containing $ signs would cause the topic to be excluded from the Help file.
- Fix/Feature: The symbol lookup for autolinking is now case sensitive even for case insensitive languages.
- Fix: The class member lists in the structure copy that was built for for the export didn't use the correct LanguageMode which caused symbol searches return different results than in the original structure. This surfaced in the autolinker.
- Fix: A C++Builder project file parsing problem that prevented certain source files from being picked up correctly.