(cm, lineN)
| 8647 | } |
| 8648 | |
| 8649 | function lineStart(cm, lineN) { |
| 8650 | var line = getLine(cm.doc, lineN); |
| 8651 | var visual = visualLine(line); |
| 8652 | if (visual != line) lineN = lineNo(visual); |
| 8653 | var order = getOrder(visual); |
| 8654 | var ch = !order ? 0 : order[0].level % 2 ? lineRight(visual) : lineLeft(visual); |
| 8655 | return Pos(lineN, ch); |
| 8656 | } |
| 8657 | function lineEnd(cm, lineN) { |
| 8658 | var merged, line = getLine(cm.doc, lineN); |
| 8659 | while (merged = collapsedSpanAtEnd(line)) { |