all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Nikolaj Schumacher <me@nschum.de>
To: Decebal <CLDWesterhof@gmail.com>
Cc: help-gnu-emacs@gnu.org
Subject: Re: Extra info in modeline (tip and questions)
Date: Wed, 15 Apr 2009 15:14:23 +0200	[thread overview]
Message-ID: <m263h65aa8.fsf@nschum.de> (raw)
In-Reply-To: <a38f66b7-b0a7-4820-af14-00040e90719b@r33g2000yqn.googlegroups.com> (Decebal's message of "Tue, 14 Apr 2009 22:53:57 -0700 (PDT)")

Decebal <CLDWesterhof@gmail.com> wrote:

> The reason I put the closing parentheses on its own line, is that I
> find that more readable. I would even prefer:

It probably is.  I do it in C myself.  But with Lisp you have so many
parentheses that you lose too much vertical space.

The trick is to read the indentation instead of trying to mentally match
parentheses.  Since I got used to that I actually prefer the concise representation.

>> Also there are alternatives to updating the mode-line from a timer.
>> The mode-line supports a special :eval form with functions that are
>> called automatically, or you might update the values in
>> `after-change-functions'.
>
> Do you have any good pointers?

Just C-h v mode-line-format and C-h v after-change-functions.

For an :eval example see:
http://nschum.de/src/emacs/window-numbering-mode/
for hooks:
http://www.emacswiki.org/emacs-en/ChangeHook

> What I would like is that when I call the function interactively, that
> instead of returning the value, the value is displayed in the
> minibuffer. For this I need to know if the function is called
> interactively. If that is the case, I should do:
>     (message <return-value>)
> Is there a way to know if the function called interactively?

Well, there is `called-interactively-p', but I would just add another
parameter like this:

(defun test (beg end &optional verbose)
  (interactive "r\nd")
  (when verbose
    (message (buffer-substring beg end))))

> I also have another function where I need to input a boolean value
> interactively. At the moment I am doing this with n and use 0 for
> false and every other value for true. Is there a better way?

You can use `y-or-n-p' or `yes-or-no-p'.  But they don't have
characters in the interactive form.  So you need to do this:

(interactive (list (y-or-n-p "bool: ")))

Often the prefix-arg is perfect for boolean options, too.


regards,
Nikolaj Schumacher




  reply	other threads:[~2009-04-15 13:14 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-14 14:03 Extra info in modeline (tip and questions) Decebal
2009-04-14 15:54 ` Nikolaj Schumacher
     [not found] ` <mailman.5329.1239724470.31690.help-gnu-emacs@gnu.org>
2009-04-15  5:53   ` Decebal
2009-04-15 13:14     ` Nikolaj Schumacher [this message]
     [not found]     ` <mailman.5377.1239801271.31690.help-gnu-emacs@gnu.org>
2009-04-28  7:55       ` Decebal
2009-04-28 10:27         ` Decebal
2009-04-28  8:04       ` Decebal
2009-04-28  8:23         ` Decebal
2009-04-15 11:06 ` Decebal
2009-04-15 13:23   ` Nikolaj Schumacher
     [not found]   ` <mailman.5379.1239801830.31690.help-gnu-emacs@gnu.org>
2009-04-15 16:13     ` Decebal

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=m263h65aa8.fsf@nschum.de \
    --to=me@nschum.de \
    --cc=CLDWesterhof@gmail.com \
    --cc=help-gnu-emacs@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.