Follow us on Twitter

Atomineer Pro Documentation Development Summary

This extension began development in 1996 (for Visual Studio C++), and has been evolving and improving through constant use by software professionals ever since. More recent developments are listed below...

October 2014

  • Improved the generated descriptions for enums and bitfields, and added an <Enums> rules section. As for other types, the preferences 'Doc Advanced' section now also includes a button to allow you to easily edit the enum rules.
  • When documenting within an enum, the %containingClass% variable will now contain the enum name, if it is available from intellisense. (In this context 'containingClass' is not a terribly accurate name any more, but has been retained for backwards compatibility)
  • Added the %namespace% variable.
  • Attributes applied to Classes and Structs are now available for use in rules, in the same way as they already were for Methods.
  • Classes and Structs tagged with [Description] attributes will now use the description text as the summary for generated comments.
  • Methods, Properties, Classes and Structs tagged with [GeneratedCode] attributes are no longer documented by Atomineer.
  • Typing '///' within an enum scope now adds doc comments to enum-members.
  • Improved handling of covariant/contravariant generic type parameters.
  • Fixed a parsing issue on enum entries which could result in the wrong style of comment being inserted.
  • Fixed a minor problem in end-of-line comment insertion which could occasionally cause it to incorrectly truncate the line of code.
  • Fixed location of the inserted namespace comment when cursor was immediately inside the namespace's opening brace.
  • Improved documentation of casting operators.
  • Logic for DocXml <remarks> was interfering with Doxygen processing of @remarks. This has been corrected.
  • Improved documentation output for PHP methods.
  • Auto-conversion of < and > into XML entities (&lt;, &gt;) now supports embedded XML comments and CDATA sections.
  • Atomineer Spelling: Improved performance on extremely long words. Fixed an error reported when deleting all text from a file. Additions to the coding jargon dictionary.

September 2014

  • Preferences now uses friendly dedicated editors for user variable, non-splittable word and replacement word lists.
  • Added support for Visual Basic 'properties with parameters'. Additional params are now added as <param> entries. (if a parameter is named 'value', it is ignored as this special parameter is already documented by the <value> entry)
  • Improvements to parsing of VB code (special cases added to handle more syntax variations).
  • Updated the installer and preferences windows, which could appear blurry on high DPI monitors in Windows 8.1.
  • Added support for using /*...*/ delimiters on single-line doc-comments.
  • Fixed an issue in the preferences where switching between Language preference sets could lose some Doxygen (JavaDoc) settings.
  • Improved handling of method access levels (public members of an internal class are now considered internal)
  • A number of improvements to exception parsing and class rules.
  • NotImplementedExceptions are no longer documented.
  • Added a preference to force Atomineer to always preserve all exception documentation. This is not currently supported in the Options dialog, but can be added to the Prefs.xml manually if needed.
  • Param 'type' attribute now support generic/template types.
  • Improvements to duplication of base-class or overload documentation.

