首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Paredit在关闭括号时忽略注释

Paredit在关闭括号时忽略注释
EN

Stack Overflow用户
提问于 2019-02-02 06:04:00
回答 1查看 46关注 0票数 0

在使用paredit时,我经常会遇到下面这样的情况,在下面的代码片段中,我想要关闭悬空的|,例如。

代码语言:javascript
复制
(let ((foo 1)| ; blag
      )
  nil)

变成了

代码语言:javascript
复制
(let ((foo 1)) ; blag
  nil)

在该位置输入),也就是paredit-close-parenthesis

如果评论不在行上,paredit会关闭paren并删除空格。有没有人有一个好的方法来启用这个功能?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-02 06:39:40

我想,到目前为止,覆盖它似乎是可行的。

代码语言:javascript
复制
(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仍然停留在注释上,也需要被覆盖。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54487737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档