Paredit 在关闭 parens 时忽略注释

Paredit ignore comments when closing parens

我经常 运行 在使用 paredit 时遇到如下情况,在下面的代码片段中 | 我想关闭悬挂的括号,例如。

(let ((foo 1)| ; blag
      )
  nil)

变成

(let ((foo 1)) ; blag
  nil)

在此处输入 ) 又名 paredit-close-parenthesis

如果评论不在行中,paredit 将关闭括号并删除 space。有没有人有启用此功能的好方法?

查看代码,paredit 似乎捕获了我可以添加处理程序的错误,所以我想知道是否有简单的解决方案。

我想覆盖它似乎到目前为止有效。

(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 仍然卡在评论处,也需要覆盖。