(cm, lineN)
| 8615 | } |
| 8616 | |
| 8617 | function lineStart(cm, lineN) { |
| 8618 | var line = getLine(cm.doc, lineN); |
| 8619 | var visual = visualLine(line); |
| 8620 | if (visual != line) lineN = lineNo(visual); |
| 8621 | var order = getOrder(visual); |
| 8622 | var ch = !order ? 0 : order[0].level % 2 ? lineRight(visual) : lineLeft(visual); |
| 8623 | return Pos(lineN, ch); |
| 8624 | } |
| 8625 | function lineEnd(cm, lineN) { |
| 8626 | var merged, line = getLine(cm.doc, lineN); |
| 8627 | while (merged = collapsedSpanAtEnd(line)) { |