diff --git a/tools/gn/docs/reference.md b/tools/gn/docs/reference.md
index 8fa85d2..5ac654f 100644
--- a/tools/gn/docs/reference.md
+++ b/tools/gn/docs/reference.md
@@ -1039,6 +1039,7 @@
   It is recommended you put inputs to your script in the "sources" variable,
   and stuff like other Python files required to run your script in the "inputs"
   variable.
+
   The "deps" and "public_deps" for an action will always be
   completed before any part of the action is run so it can depend on
   the output of previous steps. The "data_deps" will be built if the
@@ -1052,6 +1053,7 @@
 ```
   You should specify files created by your script by specifying them in the
   "outputs".
+
   The script will be executed with the given arguments with the current
   directory being that of the root build directory. If you pass files
   to your script, see "gn help rebase_path" for how to convert
@@ -1061,6 +1063,7 @@
 ```
 
 #### **File name handling**
+
 ```
   All output files must be inside the output directory of the build.
   You would generally use |$target_out_dir| or |$target_gen_dir| to
@@ -1120,6 +1123,7 @@
   You can dynamically write input dependencies (for incremental rebuilds if an
   input file changes) by writing a depfile when the script is run (see "gn help
   depfile"). This is more flexible than "inputs".
+
   The "deps" and "public_deps" for an action will always be
   completed before any part of the action is run so it can depend on
   the output of previous steps. The "data_deps" will be built if the
@@ -1129,6 +1133,7 @@
 ```
 
 #### **Outputs**
+
 ```
   The script will be executed with the given arguments with the current
   directory being that of the root build directory. If you pass files
@@ -1139,6 +1144,7 @@
 ```
 
 #### **File name handling**
+
 ```
   All output files must be inside the output directory of the build.
   You would generally use |$target_out_dir| or |$target_gen_dir| to
diff --git a/tools/gn/functions_target.cc b/tools/gn/functions_target.cc
index 0ceaba0..5fec1ff 100644
--- a/tools/gn/functions_target.cc
+++ b/tools/gn/functions_target.cc
@@ -61,28 +61,31 @@
 // action ----------------------------------------------------------------------
 
 // Common help paragraph on script runtime execution directories.
-#define SCRIPT_EXECUTION_CONTEXT \
-    "  The script will be executed with the given arguments with the current\n"\
-    "  directory being that of the root build directory. If you pass files\n"\
-    "  to your script, see \"gn help rebase_path\" for how to convert\n" \
-    "  file names to be relative to the build directory (file names in the\n" \
-    "  sources, outputs, and inputs will be all treated as relative to the\n" \
-    "  current build file and converted as needed automatically).\n"
+#define SCRIPT_EXECUTION_CONTEXT                                              \
+  "\n"                                                                        \
+  "  The script will be executed with the given arguments with the current\n" \
+  "  directory being that of the root build directory. If you pass files\n"   \
+  "  to your script, see \"gn help rebase_path\" for how to convert\n"        \
+  "  file names to be relative to the build directory (file names in the\n"   \
+  "  sources, outputs, and inputs will be all treated as relative to the\n"   \
+  "  current build file and converted as needed automatically).\n"
 
 // Common help paragraph on script output directories.
-#define SCRIPT_EXECUTION_OUTPUTS \
-    "  All output files must be inside the output directory of the build.\n" \
-    "  You would generally use |$target_out_dir| or |$target_gen_dir| to\n" \
-    "  reference the output or generated intermediate file directories,\n" \
-    "  respectively.\n"
+#define SCRIPT_EXECUTION_OUTPUTS                                           \
+  "\n"                                                                     \
+  "  All output files must be inside the output directory of the build.\n" \
+  "  You would generally use |$target_out_dir| or |$target_gen_dir| to\n"  \
+  "  reference the output or generated intermediate file directories,\n"   \
+  "  respectively.\n"
 
-#define ACTION_DEPS \
-    "  The \"deps\" and \"public_deps\" for an action will always be\n" \
-    "  completed before any part of the action is run so it can depend on\n" \
-    "  the output of previous steps. The \"data_deps\" will be built if the\n" \
-    "  action is built, but may not have completed before all steps of the\n" \
-    "  action are started. This can give additional parallelism in the build\n"\
-    "  for runtime-only dependencies.\n"
+#define ACTION_DEPS                                                           \
+  "\n"                                                                        \
+  "  The \"deps\" and \"public_deps\" for an action will always be\n"         \
+  "  completed before any part of the action is run so it can depend on\n"    \
+  "  the output of previous steps. The \"data_deps\" will be built if the\n"  \
+  "  action is built, but may not have completed before all steps of the\n"   \
+  "  action are started. This can give additional parallelism in the build\n" \
+  "  for runtime-only dependencies.\n"
 
 const char kAction[] = "action";
 const char kAction_HelpShort[] =
