Web Inspector: REGRESSION(r232591): CodeMirrorEditor should not use a RegExp lineSepa...
authormattbaker@apple.com <mattbaker@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 18 Jul 2018 18:40:14 +0000 (18:40 +0000)
committermattbaker@apple.com <mattbaker@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 18 Jul 2018 18:40:14 +0000 (18:40 +0000)
https://bugs.webkit.org/show_bug.cgi?id=187772
<rdar://problem/42331640>

Reviewed by Joseph Pecoraro.

* UserInterface/Views/CodeMirrorEditor.js:
(WI.CodeMirrorEditor.create):
(WI.CodeMirrorEditor):
CodeMirror should be left to auto-detect line separators. By default
it detects \n, \r\n, and \r. By specifying a regular expression we
merely cause problems when CodeMirror uses the supplied lineSeparator
when joining its array of lines together.

* UserInterface/Views/TextEditor.js:
(WI.TextEditor.set string.update):
(WI.TextEditor.prototype.set string):
This assertion was only true when we forced "\n" line endings everywhere.
It no longer holds for source text with "\r\n" (Windows-style) line endings.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233920 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebInspectorUI/ChangeLog
Source/WebInspectorUI/UserInterface/Views/CodeMirrorEditor.js
Source/WebInspectorUI/UserInterface/Views/TextEditor.js

index 23eeeba..a18751a 100644 (file)
@@ -1,3 +1,25 @@
+2018-07-18  Matt Baker  <mattbaker@apple.com>
+
+        Web Inspector: REGRESSION(r232591): CodeMirrorEditor should not use a RegExp lineSeparator option
+        https://bugs.webkit.org/show_bug.cgi?id=187772
+        <rdar://problem/42331640>
+
+        Reviewed by Joseph Pecoraro.
+
+        * UserInterface/Views/CodeMirrorEditor.js:
+        (WI.CodeMirrorEditor.create):
+        (WI.CodeMirrorEditor):
+        CodeMirror should be left to auto-detect line separators. By default
+        it detects \n, \r\n, and \r. By specifying a regular expression we
+        merely cause problems when CodeMirror uses the supplied lineSeparator
+        when joining its array of lines together.
+
+        * UserInterface/Views/TextEditor.js:
+        (WI.TextEditor.set string.update):
+        (WI.TextEditor.prototype.set string):
+        This assertion was only true when we forced "\n" line endings everywhere.
+        It no longer holds for source text with "\r\n" (Windows-style) line endings.
+
 2018-07-16  Matt Baker  <mattbaker@apple.com>
 
         Web Inspector: Fix execution highlighting after r233820
index d0636f3..66e47ee 100644 (file)
@@ -27,10 +27,6 @@ WI.CodeMirrorEditor = class CodeMirrorEditor
 {
     static create(element, options)
     {
-        // Default line endings match typical expected line endings for JavaScript (at least those supported by JavaScriptCore).
-        if (options.lineSeparator === undefined)
-            options.lineSeparator = /\r\n?|\n/;
-
         // CodeMirror's manual scrollbar positioning results in double scrollbars,
         // nor does it handle braces and brackets well, so default to using LTR.
         // Clients can override this if custom layout for RTL is available.
index c9660c7..06525eb 100644 (file)
@@ -118,10 +118,9 @@ WI.TextEditor = class TextEditor extends WI.View
             if (this._initialStringNotSet)
                 this._codeMirror.removeLineClass(0, "wrap");
 
-            if (this._codeMirror.getValue() !== newString) {
+            if (this._codeMirror.getValue() !== newString)
                 this._codeMirror.setValue(newString);
-                console.assert(this.string.length === newString.length, "A lot of our code depends on precise text offsets, so the string should remain the same.");
-            } else {
+            else {
                 // Ensure we at display content even if the value did not change. This often happens when auto formatting.
                 this.layout();
             }