SideBySide: Allow to activate match brackets Codemirror addon
Now, that we migrated diff user preferences to Git backend, we can
make activation of codemirror option: "highlight matched brackets"
customizable.
Change-Id: I37c1c1ee13ff872e3cbc349a7c9fee636312402e
diff --git a/Documentation/rest-api-accounts.txt b/Documentation/rest-api-accounts.txt
index 329c4cd..ad19046 100644
--- a/Documentation/rest-api-accounts.txt
+++ b/Documentation/rest-api-accounts.txt
@@ -1709,6 +1709,8 @@
|'hide_empty_pane' |not set if `false`|
Whether empty panes should be hidden. The left pane is empty when a
file was added; the right pane is empty when a file was deleted.
+|`match_brackets` |not set if `false`|
+Whether matching brackets should be highlighted.
|===========================================
[[diff-preferences-input]]
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/account/DiffPreferencesIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/account/DiffPreferencesIT.java
index 38687a4..5b2e7ba 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/account/DiffPreferencesIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/account/DiffPreferencesIT.java
@@ -63,6 +63,7 @@
assertThat(o.hideLineNumbers).isNull();
assertThat(o.renderEntireFile).isNull();
assertThat(o.hideEmptyPane).isNull();
+ assertThat(o.matchBrackets).isNull();
assertThat(o.ignoreWhitespace).isEqualTo(d.ignoreWhitespace);
assertThat(o.theme).isEqualTo(d.theme);
}
@@ -93,6 +94,7 @@
i.hideLineNumbers ^= true;
i.renderEntireFile ^= true;
i.hideEmptyPane ^= true;
+ i.matchBrackets ^= true;
RestResponse r = adminSession.put("/accounts/" + admin.email
+ "/preferences.diff", i);
@@ -119,6 +121,7 @@
assertThat(o.hideLineNumbers).isEqualTo(i.hideLineNumbers);
assertThat(o.renderEntireFile).isEqualTo(i.renderEntireFile);
assertThat(o.hideEmptyPane).isEqualTo(i.hideEmptyPane);
+ assertThat(o.matchBrackets).isEqualTo(i.matchBrackets);
assertThat(o.ignoreWhitespace).isEqualTo(i.ignoreWhitespace);
assertThat(o.theme).isEqualTo(i.theme);
diff --git a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/client/DiffPreferencesInfo.java b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/client/DiffPreferencesInfo.java
index b52a439..703f7b3 100644
--- a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/client/DiffPreferencesInfo.java
+++ b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/client/DiffPreferencesInfo.java
@@ -55,6 +55,7 @@
public Boolean hideLineNumbers;
public Boolean renderEntireFile;
public Boolean hideEmptyPane;
+ public Boolean matchBrackets;
public Theme theme;
public Whitespace ignoreWhitespace;
public Boolean retainHeader;
@@ -84,6 +85,7 @@
i.hideLineNumbers = false;
i.renderEntireFile = false;
i.hideEmptyPane = false;
+ i.matchBrackets = false;
return i;
}
-}
\ No newline at end of file
+}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/DiffPreferences.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/DiffPreferences.java
index 8db8d21..7d543d8 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/DiffPreferences.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/DiffPreferences.java
@@ -46,6 +46,7 @@
p.retainHeader(in.retainHeader);
p.skipUncommented(in.skipUncommented);
p.skipDeleted(in.skipDeleted);
+ p.matchBrackets(in.matchBrackets);
return p;
}
@@ -69,6 +70,7 @@
p.hideLineNumbers = hideLineNumbers();
p.renderEntireFile = renderEntireFile();
p.hideEmptyPane = hideEmptyPane();
+ p.matchBrackets = matchBrackets();
p.theme = theme();
p.ignoreWhitespace = ignoreWhitespace();
}
@@ -134,10 +136,11 @@
public final native void expandAllComments(boolean e) /*-{ this.expand_all_comments = e }-*/;
public final native void manualReview(boolean r) /*-{ this.manual_review = r }-*/;
public final native void renderEntireFile(boolean r) /*-{ this.render_entire_file = r }-*/;
- public final native void hideEmptyPane(boolean s) /*-{ this.hide_empty_pane = s }-*/;
public final native void retainHeader(boolean r) /*-{ this.retain_header = r }-*/;
+ public final native void hideEmptyPane(boolean s) /*-{ this.hide_empty_pane = s }-*/;
public final native void skipUncommented(boolean s) /*-{ this.skip_uncommented = s }-*/;
public final native void skipDeleted(boolean s) /*-{ this.skip_deleted = s }-*/;
+ public final native void matchBrackets(boolean m) /*-{ this.match_brackets = m }-*/;
public final native boolean intralineDifference() /*-{ return this.intraline_difference || false }-*/;
public final native boolean showLineEndings() /*-{ return this.show_line_endings || false }-*/;
public final native boolean showTabs() /*-{ return this.show_tabs || false }-*/;
@@ -153,6 +156,7 @@
public final native boolean retainHeader() /*-{ return this.retain_header || false }-*/;
public final native boolean skipUncommented() /*-{ return this.skip_uncommented || false }-*/;
public final native boolean skipDeleted() /*-{ return this.skip_deleted || false }-*/;
+ public final native boolean matchBrackets() /*-{ return this.match_brackets || false }-*/;
private final native void setThemeRaw(String i) /*-{ this.theme = i }-*/;
private final native void setIgnoreWhitespaceRaw(String i) /*-{ this.ignore_whitespace = i }-*/;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PreferencesBox.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PreferencesBox.java
index f2f468e..91baf90 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PreferencesBox.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PreferencesBox.java
@@ -101,6 +101,7 @@
@UiField ToggleButton manualReview;
@UiField ToggleButton expandAllComments;
@UiField ToggleButton renderEntireFile;
+ @UiField ToggleButton matchBrackets;
@UiField ListBox theme;
@UiField Element modeLabel;
@UiField ListBox mode;
@@ -192,6 +193,7 @@
autoHideDiffTableHeader.setValue(!prefs.autoHideDiffTableHeader());
manualReview.setValue(prefs.manualReview());
expandAllComments.setValue(prefs.expandAllComments());
+ matchBrackets.setValue(prefs.matchBrackets());
setTheme(prefs.theme());
if (view == null || view.canRenderEntireFile(prefs)) {
@@ -482,6 +484,15 @@
}
}
+ @UiHandler("matchBrackets")
+ void onMatchBrackets(ValueChangeEvent<Boolean> e) {
+ prefs.matchBrackets(e.getValue());
+ view.getCmFromSide(DisplaySide.A).setOption("matchBrackets",
+ prefs.matchBrackets());
+ view.getCmFromSide(DisplaySide.B).setOption("matchBrackets",
+ prefs.matchBrackets());
+ }
+
@UiHandler("theme")
void onTheme(@SuppressWarnings("unused") ChangeEvent e) {
final Theme newTheme = getSelectedTheme();
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PreferencesBox.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PreferencesBox.ui.xml
index 057d20d..a2202ab 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PreferencesBox.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PreferencesBox.ui.xml
@@ -290,6 +290,13 @@
</g:ToggleButton></td>
</tr>
<tr>
+ <th><ui:msg>Match Brackets</ui:msg></th>
+ <td><g:ToggleButton ui:field='matchBrackets'>
+ <g:upFace><ui:msg>Off</ui:msg></g:upFace>
+ <g:downFace><ui:msg>On</ui:msg></g:downFace>
+ </g:ToggleButton></td>
+ </tr>
+ <tr>
<td></td>
<td>
<g:Button ui:field='apply' styleName='{style.apply}'>