* messages override minibuffer input @ 2007-09-08 4:23 Roland Winkler 2007-09-08 14:48 ` Stefan Monnier ` (2 more replies) 0 siblings, 3 replies; 45+ messages in thread From: Roland Winkler @ 2007-09-08 4:23 UTC (permalink / raw) To: emacs-devel I am always annoyed when emacs is waiting for input in the minibuffer, and in the meanwhile an (idle-) timer function kicks in, producing a message that overrides the content displayed in the minibuffer. I was once told that timer functions should be designed such that they do not produce any output. I do not know whether this is always a good strategy. On the other hand, I do not know how many (too many?) packages violate such a strategy. (Probably, it would help if the elisp manual gave a recommendation concerning the usage of noisy functions inside timer functions.) However, I believe that interactive minibuffer input could compete or cooperate in a more flexible / customizable way with noisy timer functions. For example, I can think of a user option that allows one to specify after how much idle time a noisy timer function may override the content displayed in the minibuffer. (Nonetheless, such messages could always go to the *Messages* buffer.) Or that option could allow to specify a time minimum for minibuffer inactivity till any timer function is allowed to kick in. Often, the problem occurs for me while I am inactive for just a second or two. So it seems to me that, anyway, there are not too many jobs emacs can get done during that time. Roland ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-08 4:23 messages override minibuffer input Roland Winkler @ 2007-09-08 14:48 ` Stefan Monnier 2007-09-10 21:41 ` Davis Herring [not found] ` <E1IUCJ9-0000VV-9H@fencepost.gnu.org> 2 siblings, 0 replies; 45+ messages in thread From: Stefan Monnier @ 2007-09-08 14:48 UTC (permalink / raw) To: Roland Winkler; +Cc: emacs-devel > However, I believe that interactive minibuffer input could compete or > cooperate in a more flexible / customizable way with noisy timer > functions. For example, I can think of a user option that allows one Another way to do it is to make such async-messages appear *after* the current minibuffer's content (typically enclosed on backets, as is done for completion messages). Stefan ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-08 4:23 messages override minibuffer input Roland Winkler 2007-09-08 14:48 ` Stefan Monnier @ 2007-09-10 21:41 ` Davis Herring 2007-09-11 20:30 ` Richard Stallman 2007-09-12 9:25 ` Johannes Weiner [not found] ` <E1IUCJ9-0000VV-9H@fencepost.gnu.org> 2 siblings, 2 replies; 45+ messages in thread From: Davis Herring @ 2007-09-10 21:41 UTC (permalink / raw) To: Roland Winkler; +Cc: emacs-devel > I am always annoyed when emacs is waiting for input in the > minibuffer, and in the meanwhile an (idle-) timer function kicks in, > producing a message that overrides the content displayed in the > minibuffer. I was once told that timer functions should be designed > such that they do not produce any output. I do not know whether this > is always a good strategy. On the other hand, I do not know how many > (too many?) packages violate such a strategy. (Probably, it would > help if the elisp manual gave a recommendation concerning the usage > of noisy functions inside timer functions.) When I have written timers that produced output, it has been "informational" output which is not critical to see; then I have merely skipped printing unless the echo area either is empty or contains my timer's previous output, and the minibuffer is not active. Would this be a good general function to provide? (What follows is not tested; I don't have known-working code to hand.) (defvar optional-message nil "The last message shown with the function `optional-message'.") (defun optional-message (fmt &rest args) "Display a message if there's nothing better being displayed." (or (active-minibuffer-window) (not (eq (current-message) optional-message)) (message "%s" (setq optional-message (apply 'format fmt args))))) I suppose some provision could be made for putting the message into *Messages* even if it's not displayed, but I'm not sure what the best way to do that is. Davis -- This product is sold by volume, not by mass. If it appears too dense or too sparse, it is because mass-energy conversion has occurred during shipping. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-10 21:41 ` Davis Herring @ 2007-09-11 20:30 ` Richard Stallman 2007-09-12 22:32 ` Davis Herring 2007-09-12 9:25 ` Johannes Weiner 1 sibling, 1 reply; 45+ messages in thread From: Richard Stallman @ 2007-09-11 20:30 UTC (permalink / raw) To: herring; +Cc: emacs-devel, Roland.Winkler When I have written timers that produced output, it has been "informational" output which is not critical to see; then I have merely skipped printing unless the echo area either is empty or contains my timer's previous output, and the minibuffer is not active. Would this be a good general function to provide? Can you look for places in the sources where it would be right to use `optional-message'? If you find many, then the function would be a good feature. I suppose some provision could be made for putting the message into *Messages* even if it's not displayed, but I'm not sure what the best way to do that is. You can write Lisp code to do the same things now done at C level. We could also turn that C code into a subr, if that is useful. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-11 20:30 ` Richard Stallman @ 2007-09-12 22:32 ` Davis Herring 2007-09-13 3:23 ` Luc Teirlinck 2007-09-14 7:05 ` Richard Stallman 0 siblings, 2 replies; 45+ messages in thread From: Davis Herring @ 2007-09-12 22:32 UTC (permalink / raw) To: rms; +Cc: emacs-devel, roland.winkler > Can you look for places in the sources where it would be right to use > `optional-message'? If you find many, then the function would be a good > feature. Places where `optional-message' might be useful: autorevert.el, in `auto-revert-handler' desktop.el, in `desktop-idle-create-buffers' help-at-pt.el: see approximate reimplementation in `help-at-pt-maybe-display' speedbar.el, in `speedbar-timer-fn' emacs-lisp/eldoc.el, in `eldoc-message', perhaps to replace `eldoc-display-message-no-interference-p' perhaps erc/erc-backend.el, in the PRIVMSG response handler perhaps erc/erc-notify.el, in `erc-notify-timer' gnus/mm-decode.el, in the process sentinels in `mm-display-external' gnus/nntp.el, in `nntp-accept-process-output' progmodes/cperl-mode.el, in `cperl-get-help' progmodes/idlwave.el, in `idlwave-load-rinfo-next-step' progmodes/vhdl-mode.el, in `vhdl-print-warnings' textmodes/reftex-dcr.el: see approximate reimplementation in `reftex-view-crossref-when-idle' emacs-lock.el, in `emacs-lock-clear-sentinel' find-dired.el, in `find-dired-sentinel' man.el, in `Man-notify-when-ready' pcvs.el, in `cvs-sentinel' vc-arch.el, in the lambdas created in `vc-arch-trim-make-sentinel' eshell/esh-proc.el, in `eshell-remove-process-entry' progmodes/sql.el, in `sql-stop' perhaps progmodes/xscheme.el, in `xscheme-process-sentinel' url/url.el: see approximate reimplementation in `url-lazy-message' I just checked lisp/; I do not think very much asynchronous messaging occurs in src/. > You can write Lisp code to do the same things now done at C level. We > could also turn that C code into a subr, if that is useful. True, but how should client code request it? I can't add an optional argument to `optional-message' and have it work like `message' now, of course. Davis -- This product is sold by volume, not by mass. If it appears too dense or too sparse, it is because mass-energy conversion has occurred during shipping. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-12 22:32 ` Davis Herring @ 2007-09-13 3:23 ` Luc Teirlinck 2007-09-13 4:23 ` Davis Herring 2007-09-14 7:05 ` Richard Stallman 1 sibling, 1 reply; 45+ messages in thread From: Luc Teirlinck @ 2007-09-13 3:23 UTC (permalink / raw) To: herring; +Cc: roland.winkler, rms, emacs-devel help-at-pt.el: see approximate reimplementation in `help-at-pt-maybe-display' Yes, but the difference with the way I read (quickly) your function is fundamental: `help-at-pt-maybe-display' _does_ override a "Quit" message and this is absolutely necessary for correct functioning. So at least this function should be left as is. Sincerely, Luc. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-13 3:23 ` Luc Teirlinck @ 2007-09-13 4:23 ` Davis Herring 0 siblings, 0 replies; 45+ messages in thread From: Davis Herring @ 2007-09-13 4:23 UTC (permalink / raw) To: Luc Teirlinck; +Cc: roland.winkler, rms, emacs-devel > Yes, but the difference with the way I read (quickly) your function is > fundamental: `help-at-pt-maybe-display' _does_ override a "Quit" > message and this is absolutely necessary for correct functioning. > So at least this function should be left as is. I don't claim that my suggested implementation is final; perhaps a way to override certain existing messages could be included. (One could already simply let-bind the variable `optional-message' to pretend that "Quit" was the last one, but that would fail when the existing message was some other optional message to be overwritten. As a kludge, one could call `optional-message' with and without the let-binding, but at that point the existing implementation is probably better.) Davis -- This product is sold by volume, not by mass. If it appears too dense or too sparse, it is because mass-energy conversion has occurred during shipping. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-12 22:32 ` Davis Herring 2007-09-13 3:23 ` Luc Teirlinck @ 2007-09-14 7:05 ` Richard Stallman 1 sibling, 0 replies; 45+ messages in thread From: Richard Stallman @ 2007-09-14 7:05 UTC (permalink / raw) To: herring; +Cc: roland.winkler, emacs-devel You have found plenty of justification for adding `optional-message'. > You can write Lisp code to do the same things now done at C level. We > could also turn that C code into a subr, if that is useful. True, but how should client code request it? I can't add an optional argument to `optional-message' and have it work like `message' now, of course. Is it right for clients to have to request it? I think it should be controlled by a user option, that's all. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-10 21:41 ` Davis Herring 2007-09-11 20:30 ` Richard Stallman @ 2007-09-12 9:25 ` Johannes Weiner 2007-09-12 10:24 ` Johannes Weiner 2007-09-12 16:28 ` Davis Herring 1 sibling, 2 replies; 45+ messages in thread From: Johannes Weiner @ 2007-09-12 9:25 UTC (permalink / raw) To: Davis Herring; +Cc: emacs-devel, Roland Winkler [-- Attachment #1.1: Type: text/plain, Size: 707 bytes --] Hi, On Mon, Sep 10, 2007 at 02:41:26PM -0700, Davis Herring wrote: > (defvar optional-message nil > "The last message shown with the function `optional-message'.") > (defun optional-message (fmt &rest args) > "Display a message if there's nothing better being displayed." > (or (active-minibuffer-window) > (not (eq (current-message) optional-message)) > (message "%s" (setq optional-message (apply 'format fmt args))))) ELISP> (progn (setq foo "foo") (message foo) (eq (current-message) foo)) nil This function calls `message' only when the minibuffer is active. I am sorry, I can not follow that logic. How likely is it anyway that two EQUAL strings are messaged in a row? Hannes [-- Attachment #1.2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] [-- Attachment #2: Type: text/plain, Size: 142 bytes --] _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-12 9:25 ` Johannes Weiner @ 2007-09-12 10:24 ` Johannes Weiner 2007-09-12 16:25 ` Davis Herring 2007-09-12 16:28 ` Davis Herring 1 sibling, 1 reply; 45+ messages in thread From: Johannes Weiner @ 2007-09-12 10:24 UTC (permalink / raw) To: Davis Herring, Roland Winkler, emacs-devel [-- Attachment #1.1: Type: text/plain, Size: 755 bytes --] Hi, On Wed, Sep 12, 2007 at 11:25:45AM +0200, Johannes Weiner wrote: > > (defun optional-message (fmt &rest args) > > "Display a message if there's nothing better being displayed." > > (or (active-minibuffer-window) > > (not (eq (current-message) optional-message)) > > (message "%s" (setq optional-message (apply 'format fmt args))))) > > ELISP> (progn (setq foo "foo") (message foo) (eq (current-message) foo)) > nil > > This function calls `message' only when the minibuffer is active. Whoops, got it backwards. The call to `message' happens only when the minibuffer is inactive. But anyway, the second argument to `or' still seems useless to me, because `current-message' returns a new string object. Hannes [-- Attachment #1.2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] [-- Attachment #2: Type: text/plain, Size: 142 bytes --] _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-12 10:24 ` Johannes Weiner @ 2007-09-12 16:25 ` Davis Herring 0 siblings, 0 replies; 45+ messages in thread From: Davis Herring @ 2007-09-12 16:25 UTC (permalink / raw) To: Davis Herring, Roland Winkler, emacs-devel > Whoops, got it backwards. The call to `message' happens only when the > minibuffer is inactive. But anyway, the second argument to `or' still > seems > useless to me, because `current-message' returns a new string object. It is; I thought one could use eq here, but it seems equal is required. Which is not as good: a stream of unimportant messages could then proceed if the first of them happened to duplicate an important message. I guess we could stick an "unimportant" property on unimportant messages and then compare them with `equal-including-properties'. Davis -- This product is sold by volume, not by mass. If it appears too dense or too sparse, it is because mass-energy conversion has occurred during shipping. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-12 9:25 ` Johannes Weiner 2007-09-12 10:24 ` Johannes Weiner @ 2007-09-12 16:28 ` Davis Herring 1 sibling, 0 replies; 45+ messages in thread From: Davis Herring @ 2007-09-12 16:28 UTC (permalink / raw) To: Roland Winkler, emacs-devel > How likely is it anyway that two EQUAL strings are messaged in a row? Maybe you understand already, but the purpose of that test (the implementation of which I discuss in another message) is to allow the message to go through only if the last message displayed was also unimportant (that is, displayed with `optional-message'). Davis -- This product is sold by volume, not by mass. If it appears too dense or too sparse, it is because mass-energy conversion has occurred during shipping. ^ permalink raw reply [flat|nested] 45+ messages in thread
[parent not found: <E1IUCJ9-0000VV-9H@fencepost.gnu.org>]
* Re: messages override minibuffer input [not found] ` <E1IUCJ9-0000VV-9H@fencepost.gnu.org> @ 2007-09-16 3:23 ` Roland Winkler 2007-09-17 0:20 ` Richard Stallman 0 siblings, 1 reply; 45+ messages in thread From: Roland Winkler @ 2007-09-16 3:23 UTC (permalink / raw) To: rms; +Cc: emacs-devel On Sat Sep 8 2007 Richard Stallman wrote: > I am always annoyed when emacs is waiting for input in the > minibuffer, and in the meanwhile an (idle-) timer function kicks in, > producing a message that overrides the content displayed in the > minibuffer. > > Which are the packages and messages that actually annoy you in this > way? Maybe those packages should be changed, or silenced. I apologize the delayed reply. I had to do some more digging in the code to understand more precisley what annoys me: I have some timer functions that use autoloaded functions. A simple test case is (defun foo () (regexp-opt '("bar" "baz"))) (run-at-time 3 nil 'foo) This will create a message "Loading regexp-opt...done" if regexp-opt was not yet loaded. This message can override the content displayed in the minibuffer. If I understand the code correctly, the function do_autoload in eval.c normally calls load with arg NOMESSAGE being nil. So load issues a message. Would it make sense that load used something like optional-message? Roland ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-16 3:23 ` Roland Winkler @ 2007-09-17 0:20 ` Richard Stallman 2007-09-17 14:49 ` Roland Winkler ` (2 more replies) 0 siblings, 3 replies; 45+ messages in thread From: Richard Stallman @ 2007-09-17 0:20 UTC (permalink / raw) To: Roland Winkler; +Cc: emacs-devel If I understand the code correctly, the function do_autoload in eval.c normally calls load with arg NOMESSAGE being nil. So load issues a message. Would it make sense that load used something like optional-message? That change goes too far. In the case you describe, do_autoload should not display the message. But in many other cases it should. Perhaps do_autoload, when called from a timer, should not display the message. But it should put the message in *Messages*. Ideally it should display the message, but restore the previous echo area contents later. The hard part of that is arranging for the proper "later" time. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-17 0:20 ` Richard Stallman @ 2007-09-17 14:49 ` Roland Winkler 2007-09-17 22:24 ` Richard Stallman 2007-09-17 22:31 ` Davis Herring 2007-09-18 0:53 ` Stefan Monnier 2 siblings, 1 reply; 45+ messages in thread From: Roland Winkler @ 2007-09-17 14:49 UTC (permalink / raw) To: rms; +Cc: emacs-devel On Sun Sep 16 2007 Richard Stallman wrote: > If I understand the code correctly, the function do_autoload in > eval.c normally calls load with arg NOMESSAGE being nil. So load > issues a message. Would it make sense that load used something like > optional-message? > > That change goes too far. In the case you describe, do_autoload > should not display the message. But in many other cases it should. Would it be better to do what Stefan proposed in a previous post? Another way to do it is to make such async-messages appear *after* the current minibuffer's content (typically enclosed on backets, as is done for completion messages). Roland ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-17 14:49 ` Roland Winkler @ 2007-09-17 22:24 ` Richard Stallman 2007-09-22 15:18 ` Roland Winkler 0 siblings, 1 reply; 45+ messages in thread From: Richard Stallman @ 2007-09-17 22:24 UTC (permalink / raw) To: Roland Winkler; +Cc: emacs-devel Would it be better to do what Stefan proposed in a previous post? Another way to do it is to make such async-messages appear *after* the current minibuffer's content (typically enclosed on backets, as is done for completion messages). That method sounds good for some cases. Maybe it is good for this case. The next step is to propose specific conditions in which this method would be used. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-17 22:24 ` Richard Stallman @ 2007-09-22 15:18 ` Roland Winkler 2007-09-23 9:07 ` Richard Stallman 0 siblings, 1 reply; 45+ messages in thread From: Roland Winkler @ 2007-09-22 15:18 UTC (permalink / raw) To: rms; +Cc: emacs-devel On Mon Sep 17 2007 Richard Stallman wrote: > Another way to do it is to make such async-messages appear *after* > the current minibuffer's content (typically enclosed on backets, > as is done for completion messages). > > That method sounds good for some cases. Maybe it is good for this > case. The next step is to propose specific conditions in which this > method would be used. My knowledge is limited when it can happen that messages can override minibuffer input. Initially, I thought only of messages from asynchronous processes like timer functions. Then I realized that messages can also show up that refer to my current minibuffer input. For example, I want to do a regexp search for which I enter in the minibuffer something like "[}". Then I get the message "Mismatched parentheses" that overwrites my minibuffer input. Indeed, such messages have always confused me as much as the messages from asynchronous processes. I cannot think of any situation right now where it appears justified to me to overwrite the display of the minibuffer while I edit the content of the minibuffer. Stefan's suggestion appears much more transparent / less confusing to me. Roland ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-22 15:18 ` Roland Winkler @ 2007-09-23 9:07 ` Richard Stallman 2007-09-23 15:08 ` Roland Winkler 0 siblings, 1 reply; 45+ messages in thread From: Richard Stallman @ 2007-09-23 9:07 UTC (permalink / raw) To: Roland Winkler; +Cc: emacs-devel My knowledge is limited when it can happen that messages can override minibuffer input. Initially, I thought only of messages from asynchronous processes like timer functions. Then I realized that messages can also show up that refer to my current minibuffer input. In cases like this, the echo area message disappears after a few seconds, or whenever you type another character. So I think those are not a problem. Why do you consider that a problem? What about the timer case? Does the message disappear after a few seconds, or whenever you type another character? ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-23 9:07 ` Richard Stallman @ 2007-09-23 15:08 ` Roland Winkler 2007-09-23 21:54 ` Richard Stallman 0 siblings, 1 reply; 45+ messages in thread From: Roland Winkler @ 2007-09-23 15:08 UTC (permalink / raw) To: rms; +Cc: emacs-devel On Sun Sep 23 2007 Richard Stallman wrote: > My knowledge is limited when it can happen that messages can > override minibuffer input. Initially, I thought only of messages > from asynchronous processes like timer functions. Then I realized > that messages can also show up that refer to my current minibuffer > input. > > In cases like this, the echo area message disappears after a > few seconds, or whenever you type another character. So I think > those are not a problem. Why do you consider that a problem? It is true that a message like "Mismatched parentheses" disappears again after a few seconds. Yet quite generally, it confuses me when I type something and suddenly the text I have typed disappears. Even when the message disappears again when I continue typing, a smooth work flow requires that I know the last character I typed before the message appeared so that I know where to continue typing while something else is displayed. However, minibuffer input is often more complicated (for example, a regexp), i.e., I do need the visual feedback that I see what I have typed and even a temporary message "Mismatched parentheses" annoys me. (If I try to pay attention to the message overwriting the minibuffer, I will definitely forget how to continue typing.) > What about the timer case? Does the message disappear after > a few seconds, or whenever you type another character? In the timer case the message does not disappear by itself after a few seconds, i.e., it is always necessary to continue typing blindly. Roland ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-23 15:08 ` Roland Winkler @ 2007-09-23 21:54 ` Richard Stallman 2007-09-23 23:33 ` Roland Winkler ` (2 more replies) 0 siblings, 3 replies; 45+ messages in thread From: Richard Stallman @ 2007-09-23 21:54 UTC (permalink / raw) To: Roland Winkler; +Cc: emacs-devel Yet quite generally, it confuses me when I type something and suddenly the text I have typed disappears. Even when the message disappears again when I continue typing, a smooth work flow requires that I know the last character I typed before the message appeared so that I know where to continue typing while something else is displayed. If we put such messages at the end, that may cause the minibuffer to grow by a line. Would you find that disturbing? If not, perhaps the thing to do is to put the message below the current input, always growing the minibuffer. Or put the message above the minibuffer contents. What would you think of that? ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-23 21:54 ` Richard Stallman @ 2007-09-23 23:33 ` Roland Winkler 2007-09-24 18:19 ` Richard Stallman 2007-09-24 0:24 ` Drew Adams 2007-09-24 10:43 ` Johannes Weiner 2 siblings, 1 reply; 45+ messages in thread From: Roland Winkler @ 2007-09-23 23:33 UTC (permalink / raw) To: rms; +Cc: emacs-devel On Sun Sep 23 2007 Richard Stallman wrote: > Yet quite generally, it confuses me when I type something and > suddenly the text I have typed disappears. Even when the message > disappears again when I continue typing, a smooth work flow requires > that I know the last character I typed before the message appeared > so that I know where to continue typing while something else is > displayed. > > If we put such messages at the end, that may cause the minibuffer > to grow by a line. Would you find that disturbing? > > If not, perhaps the thing to do is to put the message below the > current input, always growing the minibuffer. Or put the message > above the minibuffer contents. What would you think of that? It appears more natural to me to put the message at the end than above the minibuffer contents. In a case like the message "Mismatched parentheses" point will usually be at the end of the minibuffer so that the relation between minibuffer input and the issued message is most obvious. (Conversely, one might argue that a message issued by a timer function is not related to the current minibuffer input. So if such a message was put above the minibuffer contents, that would make it more clear to the user that the message is asynchronous, not related to current minibuffer input. But such a "deluxe" solution might be difficult to implement. Also, it is in a way more confusing because a temporary message will make minibuffer input move by a line when the message disappears again.) Whether the message should go at the end of the current line or in a new line might depend on the window width. Generally, readability is best if there are no linebreaks within a message. For a narrow window it appears thus better to me if the message is displayed in a new line. If the window width is large it might be more convenient to append the message at the end of the current line. Even if the minibuffer grows by a line (thus shifting point upwards by one line), in my opinion this is by far less a nuisance because I know immediately what I typed last before the message popped up and where / how I want to continue typing. Currently, if (due to whatever reason) the minibuffer grows by a line while it is active, it will keep this maximum size till minibuffer input has been completed. I believe it would make sense to implement a similar policy for "minibuffer + (temporary) messages". Roland ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-23 23:33 ` Roland Winkler @ 2007-09-24 18:19 ` Richard Stallman 2007-09-25 1:06 ` Roland Winkler 0 siblings, 1 reply; 45+ messages in thread From: Richard Stallman @ 2007-09-24 18:19 UTC (permalink / raw) To: Roland Winkler; +Cc: emacs-devel It appears more natural to me to put the message at the end than above the minibuffer contents. Yes, but putting it at the end will require the minibuffer contents lines to shift up. Putting it at the beginning will allow those lines to remain where they are. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-24 18:19 ` Richard Stallman @ 2007-09-25 1:06 ` Roland Winkler 0 siblings, 0 replies; 45+ messages in thread From: Roland Winkler @ 2007-09-25 1:06 UTC (permalink / raw) To: rms; +Cc: emacs-devel On Mon Sep 24 2007 Richard Stallman wrote: > Yes, but putting it at the end will require the minibuffer contents > lines to shift up. Putting it at the beginning will allow those > lines to remain where they are. I see your point. Still it would appear odd and confusing to me if a message "Mismatched parentheses" was displayed before the actual text it refers to. Roland ^ permalink raw reply [flat|nested] 45+ messages in thread
* RE: messages override minibuffer input 2007-09-23 21:54 ` Richard Stallman 2007-09-23 23:33 ` Roland Winkler @ 2007-09-24 0:24 ` Drew Adams 2007-09-24 1:28 ` Roland Winkler 2007-09-24 10:43 ` Johannes Weiner 2 siblings, 1 reply; 45+ messages in thread From: Drew Adams @ 2007-09-24 0:24 UTC (permalink / raw) To: rms, Roland Winkler; +Cc: emacs-devel > Yet quite generally, it confuses me when I type something and > suddenly the text I have typed disappears. Even when the message > disappears again when I continue typing, a smooth work flow requires > that I know the last character I typed before the message appeared > so that I know where to continue typing while something else is > displayed. > > If we put such messages at the end, that may cause the minibuffer > to grow by a line. Would you find that disturbing? > > If not, perhaps the thing to do is to put the message below the > current input, always growing the minibuffer. Or put the message > above the minibuffer contents. What would you think of that? Please don't do that. In general, let's try to keep echo-area messages to one line. If they happen to be so long that they wrap, so be it. So I'd request that we append without a newline. ^ permalink raw reply [flat|nested] 45+ messages in thread
* RE: messages override minibuffer input 2007-09-24 0:24 ` Drew Adams @ 2007-09-24 1:28 ` Roland Winkler 2007-09-24 2:02 ` Drew Adams 0 siblings, 1 reply; 45+ messages in thread From: Roland Winkler @ 2007-09-24 1:28 UTC (permalink / raw) To: Drew Adams; +Cc: rms, emacs-devel On Sun Sep 23 2007 Drew Adams wrote: > > If we put such messages at the end, that may cause the minibuffer > > to grow by a line. Would you find that disturbing? > > > > If not, perhaps the thing to do is to put the message below the > > current input, always growing the minibuffer. Or put the message > > above the minibuffer contents. What would you think of that? > > Please don't do that. In general, let's try to keep echo-area messages to > one line. If they happen to be so long that they wrap, so be it. So I'd > request that we append without a newline. Maybe I misunderstand something here. I thought that the question was about messages placed at the end of a minibuffer line. So if the minibuffer takes already 70 display columns and the message requires another 70 columns I don't know how the message could fit into a standard window with 80 display columns unless the message is wrapped. In such a (standard?) case it would seem more natural to me to put the message completely into a new line. (But I do agree that this might be a matter of personal preference.) If, on the other hand, the last line displayed in the minibuffer takes only 30 columns and the message is a short "Mismatched parentheses" then it would be sufficient to display the message at the end of that line. Roland ^ permalink raw reply [flat|nested] 45+ messages in thread
* RE: messages override minibuffer input 2007-09-24 1:28 ` Roland Winkler @ 2007-09-24 2:02 ` Drew Adams 2007-09-24 3:20 ` Roland Winkler 2007-09-24 10:36 ` Robert J. Chassell 0 siblings, 2 replies; 45+ messages in thread From: Drew Adams @ 2007-09-24 2:02 UTC (permalink / raw) To: Roland Winkler; +Cc: rms, emacs-devel > > > If we put such messages at the end, that may cause the minibuffer > > > to grow by a line. Would you find that disturbing? > > > > > > If not, perhaps the thing to do is to put the message below the > > > current input, always growing the minibuffer. Or put the message > > > above the minibuffer contents. What would you think of that? > > > > Please don't do that. In general, let's try to keep echo-area > > messages to one line. If they happen to be so long that they > > wrap, so be it. So I'd request that we append without a newline. > > Maybe I misunderstand something here. I thought that the question > was about messages placed at the end of a minibuffer line. So if the > minibuffer takes already 70 display columns and the message requires > another 70 columns I don't know how the message could fit into a > standard window with 80 display columns unless the message is > wrapped. In such a (standard?) case it would seem more natural to me > to put the message completely into a new line. It will wrap anyway if it is too long for the window size. That is, the window width will automatically determine whether and where to visually add a new line. Different users have different width minibuffer windows. I, for instance, use a standalone minibuffer frame that stretches all the way across my display. On the display I'm using right now, it has room for 160 characters. When I'm use other displays, it is narrower or wider; it always fills the display width. It is not a good idea to start inserting newlines in message text based on assumptions of a standard (or any other) minibuffer width or height. Just treat the echo area as a single long line, and let it wrap as needed. That doesn't mean there could never be newlines in the echo area under any circumstances. I'm just saying that there is no good reason to add them for no good reason, and based on a window-size assumption. ^ permalink raw reply [flat|nested] 45+ messages in thread
* RE: messages override minibuffer input 2007-09-24 2:02 ` Drew Adams @ 2007-09-24 3:20 ` Roland Winkler 2007-09-24 10:36 ` Robert J. Chassell 1 sibling, 0 replies; 45+ messages in thread From: Roland Winkler @ 2007-09-24 3:20 UTC (permalink / raw) To: Drew Adams; +Cc: rms, emacs-devel On Sun Sep 23 2007 Drew Adams wrote: > It is not a good idea to start inserting newlines in message text based on > assumptions of a standard (or any other) minibuffer width or height. Just > treat the echo area as a single long line, and let it wrap as needed. > > That doesn't mean there could never be newlines in the echo area under any > circumstances. I'm just saying that there is no good reason to add them for > no good reason, and based on a window-size assumption. I do not know how difficult it might be to come up with a smart solution for inserting linebreaks. In the context of this thread a solution without or with linebreaks is equally acceptable for me. Roland ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-24 2:02 ` Drew Adams 2007-09-24 3:20 ` Roland Winkler @ 2007-09-24 10:36 ` Robert J. Chassell 2007-09-24 15:08 ` Drew Adams 1 sibling, 1 reply; 45+ messages in thread From: Robert J. Chassell @ 2007-09-24 10:36 UTC (permalink / raw) To: emacs-devel Drew Adams said [a line in the minibuffer] will wrap anyway if it is too long for the window size. Do you mean wrap with fill at the fill column (by convention 70 characters) or do you mean wrap without filling, which, on 80 column wide frames, may break a word between the 80 and 81 columns so the rest of the line can move down? -- Robert J. Chassell GnuPG Key ID: 004B4AC8 bob@rattlesnake.com bob@gnu.org http://www.rattlesnake.com http://www.teak.cc ^ permalink raw reply [flat|nested] 45+ messages in thread
* RE: messages override minibuffer input 2007-09-24 10:36 ` Robert J. Chassell @ 2007-09-24 15:08 ` Drew Adams 2007-09-24 16:11 ` Robert J. Chassell 0 siblings, 1 reply; 45+ messages in thread From: Drew Adams @ 2007-09-24 15:08 UTC (permalink / raw) To: bob, emacs-devel > [a line in the minibuffer] will wrap anyway if it is too long for > the window size. > > Do you mean wrap with fill at the fill column (by convention 70 > characters) or do you mean wrap without filling, which, on 80 column > wide frames, may break a word between the 80 and 81 columns so the > rest of the line can move down? I meant what I see, which is the latter. Isn't that what you see? Automatic filling would be inappropriate, as the echo area can contain stuff that is not just natural-language words, and it is impossible to know where to insert newlines appropriately. It might be inappropriate, for instance, to insert a newline in the middle of a string echoed as part of a message - e.g. `String: "foo bar"'. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-24 15:08 ` Drew Adams @ 2007-09-24 16:11 ` Robert J. Chassell 2007-09-24 16:53 ` Drew Adams 0 siblings, 1 reply; 45+ messages in thread From: Robert J. Chassell @ 2007-09-24 16:11 UTC (permalink / raw) To: emacs-devel I meant what I see, which [may break a word]. Isn't that what you see? That is what I see when I invoke `display-message-or-buffer' with a very long string as message. However, since `resize-mini-windows' was invented, when the information in the echo area displayed on more than one line, I think I have always seen it as properly filled for an 80 column frame but I may be wrong. -- Robert J. Chassell GnuPG Key ID: 004B4AC8 bob@rattlesnake.com bob@gnu.org http://www.rattlesnake.com http://www.teak.cc ^ permalink raw reply [flat|nested] 45+ messages in thread
* RE: messages override minibuffer input 2007-09-24 16:11 ` Robert J. Chassell @ 2007-09-24 16:53 ` Drew Adams 0 siblings, 0 replies; 45+ messages in thread From: Drew Adams @ 2007-09-24 16:53 UTC (permalink / raw) To: bob, emacs-devel > I meant what I see, which [may break a word]. Isn't that what you > see? > > That is what I see when I invoke `display-message-or-buffer' with a > very long string as message. > > However, since `resize-mini-windows' was invented, when the > information in the echo area displayed on more than one line, I > think I have always seen it as properly filled for an 80 column > frame but I may be wrong. I don't think I have ever seen such filling, but I too might be wrong. I hope it is not currently filling and won't in the future fill. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-23 21:54 ` Richard Stallman 2007-09-23 23:33 ` Roland Winkler 2007-09-24 0:24 ` Drew Adams @ 2007-09-24 10:43 ` Johannes Weiner 2007-09-24 11:12 ` David Kastrup 2 siblings, 1 reply; 45+ messages in thread From: Johannes Weiner @ 2007-09-24 10:43 UTC (permalink / raw) To: Richard Stallman; +Cc: emacs-devel, Roland Winkler [-- Attachment #1.1: Type: text/plain, Size: 1247 bytes --] Hi, On Sun, Sep 23, 2007 at 05:54:44PM -0400, Richard Stallman wrote: > If we put such messages at the end, that may cause the minibuffer > to grow by a line. Would you find that disturbing? > > If not, perhaps the thing to do is to put the message below the > current input, always growing the minibuffer. Or put the message > above the minibuffer contents. What would you think of that? Growing is not smooth. If you grow to the top, the above line distracts you if you normally read text from top to bottom. If you grow to the bottom, the original minibuffer line where you currently type in moves one line up. So I would prefer to avoid growing the minibuffer whenever possible. If the content wraps, then growing to the bottom as it is right now, is okay. A clean solution would be, to have messages concerning your current input (Mismatched parenthesis, ...) appear at the end of the minibuffer in brackets. Other messages from timers and such go to *Messages* and if you are finished typing in the minibuffer, you will get a (message "New stuff in *Messages*") for exapmle. How does that sound, disregarding implementation details? :) Hannes -- 3BD8 AF56 11AF 205C 9DB6 B10F 76F1 0634 71A4 DCA0 [-- Attachment #1.2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] [-- Attachment #2: Type: text/plain, Size: 142 bytes --] _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-24 10:43 ` Johannes Weiner @ 2007-09-24 11:12 ` David Kastrup 2007-09-24 13:19 ` Johannes Weiner 2007-09-25 10:43 ` Richard Stallman 0 siblings, 2 replies; 45+ messages in thread From: David Kastrup @ 2007-09-24 11:12 UTC (permalink / raw) To: Richard Stallman; +Cc: emacs-devel, Roland Winkler Johannes Weiner <hannes@saeurebad.de> writes: > Hi, > > On Sun, Sep 23, 2007 at 05:54:44PM -0400, Richard Stallman wrote: >> If we put such messages at the end, that may cause the minibuffer >> to grow by a line. Would you find that disturbing? >> >> If not, perhaps the thing to do is to put the message below the >> current input, always growing the minibuffer. Or put the message >> above the minibuffer contents. What would you think of that? > > Growing is not smooth. If you grow to the top, the above line distracts you > if you normally read text from top to bottom. If you grow to the bottom, the > original minibuffer line where you currently type in moves one line up. So I > would prefer to avoid growing the minibuffer whenever possible. If the > content wraps, then growing to the bottom as it is right now, is okay. > > A clean solution would be, to have messages concerning your current input > (Mismatched parenthesis, ...) appear at the end of the minibuffer in > brackets. Right-justified? And wrap the input before it when necessary? That would cause the least redisplay jitter, I would guess. -- David Kastrup ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-24 11:12 ` David Kastrup @ 2007-09-24 13:19 ` Johannes Weiner 2007-09-24 14:48 ` Roland Winkler 2007-09-24 15:13 ` Drew Adams 2007-09-25 10:43 ` Richard Stallman 1 sibling, 2 replies; 45+ messages in thread From: Johannes Weiner @ 2007-09-24 13:19 UTC (permalink / raw) To: David Kastrup; +Cc: Roland Winkler, Richard Stallman, emacs-devel [-- Attachment #1.1: Type: text/plain, Size: 719 bytes --] Hi, On Mon, Sep 24, 2007 at 01:12:37PM +0200, David Kastrup wrote: > > A clean solution would be, to have messages concerning your current input > > (Mismatched parenthesis, ...) appear at the end of the minibuffer in > > brackets. > > Right-justified? And wrap the input before it when necessary? That > would cause the least redisplay jitter, I would guess. Right-justified, yes. And wrapping just the input, not the message? This wouldn't distract the user when a message appeared before the input wraps, only when the input has to be wrapped at the moment a message appears. Sounds good. Other opinions on that, anybody? Hannes -- 3BD8 AF56 11AF 205C 9DB6 B10F 76F1 0634 71A4 DCA0 [-- Attachment #1.2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] [-- Attachment #2: Type: text/plain, Size: 142 bytes --] _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-24 13:19 ` Johannes Weiner @ 2007-09-24 14:48 ` Roland Winkler 2007-09-25 10:44 ` Richard Stallman 2007-09-24 15:13 ` Drew Adams 1 sibling, 1 reply; 45+ messages in thread From: Roland Winkler @ 2007-09-24 14:48 UTC (permalink / raw) To: Johannes Weiner; +Cc: Richard Stallman, emacs-devel On Mon Sep 24 2007 Johannes Weiner wrote: > Right-justified, yes. And wrapping just the input, not the message? This > wouldn't distract the user when a message appeared before the input wraps, > only when the input has to be wrapped at the moment a message appears. Do you have in mind that messages are displayed temporarily, and they disappear after a few seconds, though the minibuffer might still be active? Or should messages remain visible for the whole period of time the minibuffer is active? Depending on what one is doing either way could minimize jitter of the minibuffer. So right now I do not have a preference in one or the other direction. If the message does not disappear again, what about multiple messages? Should they accumulate somehow? That could make the minibuffer grow significantly. So I would prefer to have not more than one message being displayed (as usual). Roland ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-24 14:48 ` Roland Winkler @ 2007-09-25 10:44 ` Richard Stallman 0 siblings, 0 replies; 45+ messages in thread From: Richard Stallman @ 2007-09-25 10:44 UTC (permalink / raw) To: Roland Winkler; +Cc: hannes, emacs-devel If the message does not disappear again, what about multiple messages? Should they accumulate somehow? Emacs displays only the latest message. The question is only how to display it when the minibuffer is active. ^ permalink raw reply [flat|nested] 45+ messages in thread
* RE: messages override minibuffer input 2007-09-24 13:19 ` Johannes Weiner 2007-09-24 14:48 ` Roland Winkler @ 2007-09-24 15:13 ` Drew Adams 1 sibling, 0 replies; 45+ messages in thread From: Drew Adams @ 2007-09-24 15:13 UTC (permalink / raw) To: Johannes Weiner, David Kastrup Cc: emacs-devel, Richard Stallman, Roland Winkler > > > A clean solution would be, to have messages concerning your > > > current input (Mismatched parenthesis, ...) appear at the end > > > of the minibuffer in brackets. > > > > Right-justified? And wrap the input before it when necessary? That > > would cause the least redisplay jitter, I would guess. > > Right-justified, yes. And wrapping just the input, not the message? This > wouldn't distract the user when a message appeared before the input wraps, > only when the input has to be wrapped at the moment a message appears. > > Sounds good. Other opinions on that, anybody? Yes, against. You are designing a complicated interface for a non-problem. You will introduce more problems than those you think you see today. Code cannot reasonably attempt to deal with all likely uses of the echo area in a sophisticated DWIM fashion. Please just leave it alone - it ain't broke. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-24 11:12 ` David Kastrup 2007-09-24 13:19 ` Johannes Weiner @ 2007-09-25 10:43 ` Richard Stallman 1 sibling, 0 replies; 45+ messages in thread From: Richard Stallman @ 2007-09-25 10:43 UTC (permalink / raw) To: David Kastrup; +Cc: emacs-devel, Roland.Winkler Right-justified? And wrap the input before it when necessary? That would cause the least redisplay jitter, I would guess. That sounds good. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-17 0:20 ` Richard Stallman 2007-09-17 14:49 ` Roland Winkler @ 2007-09-17 22:31 ` Davis Herring 2007-09-18 0:53 ` Stefan Monnier 2 siblings, 0 replies; 45+ messages in thread From: Davis Herring @ 2007-09-17 22:31 UTC (permalink / raw) To: Richard Stallman; +Cc: emacs-devel, Roland Winkler > If I understand the code correctly, the function do_autoload in > eval.c normally calls load with arg NOMESSAGE being nil. So load > issues a message. Would it make sense that load used something like > optional-message? > > That change goes too far. In the case you describe, do_autoload > should not display the message. But in many other cases it should. I think that `load' should display the first message "Loading foo..." regardless, since Emacs looks hung during the load and so an explanation is needed. The "Loading foo...done" message should be displayed as an optional message, except that if it is not displayed the contents of the echo area (or minibuffer) from /before/ the load should be restored. > Ideally it should display the message, but restore the previous echo > area contents later. The hard part of that is arranging for the > proper "later" time. Currently `message' has a temporary effect if invoked while the minibuffer is active. What is the mechanism for this? I can't see how Fmessage arranges it. Davis -- This product is sold by volume, not by mass. If it appears too dense or too sparse, it is because mass-energy conversion has occurred during shipping. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-17 0:20 ` Richard Stallman 2007-09-17 14:49 ` Roland Winkler 2007-09-17 22:31 ` Davis Herring @ 2007-09-18 0:53 ` Stefan Monnier 2007-09-23 21:55 ` Richard Stallman 2 siblings, 1 reply; 45+ messages in thread From: Stefan Monnier @ 2007-09-18 0:53 UTC (permalink / raw) To: rms; +Cc: emacs-devel, Roland Winkler > That change goes too far. In the case you describe, do_autoload > should not display the message. But in many other cases it should. Good you mention it because I've been meaning to ask (for a long time already) why it is that autoloading a package causes a "loading <foo>" message. You seem to say it has an important role to play, but I never found it useful, and I always found it odd that autoloading displays such messages while requiring a package doesn't. What am I missing? Stefan ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-18 0:53 ` Stefan Monnier @ 2007-09-23 21:55 ` Richard Stallman 2007-09-24 8:30 ` Stefan Monnier 2007-09-24 17:16 ` Davis Herring 0 siblings, 2 replies; 45+ messages in thread From: Richard Stallman @ 2007-09-23 21:55 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel, Roland.Winkler You seem to say it has an important role to play, but I never found it useful, and I always found it odd that autoloading displays such messages while requiring a package doesn't. What am I missing? I wasn't aware of that oddity, but now that you mention it, I don't see a need for them to be different. So we can turn off the messages for autoloading. Would you like to do that? ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-23 21:55 ` Richard Stallman @ 2007-09-24 8:30 ` Stefan Monnier 2007-09-24 17:16 ` Davis Herring 1 sibling, 0 replies; 45+ messages in thread From: Stefan Monnier @ 2007-09-24 8:30 UTC (permalink / raw) To: rms; +Cc: emacs-devel, Roland.Winkler > You seem to say it has an important role to play, but I never found it > useful, and I always found it odd that autoloading displays such > messages while requiring a package doesn't. What am I missing? > I wasn't aware of that oddity, but now that you mention it, > I don't see a need for them to be different. > So we can turn off the messages for autoloading. > Would you like to do that? Done, Stefan ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-23 21:55 ` Richard Stallman 2007-09-24 8:30 ` Stefan Monnier @ 2007-09-24 17:16 ` Davis Herring 2007-09-24 17:24 ` Drew Adams 2007-09-25 10:44 ` Richard Stallman 1 sibling, 2 replies; 45+ messages in thread From: Davis Herring @ 2007-09-24 17:16 UTC (permalink / raw) To: Richard Stallman; +Cc: roland.winkler, Stefan Monnier, emacs-devel > You seem to say it has an important role to play, but I never found it > useful, and I always found it odd that autoloading displays such > messages while requiring a package doesn't. What am I missing? > > I wasn't aware of that oddity, but now that you mention it, > I don't see a need for them to be different. > So we can turn off the messages for autoloading. Really? `require' happens during the loading of some other package, so its delay is absorbed in the overall pause. But autoloading an arbitrarily complicated package (hi Alan! :) during a stream of user input can look like a hang. My suggestion is that all "Loading foo..." messages should be displayed unconditionally, but then when "Loading foo...done" would be displayed: * if the minibuffer is in use, clear the echo area to restore it, else * if the echo area previously had some non-optional message in it, restore that message, else * display it normally. WDOT? Davis -- This product is sold by volume, not by mass. If it appears too dense or too sparse, it is because mass-energy conversion has occurred during shipping. ^ permalink raw reply [flat|nested] 45+ messages in thread
* RE: messages override minibuffer input 2007-09-24 17:16 ` Davis Herring @ 2007-09-24 17:24 ` Drew Adams 2007-09-25 10:44 ` Richard Stallman 1 sibling, 0 replies; 45+ messages in thread From: Drew Adams @ 2007-09-24 17:24 UTC (permalink / raw) To: herring, Richard Stallman; +Cc: emacs-devel, Stefan Monnier, roland.winkler > My suggestion is that all "Loading foo..." messages > should be displayed unconditionally, but then when "Loading foo...done" > would be displayed: > * if the minibuffer is in use, clear the echo area to restore it, else > * if the echo area previously had some non-optional message in it, restore > that message, else > * display it normally. > > WDOT? Sounds good to me. ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: messages override minibuffer input 2007-09-24 17:16 ` Davis Herring 2007-09-24 17:24 ` Drew Adams @ 2007-09-25 10:44 ` Richard Stallman 1 sibling, 0 replies; 45+ messages in thread From: Richard Stallman @ 2007-09-25 10:44 UTC (permalink / raw) To: herring; +Cc: roland.winkler, monnier, emacs-devel Really? `require' happens during the loading of some other package, so its delay is absorbed in the overall pause. But autoloading an arbitrarily complicated package (hi Alan! :) during a stream of user input can look like a hang. Nowadays it usually does not take very long. For instance, visiting a C file for the first time loads several Lisp files, and it takes less than a second. I don't think this needs to display messages. Once upon a time, when GC could take a few seconds, GC displayed messages too. But when computers got faster, and GC took less time, eventually the messages were more trouble than they were worth. So I turned them off. I don't want to implement anything complex in this area. ^ permalink raw reply [flat|nested] 45+ messages in thread
end of thread, other threads:[~2007-09-25 10:44 UTC | newest] Thread overview: 45+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-09-08 4:23 messages override minibuffer input Roland Winkler 2007-09-08 14:48 ` Stefan Monnier 2007-09-10 21:41 ` Davis Herring 2007-09-11 20:30 ` Richard Stallman 2007-09-12 22:32 ` Davis Herring 2007-09-13 3:23 ` Luc Teirlinck 2007-09-13 4:23 ` Davis Herring 2007-09-14 7:05 ` Richard Stallman 2007-09-12 9:25 ` Johannes Weiner 2007-09-12 10:24 ` Johannes Weiner 2007-09-12 16:25 ` Davis Herring 2007-09-12 16:28 ` Davis Herring [not found] ` <E1IUCJ9-0000VV-9H@fencepost.gnu.org> 2007-09-16 3:23 ` Roland Winkler 2007-09-17 0:20 ` Richard Stallman 2007-09-17 14:49 ` Roland Winkler 2007-09-17 22:24 ` Richard Stallman 2007-09-22 15:18 ` Roland Winkler 2007-09-23 9:07 ` Richard Stallman 2007-09-23 15:08 ` Roland Winkler 2007-09-23 21:54 ` Richard Stallman 2007-09-23 23:33 ` Roland Winkler 2007-09-24 18:19 ` Richard Stallman 2007-09-25 1:06 ` Roland Winkler 2007-09-24 0:24 ` Drew Adams 2007-09-24 1:28 ` Roland Winkler 2007-09-24 2:02 ` Drew Adams 2007-09-24 3:20 ` Roland Winkler 2007-09-24 10:36 ` Robert J. Chassell 2007-09-24 15:08 ` Drew Adams 2007-09-24 16:11 ` Robert J. Chassell 2007-09-24 16:53 ` Drew Adams 2007-09-24 10:43 ` Johannes Weiner 2007-09-24 11:12 ` David Kastrup 2007-09-24 13:19 ` Johannes Weiner 2007-09-24 14:48 ` Roland Winkler 2007-09-25 10:44 ` Richard Stallman 2007-09-24 15:13 ` Drew Adams 2007-09-25 10:43 ` Richard Stallman 2007-09-17 22:31 ` Davis Herring 2007-09-18 0:53 ` Stefan Monnier 2007-09-23 21:55 ` Richard Stallman 2007-09-24 8:30 ` Stefan Monnier 2007-09-24 17:16 ` Davis Herring 2007-09-24 17:24 ` Drew Adams 2007-09-25 10:44 ` Richard Stallman
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).