upgrade CodeMirror from 5.39.0 to 5.40.2
authorDenis Ovsienko <denis@ovsienko.info>
Thu, 20 Sep 2018 16:38:17 +0000 (17:38 +0100)
committerDenis Ovsienko <denis@ovsienko.info>
Thu, 20 Sep 2018 16:38:17 +0000 (17:38 +0100)
[skip ci]

wwwroot/js/codemirror/codemirror.js

index 487974a..e178478 100644 (file)
@@ -1,7 +1,7 @@
 // CodeMirror, copyright (c) by Marijn Haverbeke and others
-// Distributed under an MIT license: http://codemirror.net/LICENSE
+// Distributed under an MIT license: https://codemirror.net/LICENSE
 
-// This is CodeMirror (http://codemirror.net), a code editor
+// This is CodeMirror (https://codemirror.net), a code editor
 // implemented in JavaScript on top of the browser's DOM.
 //
 // You can find some technical background for some of the code below
@@ -1820,7 +1820,7 @@ function buildLineContent(cm, lineView) {
   var builder = {pre: eltP("pre", [content], "CodeMirror-line"), content: content,
                  col: 0, pos: 0, cm: cm,
                  trailingSpace: false,
-                 splitSpaces: (ie || webkit) && cm.getOption("lineWrapping")}
+                 splitSpaces: cm.getOption("lineWrapping")}
   lineView.measure = {}
 
   // Iterate over the logical lines that make up this visual line.
@@ -1941,6 +1941,8 @@ function buildToken(builder, text, style, startStyle, endStyle, title, css) {
   builder.content.appendChild(content)
 }
 
+// Change some spaces to NBSP to prevent the browser from collapsing
+// trailing spaces at the end of a line when rendering text (issue #1362).
 function splitSpaces(text, trailingBefore) {
   if (text.length > 1 && !/  /.test(text)) { return text }
   var spaceBefore = trailingBefore, result = ""
@@ -5694,7 +5696,7 @@ LineWidget.prototype.changed = function () {
   this.height = null
   var diff = widgetHeight(this) - oldH
   if (!diff) { return }
-  updateLineHeight(line, line.height + diff)
+  if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff) }
   if (cm) {
     runInOp(cm, function () {
       cm.curOp.forceUpdate = true
@@ -6622,7 +6624,7 @@ keyMap.pcDefault = {
   "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll",
   "Ctrl-[": "indentLess", "Ctrl-]": "indentMore",
   "Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection",
-  fallthrough: "basic"
+  "fallthrough": "basic"
 }
 // Very basic readline/emacs-style bindings, which are standard on Mac.
 keyMap.emacsy = {
@@ -6640,7 +6642,7 @@ keyMap.macDefault = {
   "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll",
   "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight",
   "Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd",
-  fallthrough: ["basic", "emacsy"]
+  "fallthrough": ["basic", "emacsy"]
 }
 keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault
 
@@ -7242,8 +7244,9 @@ function onMouseDown(e) {
     }
     return
   }
-  if (clickInGutter(cm, e)) { return }
-  var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : "single"
+  var button = e_button(e)
+  if (button == 3 && captureRightClick ? contextMenuInGutter(cm, e) : clickInGutter(cm, e)) { return }
+  var pos = posFromMouse(cm, e), repeat = pos ? clickRepeat(pos, button) : "single"
   window.focus()
 
   // #3261: make sure, that we're not starting a second selection
@@ -7722,6 +7725,7 @@ function defineOptions(CodeMirror) {
   option("tabindex", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || ""; })
   option("autofocus", null)
   option("direction", "ltr", function (cm, val) { return cm.doc.setDirection(val); }, true)
+  option("phrases", null)
 }
 
 function guttersChanged(cm) {
@@ -7773,6 +7777,7 @@ function CodeMirror(place, options) {
 
   var doc = options.value
   if (typeof doc == "string") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction) }
+  else if (options.mode) { doc.modeOption = options.mode }
   this.doc = doc
 
   var input = new CodeMirror.inputStyles[options.inputStyle](this)
@@ -8559,6 +8564,11 @@ function addEditorMethods(CodeMirror) {
       return old
     }),
 
+    phrase: function(phraseText) {
+      var phrases = this.options.phrases
+      return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText
+    },
+
     getInputField: function(){return this.display.input.getField()},
     getWrapperElement: function(){return this.display.wrapper},
     getScrollerElement: function(){return this.display.scroller},
@@ -9676,7 +9686,7 @@ CodeMirror.fromTextArea = fromTextArea
 
 addLegacyProps(CodeMirror)
 
-CodeMirror.version = "5.39.0"
+CodeMirror.version = "5.40.2"
 
 return CodeMirror;