On Sunday, 22 February 2015 at 09:07:16 UTC, Brian Schott wrote:
On Sunday, 22 February 2015 at 08:48:16 UTC, Brian Schott wrote:
On Friday, 20 February 2015 at 02:21:01 UTC, Brian Schott wrote:
dfmt is a D source code formatting tool.

https://github.com/Hackerpilot/dfmt/
https://github.com/Hackerpilot/dfmt/releases/tag/v0.1.0

I just tagged 0.1.1. The only change is a bug fix for a case where certain long lines with parenthesis wouldn't wrap properly.

v0.1.2 is tagged... "Move fast: things are broken", or something like that.

Congratulations to releasing. :)

For the record, I think using a D parser in dfmt is a dead end. Surely, for certain cases the additional information is necessary. However, it restricts dfmt to only format syntactically valid snippets. This means you cannot (in general) format parts of a file, e.g. within a diff or editor.

Example where parsing helps: "foo : bar" or "foo: bar" depending on the context. The former within import statements, the latter within switch statements.

Example for a snippet you cannot parse: The body of a switch statement without the switch. The 'case' keyword would be an error.

Effectively, you want to parse, but not with a normal parser. Great formatting seems to require a special (more flexible, less correct) parser. This is what clang-format does.

Reply via email to