diff options
author | scottmg <scottmg@chromium.org> | 2014-11-07 14:54:54 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-07 22:55:15 +0000 |
commit | 89e03bdc047954200ee3a80dff220dcb674042f3 (patch) | |
tree | 0a28ba22a609781adf11ff0592df4d40ddf6501f /tools | |
parent | f944c32ded13185e4d45468623920d7e51a35aba (diff) | |
download | chromium_src-89e03bdc047954200ee3a80dff220dcb674042f3.zip chromium_src-89e03bdc047954200ee3a80dff220dcb674042f3.tar.gz chromium_src-89e03bdc047954200ee3a80dff220dcb674042f3.tar.bz2 |
gn format: use input line breaks rather than attempting rule-based line breaks
I couldn't come up with anything that worked in 100% of cases, so switch
to mostly maintaining line breaks from input file instead.
R=brettw@chromium.org
BUG=348474
Review URL: https://codereview.chromium.org/713463003
Cr-Commit-Position: refs/heads/master@{#303313}
Diffstat (limited to 'tools')
-rw-r--r-- | tools/gn/command_format.cc | 15 | ||||
-rw-r--r-- | tools/gn/command_format_unittest.cc | 3 | ||||
-rw-r--r-- | tools/gn/format_test_data/003.golden | 1 | ||||
-rw-r--r-- | tools/gn/format_test_data/017.golden | 2 | ||||
-rw-r--r-- | tools/gn/format_test_data/021.golden | 3 | ||||
-rw-r--r-- | tools/gn/format_test_data/028.golden | 2 | ||||
-rw-r--r-- | tools/gn/format_test_data/036.golden | 9 | ||||
-rw-r--r-- | tools/gn/format_test_data/041.golden | 12 |
8 files changed, 35 insertions, 12 deletions
diff --git a/tools/gn/command_format.cc b/tools/gn/command_format.cc index a72e2ec3..890cf2c 100644 --- a/tools/gn/command_format.cc +++ b/tools/gn/command_format.cc @@ -242,16 +242,11 @@ bool Printer::IsAssignment(const ParseNode* node) { bool Printer::ShouldAddBlankLineInBetween(const ParseNode* a, const ParseNode* b) { - if ((IsAssignment(a) || a->AsFunctionCall()) && - (!a->comments() || a->comments()->after().size() == 0) && - (IsAssignment(b) || b->AsFunctionCall()) && - (!b->comments() || b->comments()->before().size() == 0)) { - Metrics first = GetLengthOfExpr(a, kPrecedenceLowest); - Metrics second = GetLengthOfExpr(b, kPrecedenceLowest); - if (!first.multiline || !second.multiline) - return false; - } - return true; + LocationRange a_range = a->GetRange(); + LocationRange b_range = b->GetRange(); + // If they're already separated by 1 or more lines, then we want to keep a + // blank line. + return b_range.begin().line_number() > a_range.end().line_number() + 1; } int Printer::CurrentColumn() { diff --git a/tools/gn/command_format_unittest.cc b/tools/gn/command_format_unittest.cc index 31bc4be..6458179 100644 --- a/tools/gn/command_format_unittest.cc +++ b/tools/gn/command_format_unittest.cc @@ -70,8 +70,9 @@ FORMAT_TEST(031) FORMAT_TEST(033) // TODO(scottmg): args+rebase_path unnecessarily split: FORMAT_TEST(034) FORMAT_TEST(035) -// TODO(scottmg): Line breaks between early statements: FORMAT_TEST(036) +FORMAT_TEST(036) // TODO(scottmg): Ugly line breaking: FORMAT_TEST(037) FORMAT_TEST(038) // TODO(scottmg): Bad break, exceeding 80 col: FORMAT_TEST(039) // TODO(scottmg): Bad break, exceeding 80 col: FORMAT_TEST(040) +FORMAT_TEST(041) diff --git a/tools/gn/format_test_data/003.golden b/tools/gn/format_test_data/003.golden index 5084c0f..a5bd5d3 100644 --- a/tools/gn/format_test_data/003.golden +++ b/tools/gn/format_test_data/003.golden @@ -3,5 +3,6 @@ executable("test") { "stuff.cc", "things.cc", ] + deps = [ "//base" ] } diff --git a/tools/gn/format_test_data/017.golden b/tools/gn/format_test_data/017.golden index 4e84a50..d9d7ad9 100644 --- a/tools/gn/format_test_data/017.golden +++ b/tools/gn/format_test_data/017.golden @@ -3,10 +3,10 @@ executable("win" # Suffix comment on arg. # And a strangely positioned line comment for some reason ) { defines = [] # Defines comment, suffix at end position. + deps = [ # Deps comment, should be forced multiline. ] - sources = [ "a.cc", # End of single sources comment, should be forced multiline. diff --git a/tools/gn/format_test_data/021.golden b/tools/gn/format_test_data/021.golden index 3919f49..40d8c78 100644 --- a/tools/gn/format_test_data/021.golden +++ b/tools/gn/format_test_data/021.golden @@ -1,9 +1,12 @@ f(aaaaaaaaaaaaaaaaaaa) + f(aaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaa) # Exactly 80 wide. f(aaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaa, aaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaa, aaaaa) + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa( aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) diff --git a/tools/gn/format_test_data/028.golden b/tools/gn/format_test_data/028.golden index d22d4a2..a1d54c5 100644 --- a/tools/gn/format_test_data/028.golden +++ b/tools/gn/format_test_data/028.golden @@ -1,5 +1,7 @@ # Don't separate these. import("wee.gni") import("waa.gni") + import("woo.gni") + import("blah.gni") diff --git a/tools/gn/format_test_data/036.golden b/tools/gn/format_test_data/036.golden new file mode 100644 index 0000000..5a5eca84 --- /dev/null +++ b/tools/gn/format_test_data/036.golden @@ -0,0 +1,9 @@ +import("a") +import("b") + +assert(x) +assert(y) +assert(z) + +source_set("stuff") { +} diff --git a/tools/gn/format_test_data/041.golden b/tools/gn/format_test_data/041.golden new file mode 100644 index 0000000..fa39b49 --- /dev/null +++ b/tools/gn/format_test_data/041.golden @@ -0,0 +1,12 @@ +if (true) { + a = [ "wee" ] + + b = [ + "x", + "y", + "z", + ] + c = [ "x" ] + + d = [ "x" ] +} |