求助 company-mode 与 自定义 show paren when cursor inside 这个advice冲突。

大家好,我是刚刚接触到emacs的初学者。我在 @zilongshanren 的教程中见到了一个函数:

  ;; ;; show paren when cursor inside
  ;; (define-advice show-paren-function (:around (fn) fix-show-paren-function)
  ;;   "Highlight enclosing parens."
  ;;   (cond ((looking-at-p "\\s(") (funcall fn))
  ;;         (t (save-excursion
  ;;              (ignore-errors (backward-up-list))
  ;;              (funcall fn))))))

可是在使用过程中与 company-mode的候选框高亮产生了冲突,如下

本来应该只高亮第七行的大括号,但是顺带将company-mode的背景行也高亮了,但如果闭括号的位置不在候选框之前,似乎不受影响。 如果不是在紧挨闭括号那一行输入,则一切正常。 请问我该怎么修改这段代码呢?

也许和你需要的不太一样,你可以看下mic-paren 这个包。作用是当你的光标位于其中一个括号上时,高亮与其配对的括号;以及当你输入右括号时在minibuffer打印配对的左括号的信息。

还有 rainbow-delimiters 把不同层的配对括号用不同颜色高亮,方便视觉上区分

可以看看这个 https://github.com/tsdh/highlight-parentheses.el

1 个赞

谢谢,这个可以完全替代啦!

1 个赞

rainbow-delimiters 很好用!谢谢!