clang-format: [JS] Sort all JavaScript imports if any changed.
Summary: User feedback is that they expect *all* imports to be sorted if any import was affected by a change, not just imports up to the first non-affected line, as clang-format currently does. Reviewers: djasper Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D23972 llvm-svn: 280485
This commit is contained in:
@@ -284,14 +284,8 @@ private:
|
||||
SourceLocation Start;
|
||||
bool FoundLines = false;
|
||||
AnnotatedLine *FirstNonImportLine = nullptr;
|
||||
bool AnyImportAffected = false;
|
||||
for (auto Line : AnnotatedLines) {
|
||||
if (!Line->Affected) {
|
||||
// Only sort the first contiguous block of affected lines.
|
||||
if (FoundLines)
|
||||
break;
|
||||
else
|
||||
continue;
|
||||
}
|
||||
Current = Line->First;
|
||||
LineEnd = Line->Last;
|
||||
skipComments();
|
||||
@@ -309,6 +303,7 @@ private:
|
||||
FirstNonImportLine = Line;
|
||||
break;
|
||||
}
|
||||
AnyImportAffected = AnyImportAffected || Line->Affected;
|
||||
Reference.Range.setEnd(LineEnd->Tok.getEndLoc());
|
||||
DEBUG({
|
||||
llvm::dbgs() << "JsModuleReference: {"
|
||||
@@ -325,6 +320,9 @@ private:
|
||||
References.push_back(Reference);
|
||||
Start = SourceLocation();
|
||||
}
|
||||
// Sort imports if any import line was affected.
|
||||
if (!AnyImportAffected)
|
||||
References.clear();
|
||||
return std::make_pair(References, FirstNonImportLine);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user