Atomineer Pro Documentation Development Summary
This extension began development in 1996 (for Visual C++ 4.0), and has been evolving and improving
through constant use by software professionals ever since. It is currently compatible with all
versions of Visual Studio from 2005 to the present. More recent developments are listed below...
- Fixed some side effects of macro pre-processing in cases where entire macro declarations were being removed during a batch processing pass.
- Improved the mechanisms used for identification of enum members.
- Upgraded parsing algorithms to provide more robust handling of edge cases involving declarations spanning multiple lines.
- Website account management improvements
- The Documentation Editor now supports <see href=''> and <see langword=''> references.
langword references for the most common symbols can be inserted from the editor's context menu when
opened from description text.
- Fixed a documentation syncing issue in the Documentation Editor that could occasionally cause menu
choices to have no effect.
- Improved documentation for immutable (const, readonly) members
- Doc All in Solution/Project will now skip C++ header files. Use Process All in Chosen Files if you wish to include headers in batch processing.
- Doc All in Chosen Files now has an option to skip C++ header files.
- Fixed a bug in Doc All in Chosen Files that could cause some options not to be applied to the processing.
- Fixed a website issue that was causing download problems
- Added C# 9 support, including records and positional records, and property init accessors
- Some minor tweaks and improvements.
- Added support for C++ defaulted and deleted constructors, destructors and operators.
- Fixed issues with skipping attributes when commenting at the very top of a Visual Basic file, and within enums.
- Doc this Project/Solution now detect and skip additional forms of designer-generated files.
- Doc this Project/Solution will not document partial classes unless they match the filename.
- The batch-processing commands are now able to process methods and members implemented in the @code section within Blazor '.razor'
files, as well as inserting HTML header comments for these files if required.
- #pragma directives immediately prior to code elements are now treated like attributes.
- Upgraded a portion of the argument parser to improve handling of optional parameter defaults for strings, which
could occasionally cause the parser to produce partial results.
- Fixed an uncommon issue in emitted doxygen function declarations
- Fixed a batch processing issue in Doc all in File when intellisense is unavailable, which could lead to processing being
skipped rather than the built in parser fallback being used.
- Where updating a partial documentation comment, if the 'returns' entry is missing this will now be duplicated from
base class information when possible (as is already the case for param/tparam entries)
- Unnamed parameters in C++ methods are documented by Atomineer as (e.g.) 'parameter1'. When prototypes for these
methods are inserted they are now corrected to use the generated parameter name so that the prototype reflects
the parameters as documented.
- Fixed a rare bug in 'Delete all Doc Comments' which could cause the command to abort with an error.
- Corrected a small problem in live typing aid indentation handling when splitting a line immediately after an XML tag.
- Improved handling for regular multiline comments, including a fix for converting them into doc comments (a case where
a new comment could be inserted inside the existing one rather than replacing it)
- Improved the processing of attributes to handle additional nested code cases, such as C# object initialisers
- Small update for Atomineer Spelling
- If file header comments are configured using XML templates (rather than verbatim text), Atomineer will now treat them as doc
comments, and will update them in the same way as for normal doc comments.
- When formatted as doc comments, file header comments can now be edited in the Documentation Editor view.
- Breaking change: XML Docs 'cref' entries no longer use the type prefix letter (T:, M:, P: etc) by default. Although this
is the documented standard, the .net compiler adds these to the output automatically, and the recently introduced
CA1200 code analysis rule complains if the type prefix is specified in the source comment. In the 'Doc General' preferences there
is now an option to control whether XML cref references include the type prefix letter, should you need to turn this back on.
- When duplicating SeeAlso entries, Atomineer will now strip off type prefixes if the 'use type prefix' preference is disabled.
- In C# if the namespace for a cref is defined in a 'using' or 'namespace' statement it will no longer be included in the cref.
Note that to avoid having to scan the entire file, Atomineer will only look for usings/namespaces near the top of the file.
- Atomineer now recognises .razor files as containing C# so the code in them can be documented.
- Improvements to the Live Typing Aid when pasting into comments.
- (C++) Doc all in Chosen Files can now optionally include/exclude namespace comments. The default is not to document namespaces, to align C++
processing with all other languages, and avoid documenting namespaces more than once.
- (C++) the 'specialType' variable is now set to 'final' when appropriate for the current method.
- copydoc, copydetails and copybrief Doxygen entries are now treated in the same way as inheritdoc (they are preserved, and
no documentation will be generated for code elements carrying these documentation commands)
- Added a preference for controlling the indentation prefix for lists of items (e.g. param entries) in NaturalDocs comments.
- Several small updates to the preferences dialog.
- Reviewed and updated the User Manual and Website.
- Fixed an issue in inheritdoc support that was inadvertently caused by the new documentation duplication algorithm.
- Further improvements to documentation duplication (improvements to Property and Interface support, and gathering docs from additional sources).
- Added word-wrap support for doxygen/natural tables where '|' characters are used to delimit cells.
- Improved handling of an indentation case to ensure that indentation is correctly preserved.
- Rewrote the documentation duplication algorithm to improve matching of related documentation entries. In particular this enables
discovery of documentation from more complex inheritance trees and chains of derived interfaces.
- Performance optimisations
- Resolved an issue with auto-punctuation being incorrectly applied to some prototypes in Doxygen docs
- Added :UnixDir command for expanding %variables%, which converts windows directory separators into unix style separators, e.g. %filePath:UnixDir%
- Added :Match(regex) command which returns the part of the variable text that is matched by the regex between the brackets.
:MatchIC(regex) does the same but is case insensitive. See Page 77 of the user manual for full details and examples.
- Added :Strip(regex) command which removes all matches for the regex between the brackets from the variable text.
:StripIC(regex) does the same but is case insensitive. See Page 77 of the user manual for full details and examples.
Details of versions from 2009 to this date are archived here