diff --git a/AUTHORS b/AUTHORS index f1d6b58a85..f5f569721e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -19,6 +19,7 @@ Albert Xing Alexander Pavlov Alexander Schepanovski Alexander Solovyov +Alexandre Bique alexey-k Alex Piggott Amsul @@ -61,10 +62,12 @@ borawjm Brandon Frohs Brandon Wamboldt Brett Zamir +Brian Grinstead Brian Sletten Bruce Mitchener Chandra Sekhar Pydi Charles Skelton +Cheah Chu Yeow Chris Coyier Chris Granger Chris Houseknecht @@ -215,6 +218,7 @@ Manuel Rego Casasnovas Marat Dreizin Marco Aurélio Marco Munizaga +Marcus Bointon Marijn Haverbeke Mario Pietsch Mark Lentczner @@ -224,6 +228,7 @@ Martín Gaitán Martin Hasoň Mason Malone Mateusz Paprocki +Mathias Bynens mats cronqvist Matthew Beale Matthias BUSSONNIER @@ -277,6 +282,7 @@ Pavel Feldman Pavel Strashkin Paweł Bartkiewicz peteguhl +Peter Flynn peterkroon Peter Kroon prasanthj diff --git a/addon/dialog/dialog.js b/addon/dialog/dialog.js index b99c6778e9..622d689ed1 100644 --- a/addon/dialog/dialog.js +++ b/addon/dialog/dialog.js @@ -38,10 +38,14 @@ closeNotification(this, null); var dialog = dialogDiv(this, template, options && options.bottom); var closed = false, me = this; - function close() { - if (closed) return; - closed = true; - dialog.parentNode.removeChild(dialog); + function close(newVal) { + if (typeof newVal == 'string') { + inp.value = newVal; + } else { + if (closed) return; + closed = true; + dialog.parentNode.removeChild(dialog); + } } var inp = dialog.getElementsByTagName("input")[0], button; if (inp) { diff --git a/addon/display/rulers.js b/addon/display/rulers.js index 7624b78c83..13185d30b4 100644 --- a/addon/display/rulers.js +++ b/addon/display/rulers.js @@ -43,7 +43,7 @@ col = conf; } else { col = conf.column; - if (conf.className) elt.className = " " + conf.className; + if (conf.className) elt.className += " " + conf.className; if (conf.color) elt.style.borderColor = conf.color; if (conf.lineStyle) elt.style.borderLeftStyle = conf.lineStyle; if (conf.width) elt.style.borderLeftWidth = conf.width; diff --git a/addon/edit/continuelist.js b/addon/edit/continuelist.js index 3485c4b797..8cee761aee 100644 --- a/addon/edit/continuelist.js +++ b/addon/edit/continuelist.js @@ -11,7 +11,7 @@ })(function(CodeMirror) { "use strict"; - var listRE = /^(\s*)([*+-]|(\d+)\.)(\s*)/, + var listRE = /^(\s*)([*+-]|(\d+)\.)(\s+)/, unorderedBullets = "*+-"; CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) { diff --git a/addon/fold/foldgutter.css b/addon/fold/foldgutter.css index 49805393d0..ad19ae2d3e 100644 --- a/addon/fold/foldgutter.css +++ b/addon/fold/foldgutter.css @@ -10,7 +10,6 @@ } .CodeMirror-foldgutter-open, .CodeMirror-foldgutter-folded { - color: #555; cursor: pointer; } .CodeMirror-foldgutter-open:after { diff --git a/addon/fold/foldgutter.js b/addon/fold/foldgutter.js index 4db8259294..bd31ec4d9b 100644 --- a/addon/fold/foldgutter.js +++ b/addon/fold/foldgutter.js @@ -58,7 +58,7 @@ function marker(spec) { if (typeof spec == "string") { var elt = document.createElement("div"); - elt.className = spec; + elt.className = spec + " CodeMirror-guttermarker-subtle"; return elt; } else { return spec.cloneNode(true); diff --git a/addon/hint/xml-hint.js b/addon/hint/xml-hint.js index 1e8e50cf72..e31b09b5fc 100644 --- a/addon/hint/xml-hint.js +++ b/addon/hint/xml-hint.js @@ -68,9 +68,16 @@ if (typeof atValues == 'function') atValues = atValues.call(this, cm); // Functions can be used to supply values for autocomplete widget if (token.type == "string") { prefix = token.string; + var n = 0; if (/['"]/.test(token.string.charAt(0))) { quote = token.string.charAt(0); prefix = token.string.slice(1); + n++; + } + var len = token.string.length; + if (/['"]/.test(token.string.charAt(len - 1))) { + quote = token.string.charAt(len - 1); + prefix = token.string.substr(n, len - 2); } replaceToken = true; } diff --git a/addon/selection/active-line.js b/addon/selection/active-line.js index 28b9e018b3..22da2e0aac 100644 --- a/addon/selection/active-line.js +++ b/addon/selection/active-line.js @@ -49,7 +49,9 @@ function updateActiveLines(cm, ranges) { var active = []; for (var i = 0; i < ranges.length; i++) { - var line = cm.getLineHandleVisualStart(ranges[i].head.line); + var range = ranges[i]; + if (!range.empty()) continue; + var line = cm.getLineHandleVisualStart(range.head.line); if (active[active.length - 1] != line) active.push(line); } if (sameArray(cm.state.activeLines, active)) return; diff --git a/addon/tern/tern.js b/addon/tern/tern.js index 7a0845350d..9bd69446a2 100644 --- a/addon/tern/tern.js +++ b/addon/tern/tern.js @@ -106,7 +106,7 @@ cm.showHint({hint: this.getHint}); }, - showType: function(cm, pos) { showType(this, cm, pos); }, + showType: function(cm, pos, c) { showType(this, cm, pos, c); }, updateArgHints: function(cm) { updateArgHints(this, cm); }, @@ -239,7 +239,7 @@ // Type queries - function showType(ts, cm, pos) { + function showType(ts, cm, pos, c) { ts.request(cm, "type", function(error, data) { if (error) return showError(ts, cm, error); if (ts.options.typeTip) { @@ -254,6 +254,7 @@ } } tempTooltip(cm, tip); + if (c) c(); }, pos); } diff --git a/bin/release b/bin/release index 3c33290f3f..ba6630aaa8 100755 --- a/bin/release +++ b/bin/release @@ -20,9 +20,11 @@ rewrite("lib/codemirror.js", function(lib) { return lib.replace(/CodeMirror\.version = "\d+\.\d+\.\d+"/, "CodeMirror.version = \"" + number + "\""); }); -rewrite("package.json", function(pack) { +function rewriteJSON(pack) { return pack.replace(/"version":"\d+\.\d+\.\d+"/, "\"version\":\"" + number + "\""); -}); +} +rewrite("package.json", rewriteJSON); +rewrite("bower.json", rewriteJSON); rewrite("doc/manual.html", function(manual) { return manual.replace(/>version \d+\.\d+\.\d+<\/span>/, ">version " + number + ""); }); diff --git a/bower.json b/bower.json index 66e049dfbe..80b379f14b 100644 --- a/bower.json +++ b/bower.json @@ -1,5 +1,6 @@ { "name": "CodeMirror", + "version":"4.3.0", "main": ["lib/codemirror.js", "lib/codemirror.css"], "ignore": [ "**/.*", diff --git a/demo/lint.html b/demo/lint.html index 8372c52c47..2129885298 100644 --- a/demo/lint.html +++ b/demo/lint.html @@ -9,7 +9,7 @@ - + diff --git a/demo/markselection.html b/demo/markselection.html index 454933264f..93e38ec833 100644 --- a/demo/markselection.html +++ b/demo/markselection.html @@ -1,6 +1,6 @@ -