all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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?


  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.