Allow "_", "!", and "&" as keys in docstrings

* hydra.el (hydra--format): Update.

Fixes #161
master
Oleh Krehel 11 years ago
parent 3fb316881a
commit ea36afcc59
  1. 4
      hydra.el

@ -566,16 +566,18 @@ HEAD's binding is returned as a string wrapped with [] or {}."
_NAME, BODY, DOCSTRING and HEADS are parameters of `defhydra'. _NAME, BODY, DOCSTRING and HEADS are parameters of `defhydra'.
The expressions can be auto-expanded according to NAME." The expressions can be auto-expanded according to NAME."
(setq docstring (hydra--strip-align-markers docstring)) (setq docstring (hydra--strip-align-markers docstring))
(setq docstring (replace-regexp-in-string "___" "_β_" docstring))
(let ((rest (hydra--hint body heads)) (let ((rest (hydra--hint body heads))
(start 0) (start 0)
varlist varlist
offset) offset)
(while (setq start (while (setq start
(string-match (string-match
"\\(?:%\\( ?-?[0-9]*s?\\)\\(`[a-z-A-Z/0-9]+\\|(\\)\\)\\|\\(?:_\\( ?-?[0-9]*?\\)\\(\\[\\|]\\|[-[:alnum:] ~.,;:/|?<>={}*+#%@]+?\\)_\\)" "\\(?:%\\( ?-?[0-9]*s?\\)\\(`[a-z-A-Z/0-9]+\\|(\\)\\)\\|\\(?:_\\( ?-?[0-9]*?\\)\\(\\[\\|]\\|[-[:alnum:] ~.,;:/|?<>={}*+#%@!&]+?\\)_\\)"
docstring start)) docstring start))
(cond ((eq ?_ (aref (match-string 0 docstring) 0)) (cond ((eq ?_ (aref (match-string 0 docstring) 0))
(let* ((key (match-string 4 docstring)) (let* ((key (match-string 4 docstring))
(key (if (equal key "β") "_" key))
(head (assoc key heads))) (head (assoc key heads)))
(if head (if head
(progn (progn

Loading…
Cancel
Save