diff --git a/lib/codemirror.js b/lib/codemirror.js index f771880464ef7949d3f59c67cbce7dc9927a8d2e..1d3cb03d184102c50d8c8dfc016c4b1f81730d6e 100644 --- a/lib/codemirror.js +++ b/lib/codemirror.js @@ -7622,9 +7622,9 @@ var spans = line.markedSpans; if (spans) for (var i = 0; i < spans.length; i++) { var span = spans[i]; - if (!(lineNo == from.line && from.ch > span.to || - span.from == null && lineNo != from.line|| - lineNo == to.line && span.from > to.ch) && + if (!(span.to != null && lineNo == from.line && from.ch > span.to || + span.from == null && lineNo != from.line || + span.from != null && lineNo == to.line && span.from > to.ch) && (!filter || filter(span.marker))) found.push(span.marker.parent || span.marker); } diff --git a/test/test.js b/test/test.js index 01efbce86662c1e2aecc9445eef1e68177b4001c..82ee231e35e2d0dbe96205475b6348f6774b3cde 100644 --- a/test/test.js +++ b/test/test.js @@ -509,6 +509,13 @@ testCM("markClearBetween", function(cm) { eq(cm.findMarksAt(Pos(1, 1)).length, 0); }); +testCM("findMarksMiddle", function(cm) { + var mark = cm.markText(Pos(1, 1), Pos(3, 1)); + var found = cm.findMarks(Pos(2, 1), Pos(2, 2)); + eq(found.length, 1); + eq(found[0], mark); +}, {value: "line 0\nline 1\nline 2\nline 3"}); + testCM("deleteSpanCollapsedInclusiveLeft", function(cm) { var from = Pos(1, 0), to = Pos(1, 1); var m = cm.markText(from, to, {collapsed: true, inclusiveLeft: true});