Syntax highlighting: reStructuredText (rst)

rst mode depends on stex mode and makes use of overlay.

[1] works nicely on CM3 4.9 version [2], so [3] is fixed now.

Bug: issue 2779
[1] https://ceres-solver-review.googlesource.com/#/c/5683/18/docs/source/faqs.rst
[2] http://imgur.com/y8QEylt
[3] https://github.com/codemirror/CodeMirror/issues/2850
Change-Id: I03f134aadbb8c2c3c2a8d3dc027d2b7f234cd176
diff --git a/gerrit-gwtui/src/main/java/net/codemirror/lib/ModeInjector.java b/gerrit-gwtui/src/main/java/net/codemirror/lib/ModeInjector.java
index cfb098e..1c77c82 100644
--- a/gerrit-gwtui/src/main/java/net/codemirror/lib/ModeInjector.java
+++ b/gerrit-gwtui/src/main/java/net/codemirror/lib/ModeInjector.java
@@ -65,11 +65,13 @@
       Modes.I.properties(),
       Modes.I.python(),
       Modes.I.r(),
+      Modes.I.rst(),
       Modes.I.ruby(),
       Modes.I.scheme(),
       Modes.I.shell(),
       Modes.I.smalltalk(),
       Modes.I.sql(),
+      Modes.I.stex(),
       Modes.I.velocity(),
       Modes.I.verilog(),
       Modes.I.xml(),
diff --git a/gerrit-gwtui/src/main/java/net/codemirror/mode/Modes.java b/gerrit-gwtui/src/main/java/net/codemirror/mode/Modes.java
index 9b56c38..ddfdbae 100644
--- a/gerrit-gwtui/src/main/java/net/codemirror/mode/Modes.java
+++ b/gerrit-gwtui/src/main/java/net/codemirror/mode/Modes.java
@@ -48,11 +48,13 @@
   @Source("properties/properties.js") @DoNotEmbed DataResource properties();
   @Source("python/python.js") @DoNotEmbed DataResource python();
   @Source("r/r.js") @DoNotEmbed DataResource r();
+  @Source("rst/rst.js") @DoNotEmbed DataResource rst();
   @Source("ruby/ruby.js") @DoNotEmbed DataResource ruby();
   @Source("scheme/scheme.js") @DoNotEmbed DataResource scheme();
   @Source("shell/shell.js") @DoNotEmbed DataResource shell();
   @Source("smalltalk/smalltalk.js") @DoNotEmbed DataResource smalltalk();
   @Source("sql/sql.js") @DoNotEmbed DataResource sql();
+  @Source("stex/stex.js") @DoNotEmbed DataResource stex();
   @Source("tcl/tcl.js") @DoNotEmbed DataResource tcl();
   @Source("velocity/velocity.js") @DoNotEmbed DataResource velocity();
   @Source("verilog/verilog.js") @DoNotEmbed DataResource verilog();
diff --git a/gerrit-gwtui/src/main/java/net/codemirror/mode/mode_map b/gerrit-gwtui/src/main/java/net/codemirror/mode/mode_map
index 1e2212f..665b431 100644
--- a/gerrit-gwtui/src/main/java/net/codemirror/mode/mode_map
+++ b/gerrit-gwtui/src/main/java/net/codemirror/mode/mode_map
@@ -97,6 +97,9 @@
 r:
 text/r-src
 
+rst:
+text/x-rst
+
 ruby:
 text/x-ruby
 
@@ -116,6 +119,9 @@
 text/x-mysql
 text/x-plsql
 
+stex:
+text/x-stex
+
 tcl:
 text/x-tcl
 
diff --git a/gerrit-server/src/main/resources/com/google/gerrit/server/mime-types.properties b/gerrit-server/src/main/resources/com/google/gerrit/server/mime-types.properties
index e46894a..28e8d43 100644
--- a/gerrit-server/src/main/resources/com/google/gerrit/server/mime-types.properties
+++ b/gerrit-server/src/main/resources/com/google/gerrit/server/mime-types.properties
@@ -34,8 +34,10 @@
 py = text/x-python
 r = text/r-src
 rb = text/x-ruby
+rst = text/x-rst
 scala = text/x-scala
 st = text/x-stsrc
+stex = text/x-stex
 v = text/x-verilog
 vert = x-shader/x-vertex
 vh = text/x-verilog
diff --git a/lib/codemirror/cm.defs b/lib/codemirror/cm.defs
index c2e6c32..f97ddc1 100644
--- a/lib/codemirror/cm.defs
+++ b/lib/codemirror/cm.defs
@@ -20,6 +20,7 @@
   'addon/search/search.js',
   'addon/selection/mark-selection.js',
   'addon/edit/trailingspace.js',
+  'addon/mode/overlay.js',
 ]
 
 CM_MODES = [
@@ -46,11 +47,13 @@
   'properties/properties.js',
   'python/python.js',
   'r/r.js',
+  'rst/rst.js',
   'ruby/ruby.js',
   'scheme/scheme.js',
   'shell/shell.js',
   'smalltalk/smalltalk.js',
   'sql/sql.js',
+  'stex/stex.js',
   'tcl/tcl.js',
   'velocity/velocity.js',
   'verilog/verilog.js',