Follow us on Twitter

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. More recent developments are listed below...

October 2015

  • Finished porting 'Add Property' and 'Add Access Method' into the Visual Studio 2015 extension.
  • Updated the user manual for Windows 10.
  • Added support for C# Code Contracts.Requires() statements - these now generate/update exception entries in a similar way to throw statements.
  • Improved parsing of C++ exception 'throw' statements to cover a previously unsupported syntax.
  • Fixed a rare glitch in parsing doxygen multiline comments.
  • Significantly improved the entry aliasing system. This previously allowed you to easily convert legacy formats to the Atomineer format (by adding an _aliases='name1,name2,...' attribute on template entries) so that legacy entry names (e.g. 'throws') could be converted to the Atomineer form ('exception'). However, you can now set a custom tag name so that Atomineer will work natively with the legacy format. For example, add _tagName='throws' to an <exception> template to make Atomineer generate 'throws' rather than 'exception' entries, while retaining all the built-in support for auto-generating and updating these entries.
  • Improved handling of Doxygen entries with optional descriptions.
  • Please note: This month we have discovered two serious bugs in Visual Studio 2015 (both introduced in the final release version and not present in the preview versions) which unfortunately affect Atomineer. (1) under some circumstances intellisense information is unavailable (this primarily affects generics and classes defined in external assemblies, but can affect other cases), so duplication of base class documentation (and sometimes document all in... commands) do not always work as expected. (2) causes Atomineer Spelling to cease highlighting of spelling mistakes. We hope that these bugs will both be resolved by Visual Studio 2015 Update 1 (expected to be available soon). However, in case this does not happen we are investigating a revised implementation of the spelling checker to work around the bug. In the meantime we apologise for any inconvenience this may cause.

September 2015

  • A quick release to resolve an issue in VS2013 and earlier where some users were unable to open the preferences. This was due to a small installation change required to support VS2015. Many apologies to those who were affected by this issue.
  • Fixed an issue with parsing of C++ variadic function arguments.
  • Resolved problems with VS2015 installation due to the way the Microsoft VSIX installation/upgrade system and version numbering work.

    We have unfortunately had to make a breaking change to the extension GUID to fully resolve the install problems. If you have already installed Atomineer into VS 2015, please uninstall it from the Tools > Extensions and Updates menu, and then double-click the new AtomineerProDocumentation.vsix file to install the new version. It will not be necessary to do this for future releases. This need to fully re-install does not apply to Atomineer installed into Visual 2013 or earlier. Please accept our apologies for this inconvenience.
  • The Atomineer version number has been incremented from 9.04 to 9.15 to resolve issues with some websites which do not handle our old version numbering system well.
  • Resolved 'Rules file not found' errors in Visual Studio 2015 after uninstalling and reinstalling Atomineer.
  • Improvements to parser robustness when presented with malformed XML comments.
  • Added preference to describe a class in either the form 'Class' or 'Namespace.Class'
  • Added prefix-removal support for prefixes that include numerical values, e.g. 'u32'
  • Added %solution% variable, which expands to the name of the Solution containing the file being documented.

August 2015

  • Upgraded our development systems to TFS 2015 & VS 2015 on Windows 10.
  • Tested and updated all Atomineer apps for Windows 10 compatibility.
  • Fixed a DPI scaling issue in the setup Wizard.
  • Improved the vsix installer for Visual Studio 2015.
  • Fixed a signing problem that caused the 2015 trial to expire immediately on some PCs.

July 2015

  • Updated Atomineer release for Visual Studio 2015 (now out of beta).
  • Released trial version of Atomineer for Visual Studio 2015.
  • Updated Atomineer Spelling to support Visual Studio 2015.
  • Significant improvements to the 'Word Wrap Comment' implementation to support more languages and also to allow it to process Documentation Comments. While Add Doc Comment includes word-wrapping in its processing, it also adds/removes entries and specialised line formatting for different entry types. Sometimes you may just want to simply word-wrap the text in a doc comment, and this is now possible by executing 'word wrap comment' on the doc comment instead of 'add doc comment'. The word-wrapping behaviour of Add Doc Comment itslef is unchanged (i.e. if you execute it on a regular comment, it drops down to executing 'word wrap comment' on it for convenience)
  • Fixed a parsing glitch when processing Typescript member variables.
  • Fixed a problem with Implement/Declare Method when applied to operator declarations.

