Artistic Style News

 

Artistic Style 1.21  (June 2007)

This release contains many bug fixes. Array formatting and indentation has been improved. Arrays and enums are now formatted by a different procedure than functions. Brackets will now attach to lines with comments. Brackets will be broken from lines with comments without bringing the comments with them. All comments will remain in their original column, if possible. The formatting of empty blocks was fixed. The BracketType definition was expanded and the bracket types are now correctly identified. There are several formatting fixes for Java files. See the Release Notes for a complete list of changes.

A new option, --preserve-date (-Z), has been added.  This will retain the date modified of the original file in the new formatted file. Otherwise the new file will contain the current date.

The option --errors-to-standard-output has been shortened to --errors-to-stdout. The short options -c (mode=c) and -j (mode=java) have been removed. The options should seldom be needed since the mode is now set automatically from the file extension for each source file instead of for each program execution. A new long option --mode=cs (C#) has been added. Key words are now set for each file depending on the file mode (C, Java, or C#). This will eliminate formatting problems caused by not being able to identify the source code language.

There has been a change to the Linux style bracket formatting for C++ header files. In the past brackets have been broken for function definitions within a class. With this release the brackets will be attached. The brackets will also be attached for arrays, structs, enums, and other top level objects that are not classes or functions. The Linux style formatting for Java and C# has not been changed.

This release supports only one platform in each distribution package. In the past all platforms were included in every package. If you use Artistic Style on more than one platform you will need to download packages for each platform. The main difference in platforms is the build directory and the line endings. The source code and documentation are the same for all packages.

There are new instructions about optimizing compiler options in the Install Instructions. If you are compiling using a development environment you may want to read them.

If you have broken brackets with comments attached to the opening bracket instead of the previous line, do the following before formatting again with broken brackets. Use the current Artistic Style release (1.21). Format the source using attached brackets to reattach the brackets and the comments to the previous line. Then format the source again using broken brackets. This will move the brackets to the next line without the comments. The comments will now be on the correct line.

There is a new multi-platform GUI program, UniversalIndent, available at sourceforge.net/projects/universalindent. It allows you to view the effects of the Artistic Style options on your source code without saving the file. You can review the results of the formatting options before updating the file. It can be used with a test file or with your actual source code. It supports several other formatting programs. The Artistic Style for Windows program has been updated to support the current release. It is available at www.geocities.com/jpattee/

There have been a few inquiries about how to customize Artistic Style for an unsupported format. Changes can be made  with Python or another text processing program after formatting the source, or you can modify the Artistic Style source code itself. The best place to modify the code is usually in ASEnhancer.cpp. The ASEnhancer class is called after the main formatting has been done so you are getting a formatted file. If you just need to change the indentation of a few things this is probably the best place to do it.

There is now a distribution package for OpenVMS thanks to Jim Duff, an OpenVMS Systems Specialist living in Sydney Australia. His website is at eight-cubed.com.

Thanks to Norbert Holzki and Siemens AG, Medical Solutions, Forchheim, Germany for testing the array formatting.

Thanks to Sam Cooler for testing the Mac OS X version.

 

Artistic Style 1.20  (January 2007)

Release 1.20.2 fixed problems with the new stream I/O procedure added in release 1.20.1. Release 1.20.1 improved the processing for Mac OS X platforms. The compatibility with TextWrangler was improved. There is now a separate release for Mac.

Artistic Style will now indent message maps for Microsoft Foundation Class (MFC) and event tables for wxWidgets. The option --brackets=break-closing-headers has been shortened to --brackets=break-closing and a short option added (-y). There have been short options added for --break-elseifs (-e), --indent-preprocessor (-w), --break-blocks (-f), and --break-blocks=all (-F).

With this release the Artistic Style license changes from the GNU General Public License (GPL) to the GNU Lesser General Public License (LGPL). You can use Artistic Style for free or commercial software without charge. Projects that use Artistic Style do not have to make the their source code available. If Artistic Style itself is modified, however, the modified Artistic Style source code must be made available. See the GNU Lesser General Public License for more information.

There is a new preprocessor option to aid developers in using Artistic Style with a Graphical User Interface (GUI). It is no longer necessary to remove the source module astyle_main.cpp and write embedded code to call the formatter. It can be compiled as a static library or a shared library (DLL), or the entire source code can be included in the project. See the Artistic Style Developer Information for the calling procedure and other details.

Tg class="formulaInl" alt="$\mbox{\LaTeX}$" src="form_0.png">, RTF, and man-page counterparts automatically.

  • Allows references to documentation generated for other projects (or another part of the same project) in a location independent way.
  • Allows inclusion of source code examples that are automatically cross-referenced with the documentation.
  • Inclusion of undocumented classes is also supported, allowing to quickly learn the structure and interfaces of a (large) piece of code without looking into the implementation details.
  • Allows automatic cross-referencing of (documented) entities with their definition in the source code.
  • All source code fragments are syntax highlighted for ease of reading.
  • Allows inclusion of function/member/class definitions in the documentation.
  • All options are read from an easy to edit and (optionally) annotated configuration file.
  • Documentation and search engine can be transferred to another location or machine without regenerating the documentation.
  • Can cope with large projects easily.
  • Although doxygen can now be used in any project written in a language that is supported by doxygen, initially it was specifically designed to be used for projects that make use of Troll Tech's Qt toolkit. I have tried to make doxygen `Qt-compatible'. That is: Doxygen can read the documentation contained in the Qt source code and create a class browser that looks quite similar to the one that is generated by Troll Tech. Doxygen understands the C++ extensions used by Qt such as signals and slots and many of the markup commands used in the Qt sources.

    Doxygen can also automatically generate links to existing documentation that was generated with Doxygen or with Qt's non-public class browser generator. For a Qt based project this means that whenever you refer to members or classes belonging to the Qt toolkit, a link will be generated to the Qt documentation. This is done independent of where this documentation is located!


    Generated on Wed Jan 16 12:31:04 2008 for Doxygen manual by  doxygen 1.5.4
    .GCI.}M7%U7Hk[Pt):*,HH&8},(fmJ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (9(z7mtCѿm+(((((((((((((((((((((((YZvzJ.ER@P0ZPAEsQn?Zoy4bO'@o'7RyS8?/06٣޽ˌ`lEkiu:#"HuʬA` U$w=*OCt?{{ǨCt?{{ǫ>GD5 !'ngGO\> I#/E=;PaEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP?WR٫be|>t<ɬºF^_6ic6-.,f1θR}[MPxԑ2$ A9V^Fбʻ[D[`ٷ;UCbI|I.nm$^R1$}?G~cנj,y;oH1 r>jwqiY\y\ +Fnܟ=Nv,߲Jtcl؜[JOcQLyuد,oQm?HJ4`;eZw:gwZAfP3\$^[c,R!Bm|9;@`|K{ED`ARz?sHk3x~4ڔZ%d