From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Leo Liu Newsgroups: gmane.emacs.bugs Subject: bug#14395: 24.3; [PATCH] new feature smie-highlight-matching-block Date: Fri, 17 May 2013 09:30:34 +0800 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1368754316 7788 80.91.229.3 (17 May 2013 01:31:56 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 17 May 2013 01:31:56 +0000 (UTC) Cc: 14395@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri May 17 03:31:55 2013 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Ud9WU-0008BM-QK for geb-bug-gnu-emacs@m.gmane.org; Fri, 17 May 2013 03:31:55 +0200 Original-Received: from localhost ([::1]:33546 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ud9WU-0006aU-1Z for geb-bug-gnu-emacs@m.gmane.org; Thu, 16 May 2013 21:31:54 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:33718) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ud9WQ-0006aE-NB for bug-gnu-emacs@gnu.org; Thu, 16 May 2013 21:31:51 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ud9WP-0006Xq-QJ for bug-gnu-emacs@gnu.org; Thu, 16 May 2013 21:31:50 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:59733) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ud9WP-0006Xm-M7 for bug-gnu-emacs@gnu.org; Thu, 16 May 2013 21:31:49 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1Ud9Wc-0006bG-FA for bug-gnu-emacs@gnu.org; Thu, 16 May 2013 21:32:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Leo Liu Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 17 May 2013 01:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14395 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 14395-submit@debbugs.gnu.org id=B14395.136875426325300 (code B ref 14395); Fri, 17 May 2013 01:32:02 +0000 Original-Received: (at 14395) by debbugs.gnu.org; 17 May 2013 01:31:03 +0000 Original-Received: from localhost ([127.0.0.1]:48091 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Ud9Vf-0006a0-AG for submit@debbugs.gnu.org; Thu, 16 May 2013 21:31:03 -0400 Original-Received: from mail-pa0-f50.google.com ([209.85.220.50]:47599) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Ud9Vd-0006ZM-C7 for 14395@debbugs.gnu.org; Thu, 16 May 2013 21:31:02 -0400 Original-Received: by mail-pa0-f50.google.com with SMTP id fb10so3045585pad.9 for <14395@debbugs.gnu.org>; Thu, 16 May 2013 18:30:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:cc:subject:references:face:date:in-reply-to :message-id:user-agent:mime-version:content-type; bh=T6xi1SlUX2Kl8C7lz/ElNVlUCdJYAHkLv30O7kJ3xkk=; b=bZP0LwElO/fkMEW3dfUfxQ53eIfXoB4z+PxvDSTtjEM/qRYD6Pn8yqGY2QiK4bUwdZ ifrCVT5e1rPOUBD9LjaEbZgkvaQZETe+j54KCD5F8vijseB0tO5R5RW05y2SZ74v6XUa 4KNvwUYVBYCMn1USAdsnEd9Qzd0w6XjEYfP3uRHcXQNm6BFD4eRQYTR3EH9vf4ZnqniX eJaLSJHz1GOmQ1/VLq10jFLVSgCpQGuNOtK8x1l7w8HE/GouaQEuqUepQoG7FiLzAxB6 tXarR/jt7KA44xhOpUGgB7Jo4uG38YZnTExMu2PY2pu1VusCVSl6p4dJcdkbkd9JGvar q5TA== X-Received: by 10.66.250.131 with SMTP id zc3mr28095666pac.157.1368754242103; Thu, 16 May 2013 18:30:42 -0700 (PDT) Original-Received: from localhost (li511-224.members.linode.com. [66.175.216.224]) by mx.google.com with ESMTPSA id xu10sm9813460pab.3.2013.05.16.18.30.39 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Thu, 16 May 2013 18:30:41 -0700 (PDT) Face: iVBORw0KGgoAAAANSUhEUgAAACgAAAAoBAMAAAB+0KVeAAAAElBMVEUAAAAAAP+LRRP0pGC+ vr7///+7mT1iAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9cBBwMO DhglKe4AAAEsSURBVCjPbZNBboQwDEV/Cd4X9QJRThApmn0XYW+Jyf2v0m+HhqDBgiAe9rcTG7QH w/1Vn2Ar8gBb/ocywSN3qK9T3z4eFDB4eApocBpeBs1RSykoJd8gQcm8pGmHXFso3ajnmsqV0TnY DQkOfXUfN5NwaI7AWTVOyEhcu1aHmdWItHddUVUcUgUBCkitu8V6ditHVOVdqzl2EQ1ZVGTbdK0V 7cqn8vWzoU5Q/bF9Y/Y0cRU1xwkys5dJ+Dt6pBDWifcNQml8Gh2JVmPSoQzo7en0grswkxrUGYJ7 0hSxxAGr7ZMwYcHIzprpi7TENEE1xtiYxixRlCfPBsUUrwHD7uGIwATrbnODJcVrPpVn3hxiGloe m/S+z3CtuzUSMo83N4DPH+F0evwR3P4A2k+75838OKQAAAAASUVORK5CYII= In-Reply-To: (Stefan Monnier's message of "Thu, 16 May 2013 20:40:39 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (OS X 10.8.3) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:74351 Archived-At: On 2013-05-17 08:40 +0800, Stefan Monnier wrote: > But in terms of functionality, your minor mode provides a behavior > comparable to show-paren-mode, I think. I agree. > So maybe the better thing to do now is to try and see how to integrate > so that it "just works" for people who use show-paren-mode. Just like > smie-blink-matching-open makes blink-matching-paren "just work". Would it be OK if we let show-paren-mode turn on smie-highlight-matching-block-mode? I just realised that it doesn't clean up the overlays when smie-highlight-matching-block-mode is turned off. Should I install something like this? An alternative fix might be not to make smie--highlight-matching-block-overlay buffer-local which is easier to clean up. diff --git a/lisp/emacs-lisp/smie.el b/lisp/emacs-lisp/smie.el index 21134578..3e78b76b 100644 --- a/lisp/emacs-lisp/smie.el +++ b/lisp/emacs-lisp/smie.el @@ -1095,10 +1095,17 @@ (define-minor-mode smie-highlight-matching-block-mode nil (when (timerp smie--highlight-matching-block-timer) (cancel-timer smie--highlight-matching-block-timer)) (setq smie--highlight-matching-block-timer nil) - (when smie-highlight-matching-block-mode - (remove-hook 'post-self-insert-hook #'smie-blink-matching-open 'local) - (setq smie--highlight-matching-block-timer - (run-with-idle-timer 0.2 t #'smie-highlight-matching-block)))) + (if smie-highlight-matching-block-mode + (progn + (remove-hook 'post-self-insert-hook #'smie-blink-matching-open 'local) + (setq smie--highlight-matching-block-timer + (run-with-idle-timer 0.2 t #'smie-highlight-matching-block))) + ;; Clean up. + (dolist (b (buffer-list)) + (with-current-buffer b + (when (overlayp smie--highlight-matching-block-overlay) + (delete-overlay smie--highlight-matching-block-overlay) + (kill-local-variable smie--highlight-matching-block-overlay)))))) ;;; The indentation engine.