* On controlling rectangle-preview
@ 2016-07-19 23:32 Mark Oteiza
2016-07-20 1:32 ` Stefan Monnier
0 siblings, 1 reply; 11+ messages in thread
From: Mark Oteiza @ 2016-07-19 23:32 UTC (permalink / raw)
To: emacs-devel; +Cc: Stefan Monnier
The automatic preview can be pretty jarring, especially when doing
rectangle-string in one place (some mode, language, what-have-you), then
going someplace else, doing rectangle-string and seeing the preview when
the plan is to enter something completely different.
To avoid this I'd like to prevent the preview unless text is entered
into the minibuffer by typing, M-{n,p}, or otherwise.
Not sure if there is a better way to control this other than introducing
a parameter. For the reasons above I'd prefer this to be nil by default,
but whatever:
diff --git a/lisp/rect.el b/lisp/rect.el
index 8803a47..9c8fb29 100644
--- a/lisp/rect.el
+++ b/lisp/rect.el
@@ -407,10 +407,15 @@ rectangle-preview
:version "25.1"
:type 'boolean)
+(defcustom rectangle-preview-default t
+ "If non-nil, `string-rectangle' shows the default without minibuffer input."
+ :version "25.2"
+ :type 'boolean)
+
(defun rectangle--string-preview ()
(when rectangle-preview
(let ((str (minibuffer-contents)))
- (when (equal str "")
+ (when (and rectangle-preview-default (equal str ""))
(setq str (or (car-safe minibuffer-default)
(if (stringp minibuffer-default) minibuffer-default))))
(when str (setq str (propertize str 'face 'rectangle-preview)))
--
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: On controlling rectangle-preview
2016-07-19 23:32 On controlling rectangle-preview Mark Oteiza
@ 2016-07-20 1:32 ` Stefan Monnier
2016-07-20 2:25 ` Mark Oteiza
0 siblings, 1 reply; 11+ messages in thread
From: Stefan Monnier @ 2016-07-20 1:32 UTC (permalink / raw)
To: Mark Oteiza; +Cc: emacs-devel
> The automatic preview can be pretty jarring, especially when doing
> rectangle-string in one place (some mode, language, what-have-you), then
> going someplace else, doing rectangle-string and seeing the preview when
> the plan is to enter something completely different.
FWIW, I also find it unsatisfactory in some cases. Which cases annoy me
depends on whether the text I'm about to insert is related to the last
text I inserted via that mechanism, so there's no way Emacs can tell
whether it'll be annoying or not.
> Not sure if there is a better way to control this other than introducing
> a parameter.
Agreed. I thought about delaying the preview a bit when str is "", but
it's fiddly and not very convincing either.
> For the reasons above I'd prefer this to be nil by default,
I could live with it being nil by default (or even without any option
at all).
> - (when (equal str "")
> + (when (and rectangle-preview-default (equal str ""))
But I think the preview should not be inhibited when str is "" *again*
(i.e. when str is "" as a result of minibuffer modifications rather than
as a result of inaction).
Stefan
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: On controlling rectangle-preview
2016-07-20 1:32 ` Stefan Monnier
@ 2016-07-20 2:25 ` Mark Oteiza
2016-07-20 12:37 ` Stefan Monnier
0 siblings, 1 reply; 11+ messages in thread
From: Mark Oteiza @ 2016-07-20 2:25 UTC (permalink / raw)
To: Stefan Monnier; +Cc: emacs-devel
On 19/07/16 at 09:32pm, Stefan Monnier wrote:
> > The automatic preview can be pretty jarring, especially when doing
> > rectangle-string in one place (some mode, language, what-have-you), then
> > going someplace else, doing rectangle-string and seeing the preview when
> > the plan is to enter something completely different.
>
> FWIW, I also find it unsatisfactory in some cases. Which cases annoy me
> depends on whether the text I'm about to insert is related to the last
> text I inserted via that mechanism, so there's no way Emacs can tell
> whether it'll be annoying or not.
>
> > Not sure if there is a better way to control this other than introducing
> > a parameter.
>
> Agreed. I thought about delaying the preview a bit when str is "", but
> it's fiddly and not very convincing either.
>
> > For the reasons above I'd prefer this to be nil by default,
>
> I could live with it being nil by default (or even without any option
> at all).
>
> > - (when (equal str "")
> > + (when (and rectangle-preview-default (equal str ""))
>
> But I think the preview should not be inhibited when str is "" *again*
> (i.e. when str is "" as a result of minibuffer modifications rather than
> as a result of inaction).
To me that seems a little odd (unexpected behaviour), and with an empty
minibuffer the default preview is only an M-n away.
Since rectangle--string-preview's scope seems to just be in the
minibuffer it looks like it can be done by locally setting
rectangle-preview-default => t (or otherwise making that condition
truthy) after the first `let' in rectangle--string-preview.
Another parameter? Or rectangle-preview could be made a ternary-or-so option.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: On controlling rectangle-preview
2016-07-20 2:25 ` Mark Oteiza
@ 2016-07-20 12:37 ` Stefan Monnier
2016-07-20 23:00 ` Mark Oteiza
0 siblings, 1 reply; 11+ messages in thread
From: Stefan Monnier @ 2016-07-20 12:37 UTC (permalink / raw)
To: Mark Oteiza; +Cc: emacs-devel
> To me that seems a little odd (unexpected behaviour),
Hmm... I can see that.
> and with an empty minibuffer the default preview is only an M-n away.
Good point. So I think your patch is OK as is, tho I'm not sure the
custom variable is worth the trouble.
Stefan
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: On controlling rectangle-preview
2016-07-20 12:37 ` Stefan Monnier
@ 2016-07-20 23:00 ` Mark Oteiza
2016-07-21 7:03 ` John Wiegley
0 siblings, 1 reply; 11+ messages in thread
From: Mark Oteiza @ 2016-07-20 23:00 UTC (permalink / raw)
To: Stefan Monnier; +Cc: John Wiegley, Eli Zaretskii, emacs-devel
On 20/07/16 at 08:37am, Stefan Monnier wrote:
> > To me that seems a little odd (unexpected behaviour),
>
> Hmm... I can see that.
>
> > and with an empty minibuffer the default preview is only an M-n away.
>
> Good point. So I think your patch is OK as is, tho I'm not sure the
> custom variable is worth the trouble.
Sounds good to me, thanks.
This ends up bring very simple--permission to push to emacs-25?
diff --git a/lisp/rect.el b/lisp/rect.el
index 8803a47..a86d155 100644
--- a/lisp/rect.el
+++ b/lisp/rect.el
@@ -410,9 +410,6 @@ rectangle-preview
(defun rectangle--string-preview ()
(when rectangle-preview
(let ((str (minibuffer-contents)))
- (when (equal str "")
- (setq str (or (car-safe minibuffer-default)
- (if (stringp minibuffer-default) minibuffer-default))))
(when str (setq str (propertize str 'face 'rectangle-preview)))
(with-selected-window rectangle--string-preview-window
(unless (or (null rectangle--string-preview-state)
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: On controlling rectangle-preview
2016-07-20 23:00 ` Mark Oteiza
@ 2016-07-21 7:03 ` John Wiegley
2016-07-21 14:28 ` Eli Zaretskii
0 siblings, 1 reply; 11+ messages in thread
From: John Wiegley @ 2016-07-21 7:03 UTC (permalink / raw)
To: Mark Oteiza; +Cc: Eli Zaretskii, Stefan Monnier, emacs-devel
>>>>> Mark Oteiza <mvoteiza@udel.edu> writes:
> This ends up bring very simple--permission to push to emacs-25?
If Eli agrees, it looks safe enough to me for the release.
--
John Wiegley GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: On controlling rectangle-preview
2016-07-21 7:03 ` John Wiegley
@ 2016-07-21 14:28 ` Eli Zaretskii
[not found] ` <CAKyxw136-9VCuSJMJ4qW4tunhUqvgpTDtjGjXf7vFxh52=9vdQ@mail.gmail.com>
0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2016-07-21 14:28 UTC (permalink / raw)
To: John Wiegley; +Cc: mvoteiza, monnier, emacs-devel
> From: John Wiegley <jwiegley@gmail.com>
> Cc: Stefan Monnier <monnier@iro.umontreal.ca>, emacs-devel@gnu.org, Eli Zaretskii <eliz@gnu.org>
> Date: Thu, 21 Jul 2016 00:03:25 -0700
>
> > This ends up bring very simple--permission to push to emacs-25?
>
> If Eli agrees, it looks safe enough to me for the release.
Sorry, I'm confused by the last message in the discussion of the
patch. This started by introducing a new defcustom that controls the
preview, but ended with a patch adding no defcustom and instead
deleting 3 lines? What did I miss (specifically between
http://lists.gnu.org/archive/html/emacs-devel/2016-07/msg00845.html,
which approves the original patch, and
http://lists.gnu.org/archive/html/emacs-devel/2016-07/msg00911.html,
which presents a totally different one)?
And why is it needed in emacs-25? Is there some urgent or
particularly nasty problem involved that we'd like to fix ASAP?
Thanks.
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2016-07-21 20:57 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-19 23:32 On controlling rectangle-preview Mark Oteiza
2016-07-20 1:32 ` Stefan Monnier
2016-07-20 2:25 ` Mark Oteiza
2016-07-20 12:37 ` Stefan Monnier
2016-07-20 23:00 ` Mark Oteiza
2016-07-21 7:03 ` John Wiegley
2016-07-21 14:28 ` Eli Zaretskii
[not found] ` <CAKyxw136-9VCuSJMJ4qW4tunhUqvgpTDtjGjXf7vFxh52=9vdQ@mail.gmail.com>
[not found] ` <CAKyxw12WcYDBdEkOc3qMf6MOeC+npxVpVdzVz=hByNUObxw6tw@mail.gmail.com>
2016-07-21 14:54 ` Mark Oteiza
2016-07-21 15:20 ` Stefan Monnier
2016-07-21 16:06 ` Eli Zaretskii
2016-07-21 20:57 ` Mark Oteiza
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).