at*mineer

productsreviewsuserguideskinsfaqchangesdownloadlogin

AtomineerUtils Add-in for Visual Studio 2010, 2008 & 2005

AtomineerUtils for Visual Studio provides unsurpassed code documentation (DocXml, Doxygen and JavaDoc) comment generation, updating and conversions, as well as several handy outlining, code generation and clipboard commands.

AtomineerUtils supports C#, Visual Basic, C++/CLI, C++, and C code

  • Save time - save effort - save money.
  • Eliminate almost all the drudgery of filling in documentation.
  • Effortlessly keep code and documentation in sync.
  • Encourage better coding, naming and documentation practices.
  • Speed up development and reduce errors with intellisense help on all your own classes and methods.
  • Easily satisfy Code Analysis and Static Analysis requirements for documentaion.
  • Convert and update legacy documentation into a new standard.

Features - Document code better faster tidier cheaper

With a single keypress or menu command, the add-in can:

  • Create or update highly configurable DocXML, Doxygen or JavaDoc-format documentation comments for code elements (file, namespace, class, interface, struct, enum, variable, property, event, delegate and function) in your code. This includes advanced support for automatically documenting all parameters, generic type parameters, thrown exceptions and return codes, automatically making use of existing documentation from related base class and override methods/properties and existing parameters within the same class, generating accurate and specialised documentation for hundreds of common function, class and parameter types. Comments can be converted between the supported formats to update legacy documentation to a new standard. It can also optionally reformat the updated text using automated indentation and word wrapping to keep your code documentation accurate, informative and tidy with a minimum of effort on your part. An absolutely essential tool for any team wishing to write maintainable code.
  • Automatically document/convert every code element within a namespace/interface/class/struct/enum scope.
  • Word-wrap the text in a block comment.
  • Hide all documentation comments and/or attribute declarations using Visual Studio's Outlining facility.
  • Auto-generate a C++/C skeleton implementation (in your source file) from a declaration (in a header).
  • Open the matching header for a given C++ source file, or the matching source file for a given header.
  • Add a C++/C declaration to your header for any existing method implementation.
  • Create C# Auto-Properties, Explicit Properties or C++ Accessor functions from member variable declarations.
  • Copy code to the clipboard in a clean format ideal for use in applications such as when writing Word .doc Documentation, or emailing examples to team members.

Documentation - what's so special about that?

For teams of developers to work on a product, they need to efficiently transfer information about their classes and methods to each other. Even a lone programmer will forget the finer details of code he wrote weeks ago. When you're writing code that calls a method, you don't want to waste time jumping to the code for that method to read it and work out what it does and how to call it. Documentation comments allow you to see that information as an intellisense tool-tip display as you type - the purpose of a method and details of the parameters and return value. This significantly improves productivity and reduces errors.

In addition, tools like SandCastle and Doxygen can be used to generate professional external documentation like that used in MSDN - essential for libraries and other code that will be shipped to third parties, as well as being very useful for internal use by your team.

There are just three problems:

  • Writing documentation is very time consuming
  • Programmers usually prefer to write code than documentation - so the documentation suffers
  • Even dedicated documentors will find their comments often get 'out of sync' with the code

AtomineerUtils auto-generated documentation confers a number of benefits:

  • It provides the raw block skeleton instantly, in a standardised (but user-configurable) format
  • It minimises the effort involved in documenting. A high proportion of documentation content is repetitive and easily filled in by the computer rather than the developer. Although you often have to tweak and augment the comments AtomineerUtils provides, it's usually impressively close to what you need, thanks to AtomineerUtils' advanced heuristic approach. This saves a lot of developer time and encourages developers to document their code well, because it is almost effortless.
  • AtomineerUtils automatically keeps the documentation accurate when parameters, return values and thrown exceptions are changed in a method, or get/set accessors are added to a property. This is the only realistic way of keeping documentation 100% in sync with the code.
  • Doc comments are picked up instantaneously by Visual Studio to give you the information in intellisense tool-tips as you type method-calls. ('Self-documenting code' is great, but you have to visit the code and read it to work out what it does - very inefficient compared to just reading the documentaiton as you type the call).
  • It keeps documentation and surrounding code tidy by enforcing line breaks, formatting, element ordering, indentation, auto punctuation and word wrapping. All these options are highly configurable so it's easy to generate comments in the style you prefer.
  • It encourages higher quality code - Good descriptive names usually auto-generate most of the documentation comment for you, while poor names leave you with more work to complete the documentation, so AtomineerUtils actively encourages a better coding style.
  • It encourages developers to write documentation and keep it up to date. Programmers want to write code, not docs, so minimising the time and effort involved in documenting raises morale and improves the quality of documentation.

Put simply, AtomineerUtils raises developer morale, increases code quality, and typically saves thousands of dollars per developer per year.

What makes AtomineerUtils Documentation so special?

AtomineerUtils doesn't simply regurgitate the name of a code element with a simple word re-ordering. It tries to generate meaningful documentation based on naming, types, context and existing documentation. Here are some examples of the comments that AtomineerUtils will generate purely from the name and type of a parameter:

ParameterAuto-generated documentation
char *serialIOBuff[in,out] If non-null, buffer for serial i/o data.
string userInfoInformation describing the user.
IdGroup programIdsList of identifiers for the programs.
CString config_fnameFilename of the configuration file.
int processIndexZero-based index of the process.
params object[] fmtValuesA variable-length parameters list containing format values.

And so on... AtomineerUtils will often generate even better documentation when it recognises the context of the item it is documenting (the method name, its signature and attributes, overloads and overrides, and even similar parameters that have already been documented elsewhere in a class). For example, if a method is 'float CalcRecip()', AtomineerUtils documents the return type as 'The calculated reciprocal' rather than anything unhelpful like 'a float'.

For more examples of classes, methods, parameters and return types see: DocXML format comments and Doxygen format comments.

Compatibility

The add-ins are compatible with Visual Studio (Standard, Professional, Premium, Ultimate and Team System) 2010, 2008, and 2005 (32/64 bit WinXP, Vista, and Win7). They are not compatible with Visual Studio Express Editions which unfortunately do not support Add-ins. The commands can be used by developers working with C#, C++/CLI, C++, C and Visual Basic code, with specific support for common (.Net, MFC, STL and K&R) coding and naming conventions.

AtomineerUtils understands how to document files, namespaces, classes, interfaces, structs, functions/methods/subroutines, constructors, destructors, finalizers, properties, indexers, operators, delegates, events, C++ macros, enumerated types, typedefs, variables, generics, templates, return types, parameters, type-parameters, and thrown exceptions.

The documentation comments are compatible with the following systems:

  • Documentation XML (DocXml) format as supported by Visual Studio, Intellisense, and the SandCastle documentation builder.
  • Doxygen and JavaDoc formats.
  • Humans! AtomineerUtils provides a number of automatic formatting, word wrap and punctuation facilities to make comments tidy and readable for humans too.

 
Copyright © 1996-2010 Atomineer. All Rights Reserved. Contact us