gn format: Better formatting of list-of-single-scope

Fuchsia uses these for test specifications in packages. Blocks are
always formatted multiline, but the list formatting didn't account for
that, so it just turned into a mess when there was only a single element
in the list (see linked bug).

Formatting changes:
https://chromium-review.googlesource.com/c/chromium/src/+/861256

Bug: 800955
Change-Id: I4ab0866d0917071ba94d011c455499a3ba8fb552
Reviewed-on: https://chromium-review.googlesource.com/861282
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#528703}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 9b2c266d5882c89c65a1095d9e5d68e435ede1f3
diff --git a/tools/gn/command_format.cc b/tools/gn/command_format.cc
index 5f9f6ed..fb376d9 100644
--- a/tools/gn/command_format.cc
+++ b/tools/gn/command_format.cc
@@ -959,6 +959,11 @@
       return true;
   }
 
+  // When a scope is used as a list entry, it's too complicated to go one a
+  // single line (the block will always be formatted multiline itself).
+  if (list.size() >= 1 && list[0]->AsBlock())
+    return true;
+
   return false;
 }
 
diff --git a/tools/gn/command_format_unittest.cc b/tools/gn/command_format_unittest.cc
index c0358fe..bf84061 100644
--- a/tools/gn/command_format_unittest.cc
+++ b/tools/gn/command_format_unittest.cc
@@ -101,3 +101,4 @@
 FORMAT_TEST(067)
 FORMAT_TEST(068)
 FORMAT_TEST(069)
+FORMAT_TEST(070)
diff --git a/tools/gn/format_test_data/070.gn b/tools/gn/format_test_data/070.gn
new file mode 100644
index 0000000..09d80d2
--- /dev/null
+++ b/tools/gn/format_test_data/070.gn
@@ -0,0 +1,15 @@
+multiple = [
+    {
+      name = "elements_test"
+    },
+    {
+      name = "eapol_crypto_test"
+    },
+  ]
+
+
+single = [
+    {
+      name = "elements_test"
+    },
+  ]
diff --git a/tools/gn/format_test_data/070.golden b/tools/gn/format_test_data/070.golden
new file mode 100644
index 0000000..0997aa4
--- /dev/null
+++ b/tools/gn/format_test_data/070.golden
@@ -0,0 +1,14 @@
+multiple = [
+  {
+    name = "elements_test"
+  },
+  {
+    name = "eapol_crypto_test"
+  },
+]
+
+single = [
+  {
+    name = "elements_test"
+  },
+]