MCPcopy Index your code
hub / github.com/witheve/Eve / executeMacroRegister

Function executeMacroRegister

src/codemirror.js:14137–14171  ·  view source on GitHub ↗
(cm, vim, macroModeState, registerName)

Source from the content-addressed store, hash-verified

14135 };
14136
14137 function executeMacroRegister(cm, vim, macroModeState, registerName) {
14138 var register = vimGlobalState.registerController.getRegister(registerName);
14139 if (registerName == ':') {
14140 // Read-only register containing last Ex command.
14141 if (register.keyBuffer[0]) {
14142 exCommandDispatcher.processCommand(cm, register.keyBuffer[0]);
14143 }
14144 macroModeState.isPlaying = false;
14145 return;
14146 }
14147 var keyBuffer = register.keyBuffer;
14148 var imc = 0;
14149 macroModeState.isPlaying = true;
14150 macroModeState.replaySearchQueries = register.searchQueries.slice(0);
14151 for (var i = 0; i < keyBuffer.length; i++) {
14152 var text = keyBuffer[i];
14153 var match, key;
14154 while (text) {
14155 // Pull off one command key, which is either a single character
14156 // or a special sequence wrapped in '<' and '>', e.g. '<Space>'.
14157 match = (/<\w+-.+?>|<\w+>|./).exec(text);
14158 key = match[0];
14159 text = text.substring(match.index + key.length);
14160 CodeMirror.Vim.handleKey(cm, key, 'macro');
14161 if (vim.insertMode) {
14162 var changes = register.insertModeChanges[imc++].changes;
14163 vimGlobalState.macroModeState.lastInsertModeChanges.changes =
14164 changes;
14165 repeatInsertModeChanges(cm, changes, 1);
14166 exitInsertMode(cm);
14167 }
14168 }
14169 };
14170 macroModeState.isPlaying = false;
14171 }
14172
14173 function logKey(macroModeState, key) {
14174 if (macroModeState.isPlaying) { return; }

Callers 1

VimFunction · 0.85

Calls 2

repeatInsertModeChangesFunction · 0.85
exitInsertModeFunction · 0.85

Tested by

no test coverage detected