[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/rec-mode f39f1a0 66/98: rec-mode: be smart assigning le
From: |
Stefan Monnier |
Subject: |
[elpa] externals/rec-mode f39f1a0 66/98: rec-mode: be smart assigning letters to enumerated entries. |
Date: |
Thu, 12 Nov 2020 13:18:42 -0500 (EST) |
branch: externals/rec-mode
commit f39f1a010d684b2a8680ede576429630e179258f
Author: Jose E. Marchesi <jemarch@gnu.org>
Commit: Antoine Kalmbach <ane@iki.fi>
rec-mode: be smart assigning letters to enumerated entries.
---
etc/rec-mode.el | 30 ++++++++++++++++++++++++------
1 file changed, 24 insertions(+), 6 deletions(-)
diff --git a/etc/rec-mode.el b/etc/rec-mode.el
index eab9463..3eee02f 100644
--- a/etc/rec-mode.el
+++ b/etc/rec-mode.el
@@ -1598,15 +1598,33 @@ will be used for fields of any type."
(equal field-type-kind 'bool))
(null n))
(let* ((data (rec-type-data field-type))
- (i -1)
(fast-selection-data
(cond
((equal field-type-kind 'enum)
- (mapcar
- (lambda (elem)
- (setq i (+ i 1))
- (list elem (+ i ?a)))
- data))
+ (let (used-letters)
+ (mapcar
+ (lambda (elem)
+ ;; Assign a letter to this enumerated entry.
+ ;; The letters are chosen using the following
+ ;; criteria: if the first letter of the entry
+ ;; is free then use it. Otherwise, if the
+ ;; second letter of the entry is free then
+ ;; use it. Otherwise use the first available
+ ;; symbol in the alphabet. Note that ELEM
+ ;; cannot be the empty string.
+ (let ((letter (if (not (member (elt elem 0)
used-letters))
+ (elt elem 0)
+ (if (and (> (length elem) 1)
+ (not (member (elt elem 1)
used-letters)))
+ (elt elem 1)
+ (let* ((c ?a) (i 0))
+ (while (member c used-letters)
+ (setq c (+ ?a i))
+ (setq i (+ i 1)))
+ c)))))
+ (setq used-letters (cons letter used-letters))
+ (list elem letter)))
+ data)))
((equal field-type-kind 'bool)
'(("yes" ?y) ("no" ?n) ("1" ?o) ("0" ?z) ("true" ?t)
("false" ?f)))
(t
- [elpa] externals/rec-mode aa86480 08/98: rec-mode: several fixes., (continued)
- [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, 2020/11/12
- [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 <=
- [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
- [elpa] externals/rec-mode 7ca1168 06/98: rec-mode.el, Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode b77d494 30/98: rec-mode: avoid security problems in calls to message by using %s., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode 37e53b6 31/98: rec-mode: complete support for editing fields storing enumerated values., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode debbdd5 19/98: Time-stamp marks removed from the entire codebase and syntax checks fixes., Stefan Monnier, 2020/11/12
- [elpa] externals/rec-mode 0cf9416 22/98: rec-mode: don't use a fixed list of keywords when font-locking special fields and other minor fixes., Stefan Monnier, 2020/11/12