有没有类似于DrRacket关闭括号时会highligh region的包呀

一般的包,当输入)的都是highlight开始括号(
或者一开始就会自动补全)

但是感觉DrRacket这种方式会好有成就感,把function一个个close掉。

%20

感觉这是电瓶车回到自行车……不过要不要自动插入右括号和高亮没有必然关系哦?

自己写一个应该没几行,(bounds-of-thing-at-point 'list)取得points,参考web-mode的tag overlay实现,在post-command-hook里加东西,overlay函数是这样:

(defun web-mode-highlight-current-element ()
  (let ((ctx (web-mode-element-boundaries)) len)
    (cond
     ((null ctx)
      (web-mode-delete-tag-overlays))
     (t
      (web-mode-make-tag-overlays)
      (setq len (length (get-text-property (caar ctx) 'tag-name)))
      (move-overlay web-mode-overlay-tag-start (+ (caar ctx) 1) (+ (caar ctx) 1 len))
      (move-overlay web-mode-overlay-tag-end (+ (cadr ctx) 2) (+ (cadr ctx) 2 len))
      ) ;t
     ) ;cond
    ))

(defun web-mode-make-tag-overlays ()
  (unless web-mode-overlay-tag-start
    (setq web-mode-overlay-tag-start (make-overlay 1 1)
          web-mode-overlay-tag-end (make-overlay 1 1))
    (overlay-put web-mode-overlay-tag-start
                 'font-lock-face
                 'web-mode-current-element-highlight-face)
    (overlay-put web-mode-overlay-tag-end
                 'font-lock-face
                 'web-mode-current-element-highlight-face)))
2 个赞

括号成对处理,就不可能出现不匹配的情况,比手动管理好上一万倍。

不过可以试试 show-paren-mode 提供的 show-paren-style

1 个赞