OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <sstream> | 5 #include <sstream> |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "tools/gn/commands.h" | 8 #include "tools/gn/commands.h" |
9 #include "tools/gn/input_file.h" | 9 #include "tools/gn/input_file.h" |
10 #include "tools/gn/parser.h" | 10 #include "tools/gn/parser.h" |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 void Printer::TrimAndPrintToken(const Token& token) { | 115 void Printer::TrimAndPrintToken(const Token& token) { |
116 std::string trimmed; | 116 std::string trimmed; |
117 TrimWhitespaceASCII(token.value().as_string(), base::TRIM_ALL, &trimmed); | 117 TrimWhitespaceASCII(token.value().as_string(), base::TRIM_ALL, &trimmed); |
118 Print(trimmed); | 118 Print(trimmed); |
119 } | 119 } |
120 | 120 |
121 void Printer::Newline() { | 121 void Printer::Newline() { |
122 if (!comments_.empty()) { | 122 if (!comments_.empty()) { |
123 Print(" "); | 123 Print(" "); |
124 int i = 0; | 124 int i = 0; |
| 125 // Save the margin, and temporarily set it to where the first comment |
| 126 // starts so that multiple suffix comments are vertically aligned. This |
| 127 // will need to be fancier once we enforce 80 col. |
| 128 int old_margin = margin_; |
125 for (const auto& c : comments_) { | 129 for (const auto& c : comments_) { |
126 if (i > 0) { | 130 if (i == 0) |
| 131 margin_ = CurrentColumn(); |
| 132 else { |
127 Trim(); | 133 Trim(); |
128 Print("\n"); | 134 Print("\n"); |
129 PrintMargin(); | 135 PrintMargin(); |
130 } | 136 } |
131 TrimAndPrintToken(c); | 137 TrimAndPrintToken(c); |
| 138 ++i; |
132 } | 139 } |
| 140 margin_ = old_margin; |
133 comments_.clear(); | 141 comments_.clear(); |
134 } | 142 } |
135 Trim(); | 143 Trim(); |
136 Print("\n"); | 144 Print("\n"); |
137 PrintMargin(); | 145 PrintMargin(); |
138 } | 146 } |
139 | 147 |
140 void Printer::Trim() { | 148 void Printer::Trim() { |
141 size_t n = output_.size(); | 149 size_t n = output_.size(); |
142 while (n > 0 && output_[n - 1] == ' ') | 150 while (n > 0 && output_[n - 1] == ' ') |
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
420 } | 428 } |
421 std::string output_string; | 429 std::string output_string; |
422 if (FormatFileToString(input_name, dump_tree, &output_string)) { | 430 if (FormatFileToString(input_name, dump_tree, &output_string)) { |
423 printf("%s", output_string.c_str()); | 431 printf("%s", output_string.c_str()); |
424 } | 432 } |
425 | 433 |
426 return 0; | 434 return 0; |
427 } | 435 } |
428 | 436 |
429 } // namespace commands | 437 } // namespace commands |
OLD | NEW |