December 01

Hi all,

This week, I completed the pass that enables support for multiple brace styles - users can now configure between Allman, K&R, OTBS, and Stroustrup. I also ironed out some weird bugs in the formatting logic that showed up during the implementation.

One major feature that is still yet to be implemented in dmdfmt (this seems like a nice name, so I'll use it to refer to the project going forward) is the ability to preserve comments. The D parser does not store comment information apart from doc comments, and currently does not provide a way to store it in the AST either. I've been scouring the parsing logic and seeing how this can be added into the DMD library without breaking the existing API. Ideally, this change should not require us to make any modifications in the compiler itself, or to users of the DMD library. The lexer definitely processes comments and spits out a TOK.comment token. We just need to figure out how that can be stored, and what to do when it is not associated with any other AST node (a free-standing comment, like in an empty block that does not generate an AST node).