diff options
author | LeiSun <lei.sun01@sap.com> | 2017-06-23 17:18:56 +0200 |
---|---|---|
committer | David Pursehouse <dpursehouse@collab.net> | 2017-07-01 04:43:11 +0000 |
commit | 262f893349de0f1ae6ee875e624d174a0539a354 (patch) | |
tree | 756838910f082bddae14bbc4b602d9160bb37284 | |
parent | e6976dc2b9779733833d2d355634607f2199b564 (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.java | 10 |
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()); |