|
186 | 186 | state.timeout = setTimeout(function(){startLinting(cm);}, state.options.delay || 500); |
187 | 187 | } |
188 | 188 |
|
189 | | - function popupSpanTooltip(ann, e) { |
| 189 | + function popupTooltips(annotations, e) { |
190 | 190 | var target = e.target || e.srcElement; |
191 | | - showTooltipFor(e, annotationTooltip(ann), target); |
| 191 | + var tooltip = document.createDocumentFragment(); |
| 192 | + for (var i = 0; i < annotations.length; i++) { |
| 193 | + var ann = annotations[i]; |
| 194 | + tooltip.appendChild(annotationTooltip(ann)); |
| 195 | + } |
| 196 | + showTooltipFor(e, tooltip, target); |
192 | 197 | } |
193 | 198 |
|
194 | 199 | function onMouseOver(cm, e) { |
195 | 200 | var target = e.target || e.srcElement; |
196 | 201 | if (!/\bCodeMirror-lint-mark-/.test(target.className)) return; |
197 | 202 | var box = target.getBoundingClientRect(), x = (box.left + box.right) / 2, y = (box.top + box.bottom) / 2; |
198 | 203 | var spans = cm.findMarksAt(cm.coordsChar({left: x, top: y}, "client")); |
| 204 | + |
| 205 | + var annotations = []; |
199 | 206 | for (var i = 0; i < spans.length; ++i) { |
200 | | - var ann = spans[i].__annotation; |
201 | | - if (ann) return popupSpanTooltip(ann, e); |
| 207 | + annotations.push(spans[i].__annotation); |
202 | 208 | } |
| 209 | + if (annotations.length) popupTooltips(annotations, e); |
203 | 210 | } |
204 | 211 |
|
205 | 212 | CodeMirror.defineOption("lint", false, function(cm, val, old) { |
|
0 commit comments