August 2014

  • Added 'Non-Splittable terms' to the rules. This informs Atomineer of special terms like 'IPv4' and 'PowerPoint', which Atomineer's generalised heuristics would normally break into several words, so that the correct formatting and capitalisation is retained for these special terms. A new button has been added to the Atomineer Options ('Doc Advanced' Tab) to allow custom terms to be added. Please let us know if you discover any common terms that ought to be added to the default dictionary, and we'll add them to the master Rules.
  • Upgraded 'Doc all in Chosen Files' to be capable of deleting doc comments from processed files, allowing entire solutions to be processed in batch mode.
  • Improved reporting of skipped source files in 'Doc all in Chosen Files' in cases where intellisense is unavailable for a file (this is usually because the file has not been successfully compiled).
  • Fixed a special-case failure in the Delete Doc Comments command when using an embedded 'end of comment' sequence */ in the separator of a doc comment, e.g. a top separator of the form /****//**. Atomineer would see this as the end of the comment, and incorrectly leave the second 'part' of the doc comment undeleted.
  • Fixed a refactoring glitch that caused 'tparam' and 'typeparam' entry tags to be emitted incorrectly (tparam incorrectly appearing in DocXml, and typeparam in doxygen)
  • Fixed an issue that caused 'type' attributes to be added to param entries for languages other than TypeScript/JavaScript under some circumstances. Although this is now disabled by default, if you wish to have type attributes for your param entries, there is now a preference to enable this behaviour.

July 2014

  • Improvements to the TypeScript and JavaScript language syntax support.
  • TypeScript, JavaScript, and JScript code: Added initial support for JSDoc and JSDuck documentation syntax, in particular for parameter and returns markup. Atomineer now supports {types}, [optional] and [optional=default] syntaxes in these entries. In addition, if types are specified in Typescript code, Atomineer now incorporates them into generated documentation.
  • Added a 'parent class type' variable that indicates if a parent structure is a class, struct or interface during rules processing.
  • Small improvements to stylecop support and rules.

June 2014

  • Added initial support for TypeScript, JavaScript, JScript and PHP. We've tried to test against a wide range of scripts, but please let us know if you find any syntax variations that our parser struggles with. We'll be working on additional documentation entries/attributes to further support documenting these languages in upcoming releases.
  • Atomineer Spelling: Performance improvements for check-as-you-type functionality (particularly when undoing/redoing typing), and some dictionary improvements.
  • Added support for Atmel .ino files (which are now treated as C++).
  • Improved <Set> Rules commands. These used to only be able to set 'desc', but now can set any variable (other than continue or abortComment) to a new value. Usually this is combined with 'continue', e.g. <Set isOptional="y" continue="y"/> to alter the flow of or output from following rules.
  • Parameter In/Out and Optional description generation can now be disabled in the default rules by setting the variable suppressInOut="y" in your custom parameter rules.
  • Fixed a regression (caching bug) that meant new custom entries added to the rules were not fully picked up until the next restart.
  • Improved handling when a group of several custom elements of the same type are used in a comment.
  • Improved support for end-of-line comments in VB.
  • Fixed an errant event handler in the preferences that stopped the Doc Formatting tab updating correctly when switching between different language preference-sets.
  • Small improvement to parsing of attribute content.

May 2014

  • Added support for C# generic covariance and contravariance. The <TypeParameters> rules can now use the variables %isIn% and %isOut% to produce more meaningful documentation if desired.
  • Rules for Classes can now use the variables %isStatic%, %isPartial%, %isSealed%, %isAbstract%, %isGeneric%, and %isTemplate%, which are set to 'y' or 'n' as appropriate)
  • Rewrote a portion of the Visual Basic parser to fix some parsing glitches and add support for a few additional keywords. Improved documentation generation for VB event handlers.
  • Some small improvements to C/C++/C#/Java parsing
  • 'Doc All in Project/Solution' commands will now process C++ files with .cc and .cxx filename extensions.
  • The Preferences dialog will now warn if it is unable to expand environment variables on the Prefs Storage Search Path.

April 2014

  • Atomineer now includes the new Atomineer Spelling extension (Beta) for Visual Studio 2010, 2012, and 2013. This provides spell checking as you type in comments. Follow the link above for more information on installation and usage.
  • Auto-punctuation now detects and cleans up accidental double periods ('..') at the end of a comment.
  • Improvements to conversion of legacy JavaDoc comments.
  • Improvements to StyleCop compatibility mode (Atomineer now ensures a blank line prior to single-line and enum-entry comments; A <content> entry is now used on partial class declarations that don't match their filename - this ensures that all partial class parts except for the main one have an XML doc comment to satisfy StyleCop, but do not contribute chaff to the generated documentation. The main part of the partial class is documented as normal).
  • Improved the undo experience after insertion of comments when typing /// or '''.
  • Fixed a regression that stopped Interface documentation being correctly duplicated.
  • Fixed a glitch in generation of seealso entries for methods with optional parameters.
  • Added 'see' as an accepted alias for 'sa' in Doxygen comments.
  • Fixed duplicated interface name in seealso when generated from an explicitly implemented interface member.
  • Fixed a few rules that used an incorrect matching pattern and thus produced unexpected descriptions.
  • Stopped '\commands' being split across two lines in doxygen comments if the \ happened to occur on the last usable character column in the first line during word wrapping.
  • Fixed a poorly reported error when attempting to update a file header comment during debugging.

March 2014

  • Inheritdoc support. Updating doc comments containing 'inheritdoc' entries now disables duplication of documentation from base classes and auto-generation of new doc entries, so that the inheritance is correctly preserved.
  • Added an option to the 'restrict documentation by access level' feature. Previously, comments that were not allowed under this restriction were automatically deleted. This option can now be disabled (via the check-box at the bottom of the Doc General tab of the Options), in which case Atomineer will simply ignore any existing comment on restricted code elements.
  • Fixed an issue in 'Document All in This Solution' where sub-projects were sometimes skipped during processing. Some improvements to Output window reporting during processing.
  • Fixed a broken help link in the preferences dialog.
  • Fixed a case where %containingclass% could lose generic suffixes from the classname.
  • Fixed a parsing glitch in seealso generation for generics, which could add junk entries for the 'where' clauses in cases where intellisense data was unavailable.
  • The documentation rules no longer generate '[in,out]' or '(optional)' in StyleCop compatibility mode.
  • Tested and updated for compatibility with Atmel Studio 6.2.

February 2014

  • The Atomineer rules now support user-configurable text for 'true', 'false', 'null' and 'nullptr'. To configure different text from the default (true, false, null, nullptr), go to the Atomineer options, Doc Advanced tab, and click the 'User %variables%' button. Edit the variables for true/false/null/nullptr - e.g. to output 'true' as "<c>true</c>" use "&lt;c"gt;true"lt;/c"gt;"
  • Exceptions thrown within properties are now documented.
  • Resolved a rare installation situation where VS would not pick up the addin after installation.
  • Fixed a tiny bug in conversion of // comments into summary documentation, which could cause parts of URLs to be 'lost' during the conversion.
  • Fixed a failure caused by a regression in parsing a C# code element when preceded by an attribute on a single line
  • Fixed incorrect use of tabs rather than spaces (when configured in Visual Studio editor settings) in C++ accessor generation and end-of-line comments.
  • Fixed a case with single-line enum value comments in DocXml format when using a multiline C++ comment style, where the documentation entry was emitted without comment /* ... */ delimiters.
  • Fixed a glitch that could occur in handling of parameters after some forms of regex pre-processing.
  • We suffered a catastrophic hardware failue this month and it took a lot of time to resurrect our systems from our backups and then test our new builds to be sure that everything still works. We were hoping to deliver a major new feature for this release, but this has unfortunately had to be deferred for a bit... watch this space!

