[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/cape 399fdad016 122/146: cape-tex/sgml: Add docsig, im
From: |
ELPA Syncer |
Subject: |
[elpa] externals/cape 399fdad016 122/146: cape-tex/sgml: Add docsig, improve parsing of describe-input-method |
Date: |
Sun, 9 Jan 2022 20:57:48 -0500 (EST) |
branch: externals/cape
commit 399fdad0161420fb9d9c0f17c320d8d70f53f211
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
cape-tex/sgml: Add docsig, improve parsing of describe-input-method
---
cape.el | 51 +++++++++++++++++++++++++++++++--------------------
1 file changed, 31 insertions(+), 20 deletions(-)
diff --git a/cape.el b/cape.el
index 63b1498271..d811f0d24b 100644
--- a/cape.el
+++ b/cape.el
@@ -593,40 +593,51 @@ PREFIX is the prefix regular expression."
(let ((capf (intern (format "cape-%s" name)))
(list (intern (format "cape--%s-list" name)))
(ann (intern (format "cape--%s-annotation" name)))
+ (docsig (intern (format "cape--%s-docsig" name)))
(exit (intern (format "cape--%s-exit" name)))
(properties (intern (format "cape--%s-properties" name)))
(translation
(with-current-buffer "*Help*"
- (let ((str (replace-regexp-in-string
- "\n\n\\(\n\\|.\\)*" ""
- (replace-regexp-in-string
- "\\`\\(\n\\|.\\)*?----\n" ""
- (replace-regexp-in-string
- "\\`\\(\n\\|.\\)*?KEY SEQUENCE\n-+\n" ""
- (buffer-substring-no-properties (point-min)
(point-max))))))
- (pos 0)
- (list nil)
- (regexp (format "\\(?:^\\|[\t\n ]\\)\\(%s[^ \t\n]+\\)[
\t\n]+\\([^ \t\n]+\\)" prefix)))
- (while (string-match regexp str pos)
- (let ((char (match-string 2 str))
- (name (if (equal method "sgml")
- (string-remove-suffix ";" (match-string 1 str))
- (match-string 1 str))))
- (push (cons name char) list)
- (setq pos (match-end 0))))
+ (let ((lines
+ (split-string
+ (replace-regexp-in-string
+ "\n\n\\(\n\\|.\\)*" ""
+ (replace-regexp-in-string
+ "\\`\\(\n\\|.\\)*?----\n" ""
+ (replace-regexp-in-string
+ "\\`\\(\n\\|.\\)*?KEY SEQUENCE\n-+\n" ""
+ (buffer-string))))
+ "\n"))
+ (list nil))
+ (dolist (line lines)
+ (let ((beg 0) (len (length line)))
+ (while (< beg len)
+ (let* ((ename (next-single-property-change beg 'face line
len))
+ (echar (next-single-property-change ename 'face
line len)))
+ (when (and (get-text-property beg 'face line) (< ename
len) (<= echar len))
+ (let ((name (string-trim (substring-no-properties
line beg ename)))
+ (char (string-trim (substring-no-properties
line ename echar))))
+ (when (= (length char) 1)
+ (push (cons name (aref char 0)) list))))
+ (setq beg echar)))))
(kill-buffer-and-window)
(sort list (lambda (x y) (string< (car x) (car y))))))))
`(progn
(defvar ,list ',translation)
(defun ,ann (name)
- (concat " " (cdr (assoc name ,list))))
+ (when-let (char (cdr (assoc name ,list)))
+ (format " %c" char)))
+ (defun ,docsig (name)
+ (when-let (char (cdr (assoc name ,list)))
+ (get-char-code-property char 'name)))
(defun ,exit (name status)
(unless (eq status 'exact)
- (when-let (str (cdr (assoc name ,list)))
+ (when-let (char (cdr (assoc name ,list)))
(delete-region (max (point-min) (- (point) (length name)))
(point))
- (insert str))))
+ (insert (char-to-string char)))))
(defvar ,properties
(list :annotation-function #',ann
+ :company-docsig #',docsig
:exit-function #',exit
:company-kind (lambda (_) 'text)))
(defun ,capf (&optional interactive)
- [elpa] externals/cape 26d6025da2 111/146: Minor adjustments, (continued)
- [elpa] externals/cape 26d6025da2 111/146: Minor adjustments, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 5e6abb568a 113/146: Rename capf function in analogy to the table function, ELPA Syncer, 2022/01/09
- [elpa] externals/cape aae065830c 115/146: Add cape-sgml and cape-tex, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 6ddd50e7b7 116/146: Improve prefix setting of file capf, ELPA Syncer, 2022/01/09
- [elpa] externals/cape fab063f187 119/146: Add cape-rfc1345, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 6652d62c5a 118/146: README: Fix list, ELPA Syncer, 2022/01/09
- [elpa] externals/cape ad7f35fdbe 121/146: cape-tex: Fix range issue, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 516eb36e8d 120/146: Minor fixes, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 1e73d032e4 125/146: Fix compilation error (Fix #16), ELPA Syncer, 2022/01/09
- [elpa] externals/cape 89aaca7789 128/146: Protect cape--char-translation from macro expansion, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 399fdad016 122/146: cape-tex/sgml: Add docsig, improve parsing of describe-input-method,
ELPA Syncer <=
- [elpa] externals/cape c2db8ce4d9 127/146: Expand docstrings, ELPA Syncer, 2022/01/09
- [elpa] externals/cape ab91f727fb 126/146: cape-tex/sgml: Filter candidates during compilation, ELPA Syncer, 2022/01/09
- [elpa] externals/cape bb1921b624 130/146: Add cape-repair-misbehaving-capf, ELPA Syncer, 2022/01/09
- [elpa] externals/cape c442f055dd 132/146: Blurb, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 3495692f4c 133/146: Expand README, ELPA Syncer, 2022/01/09
- [elpa] externals/cape ba24e62961 139/146: README: Expand cape-super-capf documentation, ELPA Syncer, 2022/01/09
- [elpa] externals/cape bcf2fe1bdc 141/146: Version 0.4, ELPA Syncer, 2022/01/09
- [elpa] externals/cape 9defa71303 142/146: cape-dabbrev: Add cape-dabbrev-forbid-space, ELPA Syncer, 2022/01/09
- [elpa] externals/cape c629043156 145/146: cape-abbrev: Take all abbrev tables into account (Fix #19), ELPA Syncer, 2022/01/09