(doc, pos, oldPos, bias, mayClear)
| 2278 | |
| 2279 | // Ensure a given position is not inside an atomic range. |
| 2280 | function skipAtomic(doc, pos, oldPos, bias, mayClear) { |
| 2281 | var dir = bias || 1; |
| 2282 | var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) || |
| 2283 | (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) || |
| 2284 | skipAtomicInner(doc, pos, oldPos, -dir, mayClear) || |
| 2285 | (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true)); |
| 2286 | if (!found) { |
| 2287 | doc.cantEdit = true; |
| 2288 | return Pos(doc.first, 0); |
| 2289 | } |
| 2290 | return found; |
| 2291 | } |
| 2292 | |
| 2293 | function movePos(doc, pos, dir, line) { |
| 2294 | if (dir < 0 && pos.ch == 0) { |
no test coverage detected