- Fix incorrectly reporting files containing disabled formatting as
being formatted.
- Fix incorrect handling of quoted arguments in the options file (#321).
- Fix error in identifying an enum return type as an enumeration
(#322, 323).
- Fix error in identifying an enum argument as an enumeration (#327).
- Fix recognition of Qt keywords when used as variables in C++ (#329).
- Fix recognition of a pointer in a C++ cast (#316).
- Fix removing trailing whitespace after a changed pointer or
reference cast.
- Add new bracket style option "style=vtk" (#155).
- Add new option "indent-preproc-block" to indent blocks of preprocessor
directives (#21, #114, #229, #242, #294).
- Add new option, "dry-run", to run AStyle without updating the files
(#184, #285).
- Add new options, "html" (-!") and "html=###", to display the HTML help
documentation in the default browser.
- Add tags "*INDENT-OFF*" and "*INDENT_ON*" to disable formatting of
source code blocks (#2, #47, #55, #78, #110, #176).
- Add tag *NOPAD* to disable selected formatting on a single line.
- Add '__attribute__ ((visibility ("default")))' to Linux exported functions.
- Remove option "style=ansi" and make it depreciated (#146).
- Remove fix for broken 'case' statements from release 2.02.1, Nov 21, 2011.
- Improve Korean translation (#256).
- Change shared libraries to include the version number as part of the
file name (#264)
- Change "help" display to stdout to allow piping and redirection (#63).
- Change "version" display to stdout.
- Change headers to include foreach, forever, Q_FOREACH, and Q_FOREVER
(#98, #154).
- Change compiler definition ASTYLE_NO_VCX (no Visual Studio exports) to
ASTYLE_NO_EXPORTS.
- Change shared library error handler argument from "char*" to "const char*".
- Fix not recognizing noexcept, interrupt, and autoreleasepool as
pre-command headers (#225, #259).
- Fix formatting of C++11 uniform initializer brackets (#253, #257,
#260, #284).
- Fix to not automatically space pad C++11 uniform initializer
brackets (#275).
- Fix formatting of enums with leading commas (#159, #179, #270).
- Fix formatting of logical && operator in class initializers (#290).
- Fix flagging a 'const' variable as a 'const' method (#275).
- Fix piping and redirection adding an extra character to the output
(#245, #252, #305).
- Fix "indent-modifiers" to attach class access modifiers to Horstmann
style brackets.
- Fix ASFormatter to correctly recognize the end of a C++ raw string
literal (#261).
- Fix to recognize C++11 "enum class" as an enum (#303).
- Fix indent of C++11 "noexecpt" statements within a class (#260, #304).
- Fix not resetting templateDepth when a template was not found (#295).
- Fix formatting of multiplication in a block paren (#144).
- Fix whitespace padding when formatting an rvalue references (#297).
- Fix to recognize an rvalue reference without a name (#265).
- Fix to not identify an operator overload method as a calculation (#296).
- Fix concatenating multiplication with a pointer dereference (#291).
- Fix recognition of a pointer dereference following a question mark (#213).
- Fix extra space after a trailing reference type (#300).
- Fix _asm blocks not being identified as a block opener and the
variable not cleared on exit (#163).
- Fix indentation of line comments before a "class" opening bracket.
- Fix indentation of line comments before a "namespace" opening bracket.
- Fix isBracketType() method to correctly process a NULL_TYPE.
- Fix unpad-paren to recognize additional variables (#43, #132, #143).
- Fix indentation of C# "let" statements.
- Fix a few omissions with "fill-empty-lines".
- Fix file read to read 64K blocks of data.
- Refactor to un-obfuscate (clarify) the code, and improve design and
decomposition::
- Extract class Utf8_16 from ASConsole.
- Replace Linux dependency on iconv with a Utf8_16 class for ASLibrary.
- Move global "using" statements to the astyle namespace in astyle.h
and ASLocalizer.h.
- Move shared library declarations from astyle.h to astyle_main.h.
- Move indentable macros from ASEnhancer to ASResource and create
static pairs.
- Simplify ASBeautifier procedure to identify the colon (:) type.
- Major refactoring in ASBeautifier to create separate variables for
an enum, a class statement and a class initializer.
- This was needed to fix the processing of C++11 uniform
initializers in a class initializer.
- Minor changes to ASFormatter and ASBeautifier based on results of
the Clang analyzer.
- Change several methods in astyle_main to "const".
Last pkgsrc was version from 2002.
Changes in 2.04:
Add new programming language ObjectiveâC.
Add new bracket style option "style=google" (-A14).
Add new option "indent-preproc-cond" (xw) to indent preprocessor
conditional statements (#118).
Add new bracket modify options "attach-namespaces", "attach-classes",
"attach-inlines", and "attach-extern-c".
Add new option "indent-modifiers" (-xG) to indent class access
modifiers one-half indent (#130).
Add new option "remove-brackets" (-xj) to remove brackets from
single line conditional statements.
Add new option "remove-comment-prefix" (-xp) to remove the
leading '*' from multi-line comments.
Add new option "align-method-colon" (-xM) to align ObjectiveâC
method colons.
Add new option "pad-method-colon=#" (-xP#) to space pad
ObjectiveâC method colons.
Add new options "pad-method-prefix" (-xQ), and "unpad-method-prefix"
(-xR) to pad the ObjectiveâC "-" and "+" method prefix.
Add new dll entry point AStyleMainUtf16 for processing C# UTF-16
strings.
Add formatting of C++11 raw string literals (#222).
Add "style=knf" as an alternative to "style=linux".
Remove depreciated "bracket=" options.
Improve recognition and formatting of pointers and references
(#174 and other changes).
Improve the recognition of block-opening brackets.
Improve code using a static code analyzer (#195).
Change "max-code-length" to include ObjectiveâC methods.
Change "indent-elseifs" and "break-blocks" to look ahead only
if in command-type brackets (speed improvement).
Fix linux bracket styles to break the opening bracket in inline
function definitions (#185).
Fix indentation of switch block comments (#164).
Fix enums to indent with tabs when requested (#92, #121).
Fix formatting of rvalue reference without a name in a declaration
(#219).
Fix "pad-first-paren-out" to not pad if the following parens
are empty (#232).
Fix end-of-statement reset when comments follow closing bracket.
Fix the ASBeautifier active and waiting stacks to delete the
ASBeautifier objects before deleting the pointers.
Fix ASBeautifier "init" to delete the tempStack vectors before
deleting the tempStack.
Fix Linux piping problem by changing "cin" input to build a
stringstream before formatting.
Fix to identify the correct bracket type when 'extern "C"' is
part of the enum definition.
Fix to clear 'extern "C"' variables when the block is closed.
Fix unindented 'extern "C"' to not indent when in a #else
preprocessor directive.
Fix not always correctly formatting linux type brackets for
enum blocks.
Fix align-pointer in a range-based for statement (#217).
Fix pointer-reference argument alignment to correctly position
a following comment (#235).
Fix to not attach a bracket to a line ending in a backslash
'\' (#186, #214, #220).
Fix to recognize templates using multiple lines (#85, #87,
#136).
Fix formatting of template continuation lines (#85, #87, #136).
Fix to allow '^' as an array operator (#233).
Fix an "enum" argument being mistaken for an enumeration (#211).
Fix to recognize a non-instatement array after a "},{" sequence.
Fix "pad-oper" to not pad before a following comma.
Fix recognition of an operator when the calculation contains
a bitwise "not" '~' (#166).
Fix to allow a preprocessor statement within a preprocessor
define (#238).
Fix preprocessor comparison to check for whole words (#246).
Fix "add-brackets" when a line contains more than one paren
pairs (#181).
Fix to allow Mac old CR line endings in the options file (#129).
Refactor to aid debugging and improve design and decomposition:
Move ALL preliminary indentation calculations to
computePreliminaryIndentation() in ASBeautifier.
Move calculation of 'force tab' indents to preLineWS() in
ASBeautifier.
Combine methods init() and init(ASSourceIterator*) in
ASBeautifier.
Extract method adjustParsedLineIndentation() in ASBeautifier.
Extract method parseCurrentLine() in ASEnhancer.
Remove astyle_main.cpp unused functions getFilesUnchanged,
getOptionsFileRequired, and setOptionsFileRequired.
Older changes included in distfile, or available on
http://astyle.sourceforge.net/notes.html
When indenting source code, we as programmers have a tendency to
use both spaces and tab characters to create the wanted indentation.
Moreover, some editors by default insert spaces instead of tabs
when pressing the tab key, and other editors (Emacs for example)
have the ability to "pretty up" lines by automatically setting up
the white space before the code on the line, possibly inserting
spaces in a code that up to now used only tabs for indentation.
Since the NUMBER of space characters showed on screen for each tab
character in the source code changes between editors (until the
user sets up the number to his liking...), one of the standard
problems facing programmers when moving from one source code editor
to another is that code containing both spaces and tabs that was
up to now perfectly indented, suddently becomes a mess to look at
when changing to another editor. Even if you as a programmer take
care to ONLY use spaces or tabs, looking at other peoples source
code can still be problematic.
To address this problem I have created Artistic Style - a series
of filters, written in C++, that automatically reindent & reformat
C/C++/Java source files. These can be used from a command line, or
it can be incorporated as classes in another C++ program.
Submitted in PR 12402 by Thomas Runge <runge@rostock.zgdv.de>