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.