[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/geiser-guile d5ff699 057/284: Refactoring.
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa/geiser-guile d5ff699 057/284: Refactoring. |
Date: |
Sun, 1 Aug 2021 18:29:15 -0400 (EDT) |
branch: elpa/geiser-guile
commit d5ff699cf64305c6264941a9e8e6b89e39aac199
Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
Commit: Jose Antonio Ortega Ruiz <jao@gnu.org>
Refactoring.
---
geiser/doc.scm | 40 ++++++++++++++++++++--------------------
1 file changed, 20 insertions(+), 20 deletions(-)
diff --git a/geiser/doc.scm b/geiser/doc.scm
index ae24a87..35c5bfb 100644
--- a/geiser/doc.scm
+++ b/geiser/doc.scm
@@ -37,29 +37,29 @@
#:use-module (oop goops)
#:use-module (srfi srfi-1))
+(define placeholder (gensym))
+
(define (autodoc form)
- (cond ((null? form) #f)
+ (cond ((or (eq? form placeholder) (null? form)) #f)
((symbol? form) (describe-application (list form)))
- ((and (pair? form) (not (list? form))) (autodoc (pair->list form)))
- ((and (list? form)
- (= 2 (length form))
- (memq (car form)
- '(define define* define-macro define-macro*
define-method)))
- (autodoc (cons (car form)
- (cond ((or (symbol? (cadr form))
- (null? (cadr form))
- (not (list? (cadr form)))) '())
- (else (cdadr form))))))
- ((list? form)
+ ((not (pair? form)) #f)
+ ((not (list? form)) (autodoc (pair->list form)))
+ ((define-head? form) => autodoc)
+ (else
(let ((lst (last form)))
- (cond ((symbol? lst) (or (describe-application (list lst))
- (describe-application form)))
- ((pair? lst)
- (or (and (not (memq (car lst) '(quote)))
- (autodoc (pair->list lst)))
- (autodoc (map (lambda (s) (if (pair? s) (gensym) s))
form))))
- (else (describe-application form)))))
- (else #f)))
+ (cond ((and (symbol? lst) (describe-application (list lst))))
+ ((and (pair? lst) (not (memq (car lst) '(quote)))) (autodoc
lst))
+ ((pair? lst) (autodoc (flatten-last form)))
+ (else (describe-application form)))))))
+
+(define (flatten-last form)
+ (reverse! (cons placeholder (cdr (reverse! form)))))
+
+(define (define-head? form)
+ (define def-heads '(define define* define-macro define-macro* define-method))
+ (and (= 2 (length form))
+ (memq (car form) def-heads)
+ (car form)))
(define (object-signature name obj)
(let ((args (obj-args obj)))
- [nongnu] elpa/geiser-guile 4608da2 032/284: Partial support for stack trace display., (continued)
- [nongnu] elpa/geiser-guile 4608da2 032/284: Partial support for stack trace display., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 943e58b 039/284: Miscellaneous little fixes., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 717f3d0 040/284: Fix for autodoc when point in a rest formal arg in define., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile ea9e341 041/284: Bug fix., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile acde425 043/284: Macro-expand commands., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 7fcb4ea 047/284: Autodoc enhancements:, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile eeda11c 050/284: Leave quasiquote alone in autodoc., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile af8296f 051/284: generic-methods implemented in scheme (no emacs side yet)., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile ea52102 055/284: A bit more robust generic methods., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile c3d36f3 056/284: Don't display autodoc for function being defined., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile d5ff699 057/284: Refactoring.,
Philip Kaludercic <=
- [nongnu] elpa/geiser-guile f36778f 059/284: Some tidy up., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile c52771f 062/284: Support for multiple Scheme implementations, Chapter 2., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile e912bbf 063/284: Multiple values as evaluation result supported., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 38da2b3 064/284: Misc nits and work in progress., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile ce78e11 069/284: Better xref display., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 4eeb068 071/284: Module completion generalized and implemented for PLT., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 63ebbc1 070/284: Using the new (system xref) interface., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 54484ab 075/284: Fixes for module names reading and evaluation result display., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile b14ac49 079/284: Guile: rewriting stack trace captures - not yet complete., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile b32aed7 077/284: module-children -> module-exports., Philip Kaludercic, 2021/08/01