(cm, pos)
| 166 | return endOfLine(true, cm, line, lineN, -1) |
| 167 | } |
| 168 | function lineStartSmart(cm, pos) { |
| 169 | let start = lineStart(cm, pos.line) |
| 170 | let line = getLine(cm.doc, start.line) |
| 171 | let order = getOrder(line, cm.doc.direction) |
| 172 | if (!order || order[0].level == 0) { |
| 173 | let firstNonWS = Math.max(start.ch, line.text.search(/\S/)) |
| 174 | let inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch |
| 175 | return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky) |
| 176 | } |
| 177 | return start |
| 178 | } |