cloudcmd/client/modules/edit-names-vim.js
2018-06-07 11:57:34 +03:00

55 lines
1.1 KiB
JavaScript

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