all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Alan Mackenzie <acm@muc.de>
Cc: emacs-devel@gnu.org
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	[thread overview]
Message-ID: <jwv61fkuqmb.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <20141016095326.GC3421@acm.acm> (Alan Mackenzie's message of "Thu, 16 Oct 2014 09:53:26 +0000")

> 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
>> <point>   }
> Yes.

>> ?  If so, I guess we should also do it in cases such as:
>> foo(blabla<point>);
> 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



  reply	other threads:[~2014-10-16 12:59 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-11 13:43 Proposed extension of show-paren-mode: Highlight parens when point is in L or R margin Alan Mackenzie
2014-10-11 14:21 ` Eli Zaretskii
2014-10-12  8:39   ` Alan Mackenzie
2014-10-12  8:55     ` David Kastrup
2014-10-12  9:25       ` Alan Mackenzie
2014-10-12  9:01     ` Eli Zaretskii
2014-10-12 10:18       ` Alan Mackenzie
2014-10-12  4:12 ` Stefan Monnier
2014-10-12 10:04   ` Alan Mackenzie
2014-10-14 17:49     ` Stefan Monnier
2014-10-14 18:32       ` John Yates
2014-10-15  9:12       ` Alan Mackenzie
2014-10-15 22:38         ` Andy Moreton
2014-10-16  2:43         ` Stefan Monnier
2014-10-16  9:53           ` Alan Mackenzie
2014-10-16 12:59             ` Stefan Monnier [this message]
2014-10-16 13:31               ` Alan Mackenzie
2014-10-16 14:37                 ` Stefan Monnier
2014-10-16 15:46                   ` Alan Mackenzie
2014-10-16 17:40                     ` Stefan Monnier
2014-10-16 21:26                       ` Alan Mackenzie
2014-10-17  0:14                         ` Stefan Monnier
2014-10-14 21:50 ` João Távora

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=jwv61fkuqmb.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=acm@muc.de \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.