From: Decebal <CLDWesterhof@gmail.com>
To: help-gnu-emacs@gnu.org
Subject: Re: Extra info in modeline (tip and questions)
Date: Tue, 28 Apr 2009 00:55:32 -0700 (PDT) [thread overview]
Message-ID: <95e9ef05-7da0-4900-a68a-bc539f1302be@w31g2000prd.googlegroups.com> (raw)
In-Reply-To: mailman.5377.1239801271.31690.help-gnu-emacs@gnu.org
On 15 apr, 15:14, Nikolaj Schumacher <m...@nschum.de> wrote:
> It probably is. I do it in C myself. But with Lisp you have so many
> parentheses that you lose too much vertical space.
I now also put all the parentheses on the same line. I still need a
little bit to get used to it, but at saves a lot off lines. (Up to
25%.)
> > 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
I changed them to:
(defun buffer-count(expression &optional start end)
(interactive "sExpression: \nr")
(if (equal start end)
(setq start (point-min)
end (point-max))
(setq start (or start (point-min)))
(setq end (or end (point-max))))
(let ((ret-val (how-many expression start end)))
(if (interactive-p)
(message (format "%d" ret-val))
ret-val)))
(defun buffer-count-chars(&optional start end)
(interactive "r")
(let ((ret-val (number-to-string (buffer-count ".\\|\n" start
end))))
(if (interactive-p)
(message ret-val)
ret-val)))
(defun buffer-count-functions(&optional start end)
(interactive "r")
(let ((ret-val (number-to-string (buffer-count "^(defun " start
end))))
(if (interactive-p)
(message ret-val)
ret-val)))
(defun buffer-count-lines(&optional start end)
(interactive "r")
(let ((ret-val (number-to-string
(+ (buffer-count "\n" start end) 1))))
(if (interactive-p)
(message ret-val)
ret-val)))
;;; ### possibillity to give word-type
(defun buffer-count-words(&optional start end)
(interactive "r")
(let ((regexp "\\w+")
(ret-val))
(cond
((equal word-type "lisp")
(setq regexp "[[:word:]\-]+")))
(setq ret-val (number-to-string (buffer-count regexp start
end)))
(if (interactive-p)
(message ret-val)
ret-val)))
The only thing lacking is that when the function is called with C-u
prepended, it should be put at point in the current buffer instead of
in the minibuffer. How would I do that?
next prev parent reply other threads:[~2009-04-28 7:55 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
[not found] ` <mailman.5377.1239801271.31690.help-gnu-emacs@gnu.org>
2009-04-28 7:55 ` Decebal [this message]
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=95e9ef05-7da0-4900-a68a-bc539f1302be@w31g2000prd.googlegroups.com \
--to=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.