remove debug output and add comments

This commit is contained in:
Stefan Koch 2017-11-29 15:48:04 +01:00
parent 19e6cdd7c5
commit fa856430a3
2 changed files with 34 additions and 10 deletions

View File

@ -10,8 +10,11 @@ import dparse.ast;
struct Import struct Import
{ {
/// the identifier chain of the import
string[] importStrings; string[] importStrings;
/// the lhs of renamed imports
string renamedAs; string renamedAs;
/// attribs for the import
string attribString; string attribString;
} }
@ -100,7 +103,30 @@ struct ASTInformation
bool importStringLess(const Import a, const Import b) const bool importStringLess(const Import a, const Import b) const
{ {
bool result; bool result;
result = a.importStrings < b.importStrings; const (string)[] sortKeyA = a.importStrings;
const (string)[] sortKeyB = b.importStrings;
/+
if (sortKeyA.length > 2)
{
const last = a.importStrings[$ - 1];
foreach(i,s;a.importStrings[1 .. $-1])
{
sortKeyA[i + 2] = s;
}
sortKeyA[1] = last;
}
if (sortKeyB.length > 2)
{
const last = b.importStrings[$ - 1];
foreach(i,s;sortKeyB[1 .. $-1])
{
sortKeyB[i + 2] = s;
}
sortKeyB[1] = last;
}
+/
result = sortKeyA < sortKeyB;
/* /*
if (moduleNameStrings.length && isCloserTo(a.importStrings, b.importStrings, moduleNameStrings) if (moduleNameStrings.length && isCloserTo(a.importStrings, b.importStrings, moduleNameStrings)
{ {
@ -154,6 +180,7 @@ struct ASTInformation
) )
{ {
result[idx++].importString = null; result[idx++].importString = null;
// a null importString means a blank line is inserted
} }
} }
else else
@ -161,6 +188,7 @@ struct ASTInformation
if (imp.importStrings[0] != prev.importStrings[0]) if (imp.importStrings[0] != prev.importStrings[0])
{ {
result[idx++].importString = null; result[idx++].importString = null;
// a null importString means a blank line is inserted
} }
} }
} }
@ -266,10 +294,6 @@ final class FormatVisitor : ASTVisitor
void addImport(size_t scopeId, string[] importString, string renamedAs, string importAttribString) void addImport(size_t scopeId, string[] importString, string renamedAs, string importAttribString)
{ {
import std.stdio;
writeln("addImport(", scopeId, ", ", importString, ", ", renamedAs, ", ", importAttribString, ")");
astInformation.importScopes[scopeId] ~= Import(importString, renamedAs, importAttribString); astInformation.importScopes[scopeId] ~= Import(importString, renamedAs, importAttribString);
} }
@ -301,7 +325,7 @@ final class FormatVisitor : ASTVisitor
assert (0, "singleImport without identifierChain"); assert (0, "singleImport without identifierChain");
} }
singleImport.accept(this);
} }
override void visit(const ConditionalDeclaration dec) override void visit(const ConditionalDeclaration dec)

View File

@ -147,7 +147,7 @@ private:
/// Configuration /// Configuration
const Config* config; const Config* config;
/// chached end of line string /// cached end of line string
const string eolString; const string eolString;
/// Keep track of whether or not an extra newline was just added because of /// Keep track of whether or not an extra newline was just added because of
@ -513,12 +513,12 @@ private:
else else
formatStep(); formatStep();
} }
if (config.dfmt_sort_imports && !isImport)
writeImportLinesFor(0);
} }
else else
{ {
if (!isImport)
writeImportLinesFor(0);
while(currentIs(tok!"import")) while(currentIs(tok!"import"))
{ {
// skip to the ending ; of the import statement // skip to the ending ; of the import statement