diff --git a/Documentation/rest-api-accounts.txt b/Documentation/rest-api-accounts.txt index fbfd5e4cd5..f55d04ae11 100644 --- a/Documentation/rest-api-accounts.txt +++ b/Documentation/rest-api-accounts.txt @@ -1527,6 +1527,7 @@ link:#edit-preferences-info[EditPreferencesInfo] entity. "hide_line_numbers": true, "match_brackets": true, "line_wrapping": false, + "indent_with_tabs": false, "auto_close_brackets": true } ---- @@ -2430,6 +2431,8 @@ Number of spaces that should be used to display one tab. Default font size in pixels for change to be displayed in the diff view. |`line_wrapping` |optional| Whether to enable line wrapping or not. +|`indent_with_tabs` |optional| +Whether to enable indent with tabs or not. |=========================================== [[edit-preferences-info]] diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/EditPreferencesIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/EditPreferencesIT.java index 8baaa54a00..c1d9bcb26e 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/EditPreferencesIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/EditPreferencesIT.java @@ -40,6 +40,7 @@ public class EditPreferencesIT extends AbstractDaemonTest { assertThat(out.hideLineNumbers).isNull(); assertThat(out.matchBrackets).isTrue(); assertThat(out.lineWrapping).isNull(); + assertThat(out.indentWithTabs).isNull(); assertThat(out.autoCloseBrackets).isNull(); assertThat(out.showBase).isNull(); assertThat(out.theme).isEqualTo(Theme.DEFAULT); @@ -57,6 +58,7 @@ public class EditPreferencesIT extends AbstractDaemonTest { out.hideLineNumbers = true; out.matchBrackets = false; out.lineWrapping = true; + out.indentWithTabs = true; out.autoCloseBrackets = true; out.showBase = true; out.theme = Theme.TWILIGHT; @@ -89,6 +91,7 @@ public class EditPreferencesIT extends AbstractDaemonTest { assertThat(out.hideLineNumbers).isEqualTo(in.hideLineNumbers); assertThat(out.matchBrackets).isNull(); assertThat(out.lineWrapping).isEqualTo(in.lineWrapping); + assertThat(out.indentWithTabs).isEqualTo(in.indentWithTabs); assertThat(out.autoCloseBrackets).isEqualTo(in.autoCloseBrackets); assertThat(out.showBase).isEqualTo(in.showBase); assertThat(out.theme).isEqualTo(in.theme); diff --git a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/client/EditPreferencesInfo.java b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/client/EditPreferencesInfo.java index 84c61b7990..7ab22e1c06 100644 --- a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/client/EditPreferencesInfo.java +++ b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/client/EditPreferencesInfo.java @@ -27,6 +27,7 @@ public class EditPreferencesInfo { public Boolean hideLineNumbers; public Boolean matchBrackets; public Boolean lineWrapping; + public Boolean indentWithTabs; public Boolean autoCloseBrackets; public Boolean showBase; public Theme theme; @@ -45,6 +46,7 @@ public class EditPreferencesInfo { i.hideLineNumbers = false; i.matchBrackets = true; i.lineWrapping = false; + i.indentWithTabs = false; i.autoCloseBrackets = false; i.showBase = false; i.theme = Theme.DEFAULT; diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/EditPreferences.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/EditPreferences.java index 8fcea85ed8..9cd2f17dd4 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/EditPreferences.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/EditPreferences.java @@ -33,6 +33,7 @@ public class EditPreferences extends JavaScriptObject { p.hideLineNumbers(in.hideLineNumbers); p.matchBrackets(in.matchBrackets); p.lineWrapping(in.lineWrapping); + p.indentWithTabs(in.indentWithTabs); p.autoCloseBrackets(in.autoCloseBrackets); p.showBase(in.showBase); p.theme(in.theme); @@ -52,6 +53,7 @@ public class EditPreferences extends JavaScriptObject { p.hideLineNumbers = hideLineNumbers(); p.matchBrackets = matchBrackets(); p.lineWrapping = lineWrapping(); + p.indentWithTabs = indentWithTabs(); p.autoCloseBrackets = autoCloseBrackets(); p.showBase = showBase(); p.theme = theme(); @@ -94,6 +96,8 @@ public class EditPreferences extends JavaScriptObject { public final native void lineWrapping(boolean w) /*-{ this.line_wrapping = w }-*/; + public final native void indentWithTabs(boolean w) /*-{ this.indent_with_tabs = w }-*/; + public final native void autoCloseBrackets(boolean c) /*-{ this.auto_close_brackets = c }-*/; public final native void showBase(boolean s) /*-{ this.show_base = s }-*/; @@ -144,6 +148,8 @@ public class EditPreferences extends JavaScriptObject { public final native boolean lineWrapping() /*-{ return this.line_wrapping || false }-*/; + public final native boolean indentWithTabs() /*-{ return this.indent_with_tabs || false }-*/; + public final native boolean autoCloseBrackets() /*-{ return this.auto_close_brackets || false }-*/; diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditPreferencesBox.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditPreferencesBox.java index de2c739cc7..328c3a0d2a 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditPreferencesBox.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditPreferencesBox.java @@ -69,6 +69,7 @@ public class EditPreferencesBox extends Composite { @UiField ToggleButton lineNumbers; @UiField ToggleButton matchBrackets; @UiField ToggleButton lineWrapping; + @UiField ToggleButton indentWithTabs; @UiField ToggleButton autoCloseBrackets; @UiField ToggleButton showBase; @UiField ListBox theme; @@ -106,6 +107,7 @@ public class EditPreferencesBox extends Composite { lineNumbers.setValue(prefs.hideLineNumbers()); matchBrackets.setValue(prefs.matchBrackets()); lineWrapping.setValue(prefs.lineWrapping()); + indentWithTabs.setValue(prefs.indentWithTabs()); autoCloseBrackets.setValue(prefs.autoCloseBrackets()); showBase.setValue(prefs.showBase()); setTheme(prefs.theme()); @@ -215,6 +217,15 @@ public class EditPreferencesBox extends Composite { } } + @UiHandler("indentWithTabs") + void onIndentWithTabs(ValueChangeEvent e) { + prefs.indentWithTabs(e.getValue()); + if (view != null) { + view.getEditor().setOption("indentWithTabs", prefs.indentWithTabs()); + } + } + + @UiHandler("autoCloseBrackets") void onCloseBrackets(ValueChangeEvent e) { prefs.autoCloseBrackets(e.getValue()); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditPreferencesBox.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditPreferencesBox.ui.xml index 6379b676d1..f5ec71e04c 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditPreferencesBox.ui.xml +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditPreferencesBox.ui.xml @@ -245,6 +245,13 @@ limitations under the License. On + + Indent With Tabs + + Off + On + + Auto Close Brackets diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.java index 8bbc988d06..af997c13d5 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.java @@ -550,7 +550,8 @@ public class EditScreen extends Screen { .set("indentUnit", prefs.indentUnit()) .set("keyMap", prefs.keyMapType().name().toLowerCase()) .set("lineNumbers", prefs.hideLineNumbers()) - .set("lineWrapping", false) + .set("lineWrapping", prefs.lineWrapping()) + .set("indentWithTabs", prefs.indentWithTabs()) .set("matchBrackets", prefs.matchBrackets()) .set("mode", mode != null ? mode.mime() : null) .set("origLeft", editContent)