MCPcopy
hub / github.com/witheve/Eve / Vim

Function Vim

src/codemirror.js:9574–14404  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

9572 var Pos = CodeMirror.Pos;
9573
9574 var Vim = function() {
9575 function enterVimMode(cm) {
9576 cm.setOption('disableInput', true);
9577 cm.setOption('showCursorWhenSelecting', false);
9578 CodeMirror.signal(cm, "vim-mode-change", {mode: "normal"});
9579 cm.on('cursorActivity', onCursorActivity);
9580 maybeInitVimState(cm);
9581 CodeMirror.on(cm.getInputField(), 'paste', getOnPasteFn(cm));
9582 }
9583
9584 function leaveVimMode(cm) {
9585 cm.setOption('disableInput', false);
9586 cm.off('cursorActivity', onCursorActivity);
9587 CodeMirror.off(cm.getInputField(), 'paste', getOnPasteFn(cm));
9588 cm.state.vim = null;
9589 }
9590
9591 function detachVimMap(cm, next) {
9592 if (this == CodeMirror.keyMap.vim)
9593 CodeMirror.rmClass(cm.getWrapperElement(), "cm-fat-cursor");
9594
9595 if (!next || next.attach != attachVimMap)
9596 leaveVimMode(cm, false);
9597 }
9598 function attachVimMap(cm, prev) {
9599 if (this == CodeMirror.keyMap.vim)
9600 CodeMirror.addClass(cm.getWrapperElement(), "cm-fat-cursor");
9601
9602 if (!prev || prev.attach != attachVimMap)
9603 enterVimMode(cm);
9604 }
9605
9606 // Deprecated, simply setting the keymap works again.
9607 CodeMirror.defineOption('vimMode', false, function(cm, val, prev) {
9608 if (val && cm.getOption("keyMap") != "vim")
9609 cm.setOption("keyMap", "vim");
9610 else if (!val && prev != CodeMirror.Init && /^vim/.test(cm.getOption("keyMap")))
9611 cm.setOption("keyMap", "default");
9612 });
9613
9614 function cmKey(key, cm) {
9615 if (!cm) { return undefined; }
9616 if (this[key]) { return this[key]; }
9617 var vimKey = cmKeyToVimKey(key);
9618 if (!vimKey) {
9619 return false;
9620 }
9621 var cmd = CodeMirror.Vim.findKey(cm, vimKey);
9622 if (typeof cmd == 'function') {
9623 CodeMirror.signal(cm, 'vim-keypress', vimKey);
9624 }
9625 return cmd;
9626 }
9627
9628 var modifiers = {'Shift': 'S', 'Ctrl': 'C', 'Alt': 'A', 'Cmd': 'D', 'Mod': 'A'};
9629 var specialKeys = {Enter:'CR',Backspace:'BS',Delete:'Del',Insert:'Ins'};
9630 function cmKeyToVimKey(key) {
9631 if (key.charAt(0) == '\'') {

Callers 1

codemirror.jsFile · 0.85

Calls 15

matchMethod · 0.95
eatWhileMethod · 0.95
eatMethod · 0.95
nextMethod · 0.95
backUpMethod · 0.95
eolMethod · 0.95
eatSpaceMethod · 0.95
makeKeyRangeFunction · 0.85
defineOptionFunction · 0.85
maybeInitVimStateFunction · 0.85
handleKeyInsertModeFunction · 0.85
handleKeyNonInsertModeFunction · 0.85

Tested by

no test coverage detected