我正在尝试为CodeMirror编写Prolog模式,而我主要是JavaScript和CodeMirror新手。我现在正在研究一些特定的布局任务。 if-then-else的Prolog布局样式之一是
head(Arg) :-
( if
-> then
; else
).
我使用的编辑器(SWI-Prolog的PceEmacs)通过制作(,>和;活跃字符)来实现这一点 看看我们是否在if-then-else。键入“(”将插入“(”,键入> with 前面的“ - ”将对齐并插入“ - >”,类似于“;”。我能看到的最接近的是使用 electricChars“&gt ;;”,它让我缩进确定,但不要让我在标点符号后添加空格。怎么做的?
答案 0 :(得分:2)
将一个键绑定到,例如"'('"
,然后在您的处理函数中查看您的上下文是否适用,如果适用,请调用.replaceSelection("( ", "end")
,如果没有,则返回CodeMirror.Pass
让默认行为发生。