在使用paredit时,我经常会遇到下面这样的情况,在下面的代码片段中,我想要关闭悬空的|,例如。
(let ((foo 1)| ; blag
)
nil)变成了
(let ((foo 1)) ; blag
nil)在该位置输入),也就是paredit-close-parenthesis。
如果评论不在行上,paredit会关闭paren并删除空格。有没有人有一个好的方法来启用这个功能?
看一下代码,paredit似乎捕捉到了我可以添加处理程序的地方的错误,所以我想知道是否有简单的解决方案。
发布于 2019-02-02 06:39:40
我想,到目前为止,覆盖它似乎是可行的。
(defun my-paredit-close-round (&optional arg)
(interactive "P")
(if arg (paredit-close-round)
(let ((beg (point)) ;keep comment on same line
(cmt (paredit-find-comment-on-line)))
(paredit-move-past-close ?\))
(and cmt (save-excursion
(unless (eq (line-number-at-pos) (line-number-at-pos beg))
(goto-char beg))
(insert (car cmt)))))))
(advice-add 'paredit-close-round :override #'my-paredit-close-round)然而,paredit-backward-barf-sexp仍然停留在注释上,也需要被覆盖。
https://stackoverflow.com/questions/54487737
复制相似问题