typescript 更改ace编辑器Codemirror扩展中的“delete”函数以执行附加检查

zbdgwd5y  于 2023-08-07  发布在  TypeScript
关注(0)|答案(1)|浏览(155)

我目前的目标是改变行为,使所有删除整行或几行的vim命令仅在满足某些条件时才执行。本主题帮助我覆盖了删除功能:Replacing the standard behaviour of the delete line hotkey "dd" in Ace editor's Vim mode with a function call但是我无法从删除函数被覆盖的函数中调用它的原始实现,以便在不满足条件的情况下它的行为正常。

import * as ace from 'ace-builds';
this.aceEditor = ace.edit(this.editor.nativeElement);
ace.require('ace/keybindings/vim');
this.aceEditor.setKeyboardHandler('ace/keyboard/vim');

ace.config.loadModule('ace/keyboard/vim', () => {
  var VimApi = ace.require('ace/keyboard/vim').CodeMirror.Vim;
  VimApi.defineOperator(
    'delete',
     this.deleteCurrentLineIfSolved.bind(this)
  );
});

deleteCurrentLineIfSolved(event, signal) {
    // if condition is met, call original implementation of delete here
    // else, do nothing
}

字符串
删除函数似乎存储在某种形式的'operators'数组中,github.com/ajaxorg/ace/blob/master/src/keyboard/vim.js#L3182,但我不确定如何导入或访问它。
如果你能帮忙的话,我将不胜感激。

oxalkeyp

oxalkeyp1#

这个功能似乎不存在,所以我在/keyboard/vim. js文件中实现了一个返回delete函数的函数,并成功地使用了它。

相关问题