diff --git a/Documentation/dev-plugins.txt b/Documentation/dev-plugins.txt
index a0e41f8..11f7721 100644
--- a/Documentation/dev-plugins.txt
+++ b/Documentation/dev-plugins.txt
@@ -136,7 +136,7 @@
 Plugin Name
 ~~~~~~~~~~~
 
-Plugin can optionally provide its own plugin name.
+A plugin can optionally provide its own plugin name.
 
 ====
   Gerrit-PluginName: replication
@@ -187,7 +187,7 @@
     this.pluginName = pluginName;
   }
 
-  ...
+  [...]
 }
 ----
 
@@ -268,11 +268,12 @@
 call the constructor of their connection class, passing in values obtained
 from the Section.Factory rather than from an injected Config object.
 
-Plugins InitStep are executing during the "Gerrit Plugin init" phase, after
-the extraction of the plugins embedded in Gerrit.war into $GERRIT_SITE/plugins
-and before the DB Schema initialization or upgrade.
-Plugins InitStep cannot refer to Gerrit DB Schema or any other Gerrit runtime
-objects injected at startup.
+Plugins' InitSteps are executed during the "Gerrit Plugin init" phase, after
+the extraction of the plugins embedded in the distribution .war file into
+`$GERRIT_SITE/plugins` and before the DB Schema initialization or upgrade.
+
+A plugin's InitStep cannot refer to Gerrit's DB Schema or any other Gerrit
+runtime objects injected at startup.
 
 [source,java]
 ----
@@ -468,7 +469,7 @@
 @Inject
 private com.google.gerrit.server.config.PluginConfigFactory cfg;
 
-...
+[...]
 
 String language = cfg.get("helloworld")
                      .getString("language", "English");
@@ -503,7 +504,7 @@
 @Inject
 private com.google.gerrit.server.config.PluginConfigFactory cfg;
 
-...
+[...]
 
 boolean enabled = cfg.get(project, "helloworld")
                      .getBoolean("enabled", false);
@@ -517,7 +518,7 @@
 @Inject
 private com.google.gerrit.server.config.PluginConfigFactory cfg;
 
-...
+[...]
 
 boolean enabled = cfg.getWithInheritance(project, "helloworld")
                      .getBoolean("enabled", false);
@@ -554,7 +555,7 @@
 ----
 @Export("printHello")
 public class PrintHelloCapability extends CapabilityDefinition {
-  ...
+  [...]
 }
 ----
 
@@ -581,7 +582,7 @@
 @RequiresCapability("printHello")
 @CommandMetaData(name="print", description="Print greeting in different languages")
 public final class PrintHelloWorldCommand extends SshCommand {
-  ...
+  [...]
 }
 ----
 
@@ -592,7 +593,7 @@
 @RequiresCapability("printHello")
 public class SayHelloAction extends UiAction<RevisionResource>
   implements RestModifyView<RevisionResource, SayHelloAction.Input> {
-  ...
+  [...]
 }
 ----
 
@@ -614,7 +615,7 @@
 ----
 @RequiresCapability(value = "administrateServer", scope =
     CapabilityScope.CORE)
-  ...
+  [...]
 ----
 
 [[ui_extension]]
@@ -692,7 +693,7 @@
 SHA-1. The ETag SHA-1 computation code can be found in the
 `ChangeResource.getETag()` method.
 
-The easiest way to accompilsh it is to update `lastUpdatedOn` of the change:
+The easiest way to accomplish this is to update `lastUpdatedOn` of the change:
 
 [source,java]
 ----
@@ -717,6 +718,7 @@
   } finally {
     db.rollback();
   }
+  [...]
 }
 ----
 
@@ -930,7 +932,7 @@
 ----
 @Listen
 public class MyTopMenuExtension implements TopMenu {
-  ...
+  [...]
 }
 ----
 
diff --git a/Documentation/user-search.txt b/Documentation/user-search.txt
index bd91cdd..7c4ca52 100644
--- a/Documentation/user-search.txt
+++ b/Documentation/user-search.txt
@@ -319,16 +319,13 @@
 ------
 Label operators can be used to match approval scores given during
 a code review.  The specific set of supported labels depends on
-the server configuration, however `Code-Review` and `Verified`
-are the default labels provided out of the box.
+the server configuration, however the `Code-Review` label is provided
+out of the box.
 
 A label name is any of the following:
 
 * The label name.  Example: `label:Code-Review`.
 
-* The one or two character abbreviation shown in the column header
-  of change list pages.  Example: `label:R` or `label:V`.
-
 * The label name followed by a ',' followed by a reviewer id or a
   group id.  To make it clear whether a user or group is being looked
   for, precede the value by a user or group argument identifier
