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...

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.

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

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