Как программно запускать события клавиатуры в Monaco Editor

При написании генеративного набора тестов для редакторов кода я пытаюсь программно вызвать обработчики событий, которые обрабатывают KeyboardEventв Монако. Создание new KeyboardEvent({...}) и отправка его в текстовое поле или корневой редактор не работала.

Например, как мы можем перевести редактор в следующие состояния:

  1. Вставить "abc" => abc|
  2. Переместить курсор на -1 => ab|c
  3. Удалить один раз => a|c
  4. Тип "х" => ax|c

2 ответа

Пытаться

editor.trigger(monaco.KeyMod.CtrlCmd + monaco.KeyCode.KEY_P, 'type', { text: 'some text' });

получите список всех поддерживаемых действий, используя этот код:

        editor.getSupportedActions().forEach((value) => {
        console.log(value);
    });

в редакторе Monaco есть пример триггерной функции, которая может вам подойти:

      editor.trigger('keyboard', 'type', {text: 'abc'})

editor.trigger('keyboard', 'deleteLeft', null);

editor.trigger('keyboard', 'deleteRight', null);

editor.trigger('keyboard', 'selectAll', null);

editor.trigger('keyboard', 'tab', null);

editor.trigger('keyboard', 'deleteLeft', null)

editor.trigger('keyboard', 'cursorEnd', null)

editor.trigger('keyboard', 'cursorHome', null)

editor.trigger('keyboard', 'cursorTop', null)

editor.trigger('keyboard', 'cursorBottom', null)

editor.trigger('keyboard', 'undo', null)

editor.trigger('keyboard', 'redo', null)

editor.trigger('source', 'editor.action.formatDocument', null)

editor.trigger('editor', 'gotoLine', {lineNumber: 10, column: 5})
Другие вопросы по тегам