我正在尝试为 CodeMirror 编写 Prolog 模式,而我主要是 JavaScript 和 CodeMirror 新手。我现在正在研究一些特定的布局任务。if-then-else 的 Prolog 布局样式之一是
head(Arg) :-
( if
-> then
; else
).
我使用的编辑器(SWI-Prolog 的 PceEmacs)通过制作 (、> 和 ; 活动字符并查看我们是否在 if-then-else 中来实现这一点。键入“(”将插入“(”,键入 > 前面带有“ -”将对齐并插入“->”和类似的“;”。我能看到的最接近的是使用electricChars ">;",这让我可以缩进,但不允许我在标点符号后添加空格。如何完成了吗?