我正在创建一个带有自动完成系统的代码镜像实例,该系统将在任何按键时激活。但无论何时键入:{即使存在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中打开自动完成菜单
您正在使用带有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});
}
});
我通过用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});
}
});