X-Git-Url: https://www.fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=elisp.git;a=blobdiff_plain;f=text-counters.el;h=6f2e65cd6dfe53e248c7e6c30faed6b689db4280;hp=484bc946cf9130e40f7eb1997767043f5dc0ea00;hb=HEAD;hpb=3d7cf3e751b0ef3ef63dffdea8b5d09828c2341a diff --git a/text-counters.el b/text-counters.el index 484bc94..e68e677 100644 --- a/text-counters.el +++ b/text-counters.el @@ -18,19 +18,31 @@ ;; Contact for comments & bug reports ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; This script automatigally count the number of characters and words +;; between "----" markers. To activate it automatically when switching +;; to text-mode, just add to your emacs.el +;; +;; (add-hook 'text-mode-hook 'tc/add-text-counters-in-modeline) + +(defface tc/modeline-face + '((((background light)) (:foreground "blue4")) + (((background dark)) (:foreground "cyan"))) + "The face for the alarm-vc modeline message.") + ;; Counts the number of words and characters between the previous and ;; the next line of '-' (with at least four '-' in each line) (defun tc/text-counters-string () (interactive) (let ((a (save-excursion - (and (re-search-backward "^--.*--*$" nil t) + (and (re-search-backward "^[#% ]*--.*--*" nil t) (match-end 0)))) (b (save-excursion - (and (re-search-forward "^--.*--*$" nil t) + (and (re-search-forward "^[#% ]*--.*--*" nil t) (match-beginning 0))))) (when (and a b) - (format "%dw %dc " (count-words a b) (- b a)) + (propertize (format "%dw %dc " (count-words a b) (- b a)) + 'face 'tc/modeline-face) ))) ;; Add the said counters into the modeline