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 2016

  • You can now choose to place comments after the code element declaration rather than before it. This is primarily intended for languages like Python where this is the standard documentation approach, but can be applied to any language. (Be aware that most external documentation tools don't support docs in these locations, or may require specific markup to relate comment to the code element). In C-style languages Atomineer allows the comment to be inserted between the declaration and the { scope brace, or after the opening { scope brace.
  • The Atomineer website now uses secure https connections throughout.
  • Fixed a bug in the documentation merge process where summary entries using a 'details' custom tag were not correctly merged with the generated summary, causing the original details to be marked as a deleted entry rather than being properly preserved.
  • Added a new attribute for template entries, _minTagLength="12", which allows doxygen users to control the extra padding added to the @commands to line them up into tidy columns. This attribute overrides the global MinTagLength preference on a per-entry basis for finer control.
  • The suppressInOut now works properly if set to 'true' rather than 'y'.
  • Testing with Visual Studio '15' preview 5.

September 2016

  • Document All... and Process All... commands will all now process C++ header files. (This feature was previously disabled due to difficulties in the way Visual Studio intellisense system works in headers. Atomineer now uses its built-in parser to handle headers, automatically working around the Intellisense issues)
  • Document All in this Scope now descends into child scopes of 'containers' such as classes and interfaces so it will now document entire files.
  • Fixed a small issue with the names for re-thrown exceptions in C++.
  • Improved handling of duplicated documentation containing embedded markup.
  • Resolved an issue that occasionally caused the first character of a description to be generated in lowercase.
  • Improvements to 'Delete Documentation from this File'.
  • Some important under-the-bonnet upgrades to our website.

August 2016

  • Improved alignment of [in,out] attributes on Doxygen entries. (The previous alignment behaviour can be reinstated by adding a preference to the <Doxygen> section, <AlignInOut value="false">)
  • Preference option <Doxygen><MinTagLength value="12"> can now be used to set a minimum width in characters for doxygen command tags. This can be used to achieve a columnar layout of doxygen comment blocks.
  • Added an option to remove seeAlsos from existing comments when updating them.
  • Improvements to Doc All in Scope.
  • Fixed a small regression in live typing aids when applied to the first line of /** ... */ comments.
  • Fixed a problem with removing entries marked as 'deleted' (###) from some comment block formats.
  • Addition/Removal of '(Optional)' prefixing now ensures correct casing of the following character.
  • Small improvement to parameter parsing logic for C++.
  • Doxygen: Atomineer no longer adds auto-punctuation to @copybrief entries.
  • When configred to with auto-insert #region/#endregion directives, 'Delete Docs from this File' now correctly removes the corresponding #endregion.
  • Tested on Windows 10 version 1607.

July 2016

  • Tested against Visual Studio 2015 Update 3.
  • (Visual Studio 2015 only) Added an option (see the new 'Live Aids' tab in the preferences, and the updated user manual) to highlight /// documentation comments by filling the background of the comment with a subtle colour (the defaults are beige for light colour themes and navy blue for dark themes). This can be used in addition to or instead of top/bottom separator lines to visually distinguish code form comments.
  • 'Doc All in this Scope' will now document any #define macros discovered in the processed source code.
  • Fixed two regressions in parsing of #define macro declarations which would cause incorrect output to be generated if a rare combination of preference options were configured.
  • Added an option to change the behaviour of typedef to better match C and C++ variations of usage, and improved handling of C-style unnamed types.
  • Fixed a bug in live typing aids that could leave spurious characters behind when generating a DocComment using a 3-character prefix which was not configured as the primary comment style's prefix.
  • Added the ability to emit a type attribute on return values. Added the preference option <DocComment><EmitParamType value="true"/> to force parameter/return types to be emitted in XMLDoc/JavaDoc/Qt comments if desired (previously this feature was only available for JavaDoc/JSDoc/JSDuck commenting). Added <DocComment><EmitParamTypeWithBrace value="true"/> preference to control whether these types are written as MyType or {MyType}
  • A small improvement to bullet-list continuation.
  • Added the ability for templates to be applied only to specific filetypes.
  • Improvements to handling of one-line and two-line doxygen/JavaDoc/Qt comments.
  • Improvements to pre-processing replacements when applied to #define macro definitions.
  • In cases where a VS Project is not being used (e.g. when using makefiles), project-relative roots can now be set by adding a <DocComment><RootPaths value="..."/> preference entry. This contains a semicolon-separated list of folder path names that you wish to treat as project root(s) to be stripped off any project-relative pathnames that you use.

June 2016

  • Parameter attributes can now be used in rules to generate documentation for parameters.
  • Added support for more attributes (most notably, the NotNull/CanBeNull resharper annotations for methods and parameters, and nUnit Fixture and Test attributes)
  • Added 'suffix=...' syntax to rules to allow additional comments to be appended to the generated description.
  • Improvements to Align into Columns. If a block is processed which contains a mixture of comment lines and code lines, only the lines matching the type of the line containing the cursor (code/comment) will be processed, so that comment lines can be skipped during the processing.
  • (Xml Documentation) Base class documentation references for overrides can now generate 'inheritdoc' rather than 'seealso' references. This new option can be set on the 'Doc General' preferences tab.
  • The Documentation Viewer will now view inherited documentation for methods/properties with valid <inheritdoc> references.
  • Exception documentation auto-deletion behaviour can now be enabled/supressed (on the 'Doc General' preferences tab).
  • Exception documentation will no longer be auto-deleted from comments in C++ header files.
  • Fixed cases where the (optional) prefix would be not be added as expected to parameter documentation.
  • Fixed a rare 'index out of range' bug in non-splittable-word handling.
  • Live typing aids now support creation of comments by typing '/**'

April 2016

  • Improvements to 'Delete Documentation' commands - Whitespace is now compacted after deletion, and end-of-line documentation comments (in standard // and /*...*/ formats) are now also removed. Also fixed a problem that could occur when processing single-line /**...*/ comments.
  • C++: Added support for 'final' and 'override' keywords.
  • Improved handling of rarely-used integral types (such as 'long long int')
  • Improved handling of <content> entries.
  • 'Document All in Chosen Files' has been renamed to 'Process All in Chosen Files' to better reflect its operation (it can be used to delete docs as well as create/update them).
  • 'Process All in Chosen Files' now has filtering options to allow you to control which types of code elements will be processed, so for example you can process all methods and/or skip all properties.
  • A small improvement to handling of some forms of end-of-line comments.
  • Tested against Visual Studio 2015 Update 2.

March 2016

  • Updated the installers to work around code signing issues. As of 1 January 2016 code signing must use SHA256 rather than SHA1 encryption. This means Visual Studio 2015 and Windows 10 may refuse to install extensions/applications unless they are SHA256 signed, yet earlier versions of Windows and Visual Studio may fail to regocnise the new signing. After considerable research we have been unable to find a solution that works in all cases, so we have had to take the unfortunate choice of providing multiple installers that target different versions of Visual Studio and Atmel Studio. We hope that eventually a solution can be found and the installers can be re-integrated.
  • Added more supported filetypes for Python code.
  • Fixed Indentation settings in VS2015 - After 2015 Update 1 Atomineer would always use spaces due to a change in the way the text editor option needed to be read. It will now use tabs if they are configured.
  • The spelling of "Initialise" (UK) or "Initialize" (US) now uses the %initialise% variable, which can be set for US or UK English using a new check box in the preferences. The default is now the US spelling. (Note that this does not affect the spelling used in Style-cop compatible comments, which must always use the US English variation).
  • The Documentation Viewer is now able to process XML <include> directives (as long as they are well formed and redirect to a valid XML element in a valid external documentation file - as described here). Includes can be placed as root-level items (providing a full or partial documentation comment) or be embedded within entries (providing a fragment of documentation text).
  • Improved parser to allow plain-text documentation comments prefixed with /// to be converted into fully formed doc comments.
  • Fixed a parsing problem on nested templates/generics which could cause declarations to become truncated.
  • C++: Fixed an issue on namespaced function-pointer parameters. (Name cleanup sometimes left additional text appended to the name).
  • Resolved a regression that caused types like 'const int' to be reported as 'int' in method returns %type% variable.
  • Resolved rare issues that could occur where end-of-line text after a #region directive was not being ignored by the parser, causing it to become confused.
  • Resolved an issue when generating a new end-of-line comment by typing /// would leave the /// in place.
  • Ported 'Hide Doc Comments using Outlining' command to VS2015 and re-enabled it.

January 2016

  • Atomineer now supports Atmel Studio 7.0 (Just run the .vsix installer to install into it)

December 2015

  • Improved Python support. In particular, classes and their member functions are now supported, documentation is generated for all known 'magic' functions, and the Doc All... commands all now support Python projects/solutions.
  • Implemented a workaround for the Visual Studio 2015 bug that caused Atomineer Spelling to become non-functional in the 2015 RTM.
  • Added %lang% variable, which can be used to apply rules only to certain coding languages.
  • Fixed a preferences bug that could cause custom PrefSets.xml files to grow each time the prferences were edited. (The fix will also correct any existing files when writing back preferences to ensure they are no larger than they should be)

November 2015

  • First public release of Python language support. Atomineer can now create and update documentation comments for Python function 'def's. Doc All in Scope/File can be used to automate documentation of a python source file (The other Doc All... commands are not yet supported, but are coming soon). Live typing Aids work within Python comment blocks much as for other languages (although there are some features yet to be implemented). The preferences also support language-specific preference sets for Python. (We'll continue to roll out additional features for Python next month. Please let us know if there is anything you'd particularly like to see in Atomineer's Python support)
  • Improved live typing aids. After going to a new line in a doc comment, Atomineer will usually add auto-indentation, but this is now removed automatically if you start typing a new documentaiton entry command, so that new doc entries are pulled back to the left of the comment block automatically.
  • Fixed separator clipping when used on multiline comments, which could sometimes clip away the closing */ of the comment block..
  • Improved handling of multi-word prefix removals.
  • Improved auto-punctuation control on exception entries.
  • Fixed a glitch with exception entries which rarely caused the exception entries to move to the bottom of the comment block rather than obeying the layout template.
  • Added a preference <DocComment><PunctuateBlankDescs value="false"/> which can be set to disable the auto-punctuation feature in cases where the description part of a doc entry is blank. (Atomineer usually adds punctuation in these cases to higlight the missing field of the doc entry and ensure that it's valid)
  • Improvements and clarifications for the user manual.
  • (Limited release beta build)

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.

Older versions

Details of versions from 2009 to this date are archived here

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