From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Proposed extension of show-paren-mode: Highlight parens when point is in L or R margin. Date: Thu, 16 Oct 2014 08:59:40 -0400 Message-ID: References: <20141011134312.GA4148@acm.acm> <20141012100416.GC3148@acm.acm> <20141015091208.GA3093@acm.acm> <20141016095326.GC3421@acm.acm> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1413464408 28844 80.91.229.3 (16 Oct 2014 13:00:08 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 16 Oct 2014 13:00:08 +0000 (UTC) Cc: emacs-devel@gnu.org To: Alan Mackenzie Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Oct 16 15:00:01 2014 Return-path: Envelope-to: ged-emacs-devel@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 1Xeket-0002vR-TP for ged-emacs-devel@m.gmane.org; Thu, 16 Oct 2014 15:00:00 +0200 Original-Received: from localhost ([::1]:50291 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xeket-0001iQ-K4 for ged-emacs-devel@m.gmane.org; Thu, 16 Oct 2014 08:59:59 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43115) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xekej-0001Z1-BB for emacs-devel@gnu.org; Thu, 16 Oct 2014 08:59:56 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xekeb-0000vx-Ki for emacs-devel@gnu.org; Thu, 16 Oct 2014 08:59:49 -0400 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.181]:52062) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xekeb-0000vq-Gu for emacs-devel@gnu.org; Thu, 16 Oct 2014 08:59:41 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArUGAIDvNVNFxKjo/2dsb2JhbABZgwaDSsA9gRcXdIIlAQEBAQIBViMFCwsOJhIUGA0kiAQI0hkXjnoHhDgEqRmBaoFxgVsh X-IPAS-Result: ArUGAIDvNVNFxKjo/2dsb2JhbABZgwaDSsA9gRcXdIIlAQEBAQIBViMFCwsOJhIUGA0kiAQI0hkXjnoHhDgEqRmBaoFxgVsh X-IronPort-AV: E=Sophos;i="4.97,753,1389762000"; d="scan'208";a="94343540" Original-Received: from 69-196-168-232.dsl.teksavvy.com (HELO pastel.home) ([69.196.168.232]) by ironport2-out.teksavvy.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 16 Oct 2014 08:59:40 -0400 Original-Received: by pastel.home (Postfix, from userid 20848) id 5CAA685A2; Thu, 16 Oct 2014 08:59:40 -0400 (EDT) In-Reply-To: <20141016095326.GC3421@acm.acm> (Alan Mackenzie's message of "Thu, 16 Oct 2014 09:53:26 +0000") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 206.248.154.181 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:175453 Archived-At: > How about the following model: > foo = /* */ bar; /* comment */ > PPPPPPPPPPPP P > CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC > ? Sounds fine, yes. foo = /* */ bar; /* comment */ PPPPPPPPPPPP P P CCCCCCCCCCCCCCCC CCCCCCCCCCCCC would be OK as well, I think. >> >> This would make it clear that the behavior is unchanged when >> >> show-paren-when-point-in-periphery is nil, and also makes it clear what >> >> is the effect of setting show-paren-when-point-in-periphery to non-nil. >> > That's neat. But it wouldn't be quite the same. It would be a quite >> > restricted version of what I'm proposing: e.g. point in the LH periphery >> > wouldn't then trigger a paren at "end of core", >> I don't understand which case you're referring to. Can you give an >> example of such a "point in the LH periphery; paren at end of core"? > (defface show-paren-mismatch > '((((class color)) (:foreground "white" :background "purple")) > (t (:inverse-video t))) > "Face used for a mismatching paren." > :group 'paren-showing-faces) <-------- paren > ^ > | > point Ah, so now your periphery extends to the next line. That means you get an ambiguity for (defun foo () (do one thing) (do another) ^ | point where both the close paren on the previous line and the open paren on the same line could be chosen. >> > nor even a close paren at "beginning of core" (which happens a little >> > in lisp, a lot in C). >> So you also want to highlight the matching opening paren in the case >> } > Yes. >> ? If so, I guess we should also do it in cases such as: >> foo(blabla); > Hmmm. Maybe. OK, sounds good. There have already been requests for that kind of feature. > But this whole idea was meant just to be a simple extension. It's actually simpler to make it apply "everywhere" than only in a few particular cases. >> > Maybe `show-paren-data-function' should be, too. >> Why? It was introduced for the benefit of smie.el, so it's typically >> set buffer-locally by major-modes, which makes it a poor fit for >> a defcustom. > OK. > So, to sum up, I'll remove comments from the definition of "periphery", > and make that variable a defcustom. I don't think you need to see > another amended patch. To tell you the truth, I didn't like much the last show-paren--default you showed me. I think this new feature should be "completely" external and mostly keep the old code untouched. Stefan