Какой код клавиши для открытой фигурной скобки { - PullRequest
0 голосов
/ 30 марта 2019

Я создаю экземпляр кода зеркала с системой автозаполнения, которая будет активироваться при любом нажатии клавиши. Но всякий раз, когда вы набираете: {автозаполнение все равно появляется, даже если есть оператор if, блокирующий код 219 от показа автозаполнения. Причина, по которой я хочу прекратить {открывать меню автозаполнения, заключается в том, что пользователь обычно нажимает клавишу Enter, чтобы перейти вниз по строке, но он добавляет предложение автозаполнения. Я уже пытался использовать charCode, но это не сработало.

вот мой код:

editor.on("keyup", function (cm, event) {
            if (!cm.state.completionActive && event.keyCode != 13 && event.keyCode != 219) { 
                CodeMirror.commands.autocomplete(cm, null, {completeSingle: false});
            }
        });

Я хочу, чтобы он не открывал меню автозаполнения в codemirror, когда пользователь нажимает {

Ответы [ 2 ]

0 голосов
/ 30 марта 2019

Я понял это, заменив keyCode на charCode и изменив событие на keypress.

editor.on("keypress", function (cm, event) {
            if (!cm.state.completionActive && event.charCode != 13 && event.charCode != 123) {
                CodeMirror.commands.autocomplete(cm, null, {completeSingle: false});
            }
        });
0 голосов
/ 30 марта 2019

Вы используете && с клавишей Enter и {, поэтому он никогда не перейдет в условие if

editor.on("keyup", function (cm, event) {
        if (!cm.state.completionActive && (event.keyCode != 13 || event.charCode != 219)) { 
            CodeMirror.commands.autocomplete(cm, null, {completeSingle: false});
        }
    });
...