June 2015

  • Performance improvements when commenting methods.
  • Added new template attribute: _tagName="name" allows you to specify a custom tag to represent an existing entry (for example, <exception _tagName="throws"/> will cause Atomineer to use the name 'throws' instead of 'exception' for its entries.
  • Added new template attribute: _aliases="name,name,name..." which allows you to specify additional tags that Atomineer will read as being the same (e.g. <exception _aliases="exceptions,throw,throws"/> will allow Atomineer to convert any of those entry names to 'exception').
  • For foreign language documentation, added new user variable, %except-passprefix%. Set this to the text you normally use as a prefix on exception descriptions when they are passed through a method from a subroutine, so that Atomineer can detect these 'passed' exceptions and preserve the desriptions even when it can't see the exception being thrown in the method body. The default value is 'pass' to handle cases like 'passed if' and 'passed when'. e.g. for German, you might use 'Wird weitergeleitet'.
  • Added new commands for variable expansion. %variable:SafeGen% converts template/generic <> characters in the variable into {} characters so they can be safely embedded in XML comments. %variable:AsSee% wraps the variable value in a <see cref='xxx'/> block.
  • C++ #define macros are no longer commented if they merely define a symbol without assigning a value to it. This stops Atomineer documenting macros used to provide 'include only once' functionality in headers.
  • More improvements to TypeScript/JavaScript parsing, in particular for more complex forms of parameter declarations.

May 2015

  • Improvements to the support for Typescript & JavaScript
  • Rewrote the user manual into a PDF format, integrating the tutorials and other information to form a single document

March 2015

  • Apologies for skipping the February release. This was due to the work we had to put in to support new tax laws in January, and the considerable work and testing needed to bring Atomineer to Visual Studio 2015.
  • Major Upgrade: This is the first release of the Atomineer Beta for Visual Studio 2015 (compatible with CTP 5 and 6). In order to support 2015 the Atomineer Add-in has been rewritten as an Extension, which also affects the installation process. The existing installer is used as normal for versions of Visual Studio up to and including VS 2013, but for VS 2015 (onwards) there is now a separate installer which uses Microsoft's standard 'VSIX' Extension installer system. To install this into VS 2015 please double-click the 'Atomineer Pro Documentation.vsix' file in your downloaded .zip file. An updated User Guide covering this new version in more detail will appear on our website soon.
  • Performance and accuracy improvements in the parser's code-type recognition system.
  • Improvements to the Visual Basic sub/function/property declaration parsers.
  • Small improvements to prefix stripping algorithm.
  • Fixed a problem in live typing aids where tabs were sometimes interpreted as newline characters.
  • Improved C++ handling of 'extern' scopes, which were interfering with the operation of comment creation when typing '///'

January 2015

  • Improvements to parsing and handling of C++ templates.
  • Fixed a small regression that affected the parsing of C++ function-call operators.
  • Improvements in the operation of Align Into Columns when used at the start of lines.
  • Single-line doc comments are now word-wrapped if you update them.
  • The 'Convert Entities' preference is now saved in language-specific pref sets.
  • Our conversion from an Addin to an Extension (to support Visual Studio 2015) has been completed, and is now undergoing testing.
  • Some changes to our website and pricing necessitated by changes to European tax law.

December 2014

  • Tested with Visual Studio 2013 Community. No compatibility problems were found.
  • Live typing aids are now available in Typescript, JavaScript and JScript files.
  • New live typing aid: Atomineer can now optionally override tab and shift-tab to navigate the cursor quickly to the next/previous documentation entry within a doc comment. See the 'Other Features' tab of the preferences (Live Typing Aids section) if you wish to try this new option.
  • Improved updating of end-of-line doc comments
  • Improved conversion from end-of-line comments to regular doc comments
  • Improved handling of type="" attributes for optional parameters.
  • Added support for the optional (header reference) elements in doxygen '\class' entries. There is a new preference (on the 'Doc General' tab) to enable this additional information.
  • Added rules for WPF dependency properties.
  • Many small improvements to the Atomineer website, including support for high DPI displays.

November 2014

  • Improved the generation of operator descriptions for explicit operators.
  • Improved handling of [in,out] tags on parameter descriptions, and added processing variables to allow the output to be controlled more easily.
  • Fixed a small issue in the preferences which stopped settings from the Quick-Set wizard being picked up when returning to the prefs dialog.
  • A small tweak to improve the handling of global-scoped parameter types in C++.
  • Improved switching between different preference sets for diffferent projects and solutions.
  • Description attributes are now picked up from interfaces.
  • Fixed a case where class comments could be auto-punctuated with a double full-stop.
  • VB: Improved comment updating when a doc comment joins directly onto a single-line comment.
  • We've also tested against VS 2013.4 and have been working on support for Visual Studio 2015, which necessitates conversion of Atomineer from an Addin to an Extension.

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.

Older versions

Details of versions from 2009 to this date are archived here

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