January 2014

  • Happy New Year! We wish you all the best for a great 2014!
  • Added Attribute auto-doc support. For each attribute applied to the code element being documented, Atomineer now creates an 'attr-???' variable for use in the Rules, containing the parameter-list for the attribute (e.g. [Conditional("DEBUG")] will generate a variable 'attr-conditional' with the value 'DEBUG'). To support this in Rules, you can now use tests of the form <If defined="attr-name"...> to test if a variable is defined. This is used by new rules to extract data from attributes and include it in the generated documentation text. For example, if the conditional attribute above is assigned, Atomineer will now prefix the summary documentation with '(Only available in DEBUG builds)'
  • General improvements to conversion of double-slash comments into doc summaries. In addition, double-slash comments are no longer converted into summaries if they appear to be commented-out code.
  • Popup reports will no longer be split across screens on mulit-monitor systems.

December 2013

  • Added new 'Doc All in Chosen Files' command. This offers a front-end user-interface for the other Doc All commands which allows you to set a number of additional options before the documentation process begins, including file filtering and greater control over what documentation is generated. It also provides a new documentation mode, to document all open files.
  • Updated preferences now allow you to customise Atomineer Menus. This allows you to remove unwanted items from the Tools > Atomineer menu and also to show extra commands on the Text Editor's context menu if you wish. These new options are in the 'General Settings' tab of the preferences.
  • Doc All... and Delete Documentation commands now report information on the projects, files and code elements they have processed. This is shown in the Visual Studio 'Output' window (choose 'Atomineer Pro Documentation' entry in the 'Show output from' combo box to see this output)
  • Doc All... commands now report completion using a temporary "tooltip" style window, which disappears automatically after a few seconds or if it is dismissed with a click.
  • Changed the way Atomineer inserts text into the document in some cases to work around a problem in VS 2013 where certain other addins were occasionally found to interfere with the insertion process.
  • Added 'ClassDecl' regular-expression preprocessing, which works exaclty like the existing 'MethodDecl' preprocessing, but for class/struct/interface members.
  • Fixed a glitch in derived documentation duplication that sometimes caused a param entry to be added twice.

November 2013

  • Fixed a bug introduced in v8.10 when handling C++ projects. A small additional check added in the menu-item state code in 8.10 was requesting Intellisense information from Visual Studio, sometimes causing an Intellisense loading-progress dialog to be shown momentarily, which in turn closed the menu, making it impossible to open the Atomineer menu. This check has been removed and the menu now operates correctly once more.

October 2013

  • Added 'Doc all in Project' and 'Doc all in Solution' commands. These allow you to update documentation for thousands of code elements in a single pass, which is particularly useful when converting legacy documentation to a new style. Note that this processing can take a considerable amount of time on a large project/solution, and is not undoable.
  • New algorithm for 'Doc All In Scope/File/Project/Solution' processing: Under some circumstances the Visual Studio Intellisense information used by these commands could become slightly out of step with the source code during processing, causing Atomineer to miss occasional code elements out. The core processing algorithm has been completely rewritten to resolve this issue.
  • Significant speed-ups to all 'Doc All in...' commands.
  • 'Doc All in Scope/File' commands all now create a single undo step for their processing rather than an undo step for each code element documented.
  • Improved 'Doc All in...' handling of enum entries.
  • Improved 'Doc All in...' status line progress handling.
  • Added 'Delete Documentation from this File' command. To be used with care, this command deletes all documentation comments from a source code file. This can be useful for stripping away legacy documentation or forcing a complete regeneration of documentation (when used with Doc all in File)
  • Added support for __declspec() on classes in C++
  • The Documentation Viewer window now reopens on startup if it was open when Visual Studio last quit.

