summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeiSun <lei.sun01@sap.com>2017-06-23 17:18:56 +0200
committerDavid Pursehouse <dpursehouse@collab.net>2017-07-01 04:43:11 +0000
commit262f893349de0f1ae6ee875e624d174a0539a354 (patch)
tree756838910f082bddae14bbc4b602d9160bb37284
parente6976dc2b9779733833d2d355634607f2199b564 (diff)
Preserve line-endings in inline editing
When a file with Windows line endings was edited all the line ending characters were replaced by the Unix style line endings '\n'. This generated artificially large diffs as all lines had a changed line ending. To solve the issue this change automatically detects the line-ending type and preserves line-endings by setting an option parameter of the editor called "lineSeperator". Bug: issue 3345 Change-Id: If7e2ed3b3327c7734175f1d3e864deaae2401a8f
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.java10
1 files changed, 8 insertions, 2 deletions
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 da7ca4478f..3dbb1c31d0 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
@@ -558,7 +558,7 @@ public class EditScreen extends Screen {
mode = ModeInfo.findMode(content.getContentType(), path);
}
}
- mv = MergeView.create(editor, Configuration.create()
+ Configuration cfg = Configuration.create()
.set("autoCloseBrackets", prefs.autoCloseBrackets())
.set("cursorBlinkRate", prefs.cursorBlinkRate())
.set("cursorHeight", 0.85)
@@ -574,7 +574,13 @@ public class EditScreen extends Screen {
.set("styleSelectedText", true)
.set("tabSize", prefs.tabSize())
.set("theme", prefs.theme().name().toLowerCase())
- .set("value", ""));
+ .set("value", "");
+
+ if (editContent.contains("\r\n")) {
+ cfg.set("lineSeparator", "\r\n");
+ }
+
+ mv = MergeView.create(editor, cfg);
cmBase = mv.leftOriginal();
cmBase.getWrapperElement().addClassName(style.base());