cloudcmd/client/modules/edit-file-vim.js
2017-05-18 16:49:12 +03:00

47 lines
944 B
JavaScript

'use strict';
/* global CloudCmd */
const exec = require('execon');
const Key = CloudCmd.Key;
const Events = require('../dom/events');
CloudCmd.EditFileVim = function EditFileVimProto(callback) {
const EditFileVim = this;
const ConfigView = {
bindKeys: false,
beforeClose: () => {
Events.rmKey(listener);
}
};
function init(callback) {
exec.series([
CloudCmd.EditFile,
callback || EditFileVim.show,
]);
}
this.show = () => {
Events.addKey(listener);
CloudCmd.EditFile
.show(ConfigView)
.getEditor()
.setOption('keyMap', 'vim');
};
this.hide = () => {
CloudCmd.Edit.hide();
};
function listener({keyCode, shiftKey}) {
if (shiftKey && keyCode === Key.ESC)
EditFileVim.hide();
}
init(callback);
};