September 2013

  • Added a tutorial to the website, Making the Most of Atomineer.pdf which offers a number of hints and tips about how to get the best results out of Atomineer.
  • Upgraded the 'word wrap comment' feature to detect most forms of 'separator' line at the top and bottom of comments and exclude them from the word wrapping pass.
  • A small improvement to the auto-punctuation feature to suppress spurious punctuation in one rare case
  • A small improvement to generation of file header comments in 'Doc All in this File'
  • Began adding support for MVC code. If you use MVC and find examples of MVC-specific classes or methods that Atomineer does not document well, please let us know so we can improve our coverage of these cases.
  • Many improvements to the rules, especially in cases where generic/template types are used.
  • Improved the a/an autocorrection algorithm.
  • Added two 'inverted' (white on black) colour schemes for the documentation viewer.
  • Added a preference (not exposed in user interface) that allows Atomineer to correct the behaviour of other addins that incorrectly add their menu items into the Atomineer menu. If you experience this problem, please contact us for details of how to enable the workaround.

August 2013

  • Atomineer has now been verified compatible with Visual Studio 2013 Preview. (But please let us know if you find any unexpected behaviour in VS2013). To get Atomineer working in 2013, just run the 8.05 installer to update as normal - there is no need to uninstall first.
  • The installer now displays the version number (and '(Trial)' for trial versions) in its title bar so you can easily see which version you are about to install.
  • The installer will now warn you if you attempt to install over a full version with a trial version.
  • Fixed a loophole in the installer that allowed users to inadvertently install two or more copies of Atomineer (when changing the install location without uninstalling first). This could lead to Visual Studio running the old version, and the installer no longer appearing to update anything.
  • Some refactoring of the installer code.
  • (Limited Beta release)

July 2013

  • Atomineer is now fully code-signed to provide proper company information in UAC prompts during installation, and confidence that the addin has not been tampered with since leaving Atomineer.
  • Updated the 'configuring Atomineer' tutorial to describe the new preferences user interfaces.
  • Shuffled a couple of preference items to more logical places in the preferences dialog.
  • Fixed a small glitch in backwards compatibility for VB preferences
  • Added a 'clip column' preference for the separator lines, allowing them to be clipped at an absolute column so that indentation of the comment block does not cause the right hand side of the block to extend any further to the right. By default clipping is disabled, but if enabled it is usually set to the same column as the word wrap column to give a consistent block layout and ensure that none of the comment flows out of the desired display/print boundaries - but some users may prefer to extend the separators a couple of characters beyond the word wrapping column.
  • Fixed a rare bug in the word wrapping (on the first line of flowed entries, when the previous entry text started with a blank line, too much text to be added to the first line, causing it to flow past the wrap column)
  • Fixed a minor parsing glitch when commenting operator<= and operator<<, which caused them to be incorrectly treated as a generic in one processing pathway.

June 2013

  • Significantly redesigned the Atomineer preferences window layout, exposing a couple of new preferences, adding a welcome page and embedded help links to the Atomineer website.
  • Documentation system, formatting and layout preferences can now be configured separately for each code language directly within the preferences dialog. (This was possible in the past using per-solution/project Rules Paths, but is now considerably faster and easier to set up, and applies on a per-source-file basis so you can work in mixed codebases much more easily).
  • Reskinned the preferences and wizard forms to the new Atomineer graphical design.
  • Fixed a generic parameter parsing glitch in Visual Basic.
  • Improvements to the parsing of properties and exceptions in Visual Basic
  • Added optional support for converting Doxygen ///< or /*!< ... */ end-of-line comments on enum entries and variables into regular XML documentation comments. (If you would like to use this conversion, please email us for details of how to enable the feature)

May 2013

  • Oops! Removed a debugging behaviour that slipped into the last release, which was causing the documentation viewer to reopen whenever Add Doc Comment was executed, if you had previously closed the view.
  • Added handling for '@' prefixed strings in parameter attributes.
  • Added the Documentation Viewer. This displays documentation comments in a human readable style (similar to the sort of output you can generate with tools like Sandcastle, Doxygen, and JavaDoc) so that documentation can be easily browsed as cursor moves through source code.

Older versions

The version history for versions prior to this date is archived here

Copyright © 1996-2014 Atomineer. All Rights Reserved. Any trademarks reproduced in this text are the property of their respective owners. Contact us