[已解决] Emacs 27, rust-mode, 如何让单引号自动的 autopair, 但是,单引号前面如果是 & 则例外。

使用下面的示例来解释:


当光标在下面的 | 位置输入单引号时,会自动的 auto pair.

assert_eq!(|);

结果变为:

assert_eq!('')

但是如果是输入 ’ 时,光标前面是一个 &, 我希望它不会 autopair.

let str: &|

此时输入 ',则结果如下:

let str: &'

我目前的做法是在 rust-mode hook 里,修改了 electric-pair-pairs

(add-to-list (make-local-variable 'electric-pair-pairs) '(?' . ?'))

这会让所有情况下,单引号都 autopair, 我不知道该在什么地方增加类似 (looking-back "&") 的逻辑。

谢谢。