[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/rec-mode 87abd92 49/98: rec-mode: new command rec-cmd-s
From: |
Stefan Monnier |
Subject: |
[elpa] externals/rec-mode 87abd92 49/98: rec-mode: new command rec-cmd-statistics. |
Date: |
Thu, 12 Nov 2020 13:18:38 -0500 (EST) |
branch: externals/rec-mode
commit 87abd92d1de76fa0b59c1d0e94b3330e9fb40cac
Author: Jose E. Marchesi <jemarch@gnu.org>
Commit: Antoine Kalmbach <ane@iki.fi>
rec-mode: new command rec-cmd-statistics.
---
etc/rec-mode.el | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/etc/rec-mode.el b/etc/rec-mode.el
index b77d304..e1f988d 100644
--- a/etc/rec-mode.el
+++ b/etc/rec-mode.el
@@ -171,6 +171,7 @@ hidden by default in navigation mode.")
;; (define-key map [remap move-beginning-of-line]
'rec-cmd-beginning-of-line)
(define-key map [remap undo] 'rec-cmd-undo)
(define-key map "#" 'rec-cmd-count)
+ (define-key map "%" 'rec-cmd-statistic)
(define-key map (kbd "RET") 'rec-cmd-jump)
(define-key map (kbd "TAB") 'rec-cmd-goto-next-field)
(define-key map (kbd "SPC") 'rec-cmd-toggle-field-visibility)
@@ -1903,6 +1904,36 @@ expression."
(when (and sex (not (equal sex "")))
(concat " with sex " sex)))))))
+(defun rec-cmd-statistic ()
+ "Display a statistic on the occurrence of the value contained
+ in the field under point in the minibuffer, if any.
+
+This command is especially useful with enumerated types."
+ (interactive)
+ (let* ((field (rec-current-field))
+ (field-name (rec-field-name field))
+ (type (rec-field-type field-name))
+ (type-kind (when type (rec-type-kind type))))
+ (cond ((equal type-kind 'enum)
+ (let* ((keys (rec-type-data type))
+ (total (rec-count (rec-record-type)))
+ (percentages (mapcar (lambda (key)
+ (let ((key-count (rec-count
(rec-record-type)
+ (concat
field-name " = '" key "'"))))
+ (list key key-count (/ (* key-count
100) total))))
+ keys))
+ str)
+ (mapcar (lambda (occurrence)
+ (setq str (concat str
+ (number-to-string (nth 1 occurrence))
+ " "
+ (nth 0 occurrence)
+ " ("
+ (number-to-string (nth 2 occurrence))
+ "%) ")))
+ percentages)
+ (message "%s" str))))))
+
(defun rec-cmd-append-field ()
"Goto the end of the record and switch to edit record mode."
(interactive)
- [elpa] externals/rec-mode 18e9e4a 23/98: rec-mode: editing of individual fields now works., (continued)
- [elpa] externals/rec-mode 18e9e4a 23/98: rec-mode: editing of individual fields now works., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode 424eb72 25/98: rec-mode: fixes in goto-type and show-type., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode f063506 26/98: rec-mode: misc small fixes., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode 0f09c3f 33/98: rec-mode: support editing boolean fields as special enum values., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode 3e47acf 05/98: rec-mode improvements., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode aa86480 08/98: rec-mode: several fixes., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode 6292f55 09/98: syntax-check fixes., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode 4413688 38/98: rec-mode: new functions returning properties of the current record set., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode 1982af5 42/98: rec-mode: allow the user to cancel the edit date operation by quitting the calendar window., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode eba1923 36/98: rec-mode: presentation of continuation lines in navigation modes, and other improvements., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode 87abd92 49/98: rec-mode: new command rec-cmd-statistics.,
Stefan Monnier <=
- [elpa] externals/rec-mode 7b1a375 53/98: rec-mode: provide a sensible log-current-defun for the add-log function., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode 33e106f 54/98: rec-mode: improve rec-log-current-defun so it works in all cases., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode da7b8c0 57/98: rec-mode: rec-end-of-field-pos now works properly when a field ends with the end of file mark., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode e20b7dd 63/98: rec-mode: don't hide continuation lines in editing modes after editing a field., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode f39f1a0 66/98: rec-mode: be smart assigning letters to enumerated entries., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode bb07fa5 47/98: rec-mode: support for undo in navigation mode., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode c72ec31 67/98: rec-mode: initial version of the summary mode, Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode 99e3e62 68/98: rec-mode: more work in the summary mode., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode b389387 97/98: Escape plus sign in regexp, Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode 849edd6 91/98: Move files to the root directory, Stefan Monnier, 2020/11/12