Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(225)

Unified Diff: tools/gn/command_format.cc

Issue 1442023002: Sort "deps" and "public_deps" when running the "gn format" command. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments by scottmg Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/gn/command_format_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/gn/command_format.cc
diff --git a/tools/gn/command_format.cc b/tools/gn/command_format.cc
index 5eff6017f3f9c2f4a4574e852e7e0ca0373d2d0c..82dab4295f7df65f46acb08ea6ae3e1df4a65a72 100644
--- a/tools/gn/command_format.cc
+++ b/tools/gn/command_format.cc
@@ -128,8 +128,10 @@ class Printer {
// Flag assignments to sources, deps, etc. to make their RHSs multiline.
void AnnotatePreferredMultilineAssignment(const BinaryOpNode* binop);
- // Alphabetically a list on the RHS if the LHS is 'sources'.
- void SortIfSources(const BinaryOpNode* binop);
+ // Sort a list on the RHS if the LHS is 'sources' or 'deps'. The 'sources'
scottmg 2015/11/16 19:55:27 'sources', 'deps', or 'public_deps'.
sdefresne 2015/11/16 20:48:05 Done.
+ // are sorted alphabetically while the 'deps' are sorted putting first the
scottmg 2015/11/16 19:55:27 And here.
sdefresne 2015/11/16 20:48:05 Done.
+ // relative targets and then the global ones (both sorted alphabetically).
+ void SortIfSourcesOrDeps(const BinaryOpNode* binop);
// Heuristics to decide if there should be a blank line added between two
// items. For various "small" items, it doesn't look nice if there's too much
@@ -307,20 +309,21 @@ void Printer::AnnotatePreferredMultilineAssignment(const BinaryOpNode* binop) {
}
}
-void Printer::SortIfSources(const BinaryOpNode* binop) {
+void Printer::SortIfSourcesOrDeps(const BinaryOpNode* binop) {
const IdentifierNode* ident = binop->left()->AsIdentifier();
const ListNode* list = binop->right()->AsList();
- // TODO(scottmg): Sort more than 'sources'?
+ // TODO(scottmg): Sort more than 'sources' and 'deps'?
scottmg 2015/11/16 19:55:27 And here, or just delete this comment.
sdefresne 2015/11/16 20:48:05 Done.
if ((binop->op().value() == "=" || binop->op().value() == "+=" ||
binop->op().value() == "-=") &&
ident && list) {
const base::StringPiece lhs = ident->value().value();
if (lhs == "sources")
const_cast<ListNode*>(list)->SortAsStringsList();
+ else if (lhs == "deps" || lhs == "public_deps")
+ const_cast<ListNode*>(list)->SortAsDepsList();
}
}
-
bool Printer::ShouldAddBlankLineInBetween(const ParseNode* a,
const ParseNode* b) {
LocationRange a_range = a->GetRange();
@@ -458,7 +461,7 @@ int Printer::Expr(const ParseNode* root,
CHECK(precedence_.find(binop->op().value()) != precedence_.end());
AnnotatePreferredMultilineAssignment(binop);
- SortIfSources(binop);
+ SortIfSourcesOrDeps(binop);
Precedence prec = precedence_[binop->op().value()];
« no previous file with comments | « no previous file | tools/gn/command_format_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698