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:
Parameter
Auto-generated documentation
char *serialIOBuff
[in,out] If non-null, buffer for serial i/o data.
string userInfo
Information describing the user.
IdGroup programIds
List of identifiers for the programs.
CString config_fname
Filename of the configuration file.
int processIndex
Zero-based index of the process.
params object[] fmtValues
A 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'.
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.
Humans! AtomineerUtils provides a number of automatic formatting, word wrap and
punctuation facilities to make comments tidy and readable for humans too.