diff options
| author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2010-11-21 02:30:04 +0100 | 
|---|---|---|
| committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2010-11-21 02:30:04 +0100 | 
| commit | 5c9a941ddc6cbbb3b62f04b55b04e29e493c01fa (patch) | |
| tree | 16fb2092c98ef64addf4fd136955d4e56eefc7d3 /elisp | |
| parent | 8d2734a4cfa7c95597c156868310096e1229e562 (diff) | |
| download | geiser-5c9a941ddc6cbbb3b62f04b55b04e29e493c01fa.tar.gz geiser-5c9a941ddc6cbbb3b62f04b55b04e29e493c01fa.tar.bz2 | |
Even better, as in 'correct',  display of autodoc args
We're being a bit silly here, first converting the autodoc retort
string to an elisp value and then reconverting the arguments again to
a string with scheme syntax. We should probably do this at
geiser-syntax's parser level, with a special mode producing stringy
representations of tokens. Don't tell anyone.
Diffstat (limited to 'elisp')
| -rw-r--r-- | elisp/geiser-autodoc.el | 17 | ||||
| -rw-r--r-- | elisp/geiser-doc.el | 4 | 
2 files changed, 14 insertions, 7 deletions
| diff --git a/elisp/geiser-autodoc.el b/elisp/geiser-autodoc.el index 5bdfb1a..2873bb0 100644 --- a/elisp/geiser-autodoc.el +++ b/elisp/geiser-autodoc.el @@ -87,11 +87,18 @@ when `geiser-autodoc-display-module-p' is on."          (t '...)))  (defun geiser-autodoc--format-arg (a) -  (if (and (listp a) (keywordp (car a))) -      (if (and (cdr a) (listp (cdr a))) -          (format "(#%s %s)" (car a) (cadr a)) -        (format "(#%s)" (car a))) -    (format "%s" a))) +  (cond ((null a) "()") +        ((symbolp a) (format "%s" a)) +        ((stringp a) (format "%S" a)) +        ((and (listp a) (keywordp (car a))) +         (if (and (cdr a) (listp (cdr a))) +             (format "(#%s %s)" (car a) (geiser-autodoc--format-arg (cadr a))) +           (format "(#%s)" (car a)))) +        ((and (listp a) (eq (car a) 'quote)) +         (format "'%s" (geiser-autodoc--format-arg (cadr a)))) +        ((listp a) (format "(%s)" +                           (mapconcat 'geiser-autodoc--format-arg a " "))) +        (t (format "%S" a))))  (defun geiser-autodoc--insert-arg-group (args current &optional pos)    (when args (insert " ")) diff --git a/elisp/geiser-doc.el b/elisp/geiser-doc.el index b95242c..3778770 100644 --- a/elisp/geiser-doc.el +++ b/elisp/geiser-doc.el @@ -278,8 +278,8 @@ With prefix argument, ask for symbol (with completion)."          (geiser-doc--insert-title (format "%s" module) t)          (newline)          (dolist (g '(("Procedures:" . procs) -                     ("Variables:" . vars) -                     ("Syntax:" . syntax))) +                     ("Syntax:" . syntax) +                     ("Variables:" . vars)))            (geiser-doc--insert-list (car g)                                     (cdr (assoc (cdr g) exports))                                     module | 
