(cm, pos)
| 393 | ContentEditableInput.prototype.needsContentAttribute = true |
| 394 | |
| 395 | function posToDOM(cm, pos) { |
| 396 | let view = findViewForLine(cm, pos.line) |
| 397 | if (!view || view.hidden) return null |
| 398 | let line = getLine(cm.doc, pos.line) |
| 399 | let info = mapFromLineView(view, line, pos.line) |
| 400 | |
| 401 | let order = getOrder(line, cm.doc.direction), side = "left" |
| 402 | if (order) { |
| 403 | let partPos = getBidiPartAt(order, pos.ch) |
| 404 | side = partPos % 2 ? "right" : "left" |
| 405 | } |
| 406 | let result = nodeAndOffsetInLineMap(info.map, pos.ch, side) |
| 407 | result.offset = result.collapse == "right" ? result.end : result.start |
| 408 | return result |
| 409 | } |
| 410 | |
| 411 | function isInGutter(node) { |
| 412 | for (let scan = node; scan; scan = scan.parentNode) |
no test coverage detected