MCPcopy Create free account
hub / github.com/OpenEndedGroup/Field2 / move

Function move

lib/web/CodeMirror/keymap/vim.js:576–601  ·  view source on GitHub ↗
(cm, offset)

Source from the content-addressed store, hash-verified

574 }
575 }
576 function move(cm, offset) {
577 pointer += offset;
578 if (pointer > head) {
579 pointer = head;
580 } else if (pointer < tail) {
581 pointer = tail;
582 }
583 var mark = buffer[(size + pointer) % size];
584 // skip marks that are temporarily removed from text buffer
585 if (mark && !mark.find()) {
586 var inc = offset > 0 ? 1 : -1;
587 var newCur;
588 var oldCur = cm.getCursor();
589 do {
590 pointer += inc;
591 mark = buffer[(size + pointer) % size];
592 // skip marks that are the same as current position
593 if (mark &&
594 (newCur = mark.find()) &&
595 !cursorEqual(oldCur, newCur)) {
596 break;
597 }
598 } while (pointer < head && pointer > tail);
599 }
600 return mark;
601 }
602 function find(cm, offset) {
603 var oldPointer = pointer;
604 var mark = move(cm, offset);

Callers 1

findFunction · 0.70

Calls 2

cursorEqualFunction · 0.85
findMethod · 0.45

Tested by

no test coverage detected