diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2010-07-28 01:08:25 +0200 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2010-07-28 01:08:25 +0200 |
commit | 2a76df54515f4a0f3adc4e5e401c46434bb210e0 (patch) | |
tree | a15f5755ebf5cc362fbc6c718b469dd8c4bd5832 /elisp/geiser-syntax.el | |
parent | 0b410d7b466f86afeb2848be5e3b7a236d7da208 (diff) | |
download | geiser-2a76df54515f4a0f3adc4e5e401c46434bb210e0.tar.gz geiser-2a76df54515f4a0f3adc4e5e401c46434bb210e0.tar.bz2 |
Displaying variable values in autodoc.
Diffstat (limited to 'elisp/geiser-syntax.el')
-rw-r--r-- | elisp/geiser-syntax.el | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/elisp/geiser-syntax.el b/elisp/geiser-syntax.el index 6240e75..3e8d590 100644 --- a/elisp/geiser-syntax.el +++ b/elisp/geiser-syntax.el @@ -217,24 +217,21 @@ (if (cdr (last p)) (1+ (safe-length p)) (length p))) (defun geiser-syntax--scan-sexps (&optional begin) - (let ((path)) + (let* ((fst (symbol-at-point)) + (path (and fst `((,fst 0))))) (save-excursion - (save-restriction -;; (narrow-to-region (or begin (point-min)) (1+ (point))) - (geiser-syntax--skip-comment/string) - (while (not (zerop (geiser-syntax--nesting-level))) - (let ((boundary (1+ (point)))) - (backward-up-list) - (let ((form - (nth-value 0 (geiser-syntax--form-after-point boundary)))) - (when (and (listp form) (car form) (symbolp (car form))) - (let* ((len-1 (1- (geiser-syntax--pair-length form))) - (prev (and (> len-1 1) (nth (1- len-1) form))) - (prev (and (keywordp prev) (list prev)))) - (push `(,(car form) ,len-1 ,@prev) path)))))) - (if path (nreverse path) - (let ((fst (symbol-at-point))) - (and fst `((,fst 0))))))))) + (geiser-syntax--skip-comment/string) + (while (not (zerop (geiser-syntax--nesting-level))) + (let ((boundary (1+ (point)))) + (backward-up-list) + (let ((form + (nth-value 0 (geiser-syntax--form-after-point boundary)))) + (when (and (listp form) (car form) (symbolp (car form))) + (let* ((len-1 (1- (geiser-syntax--pair-length form))) + (prev (and (> len-1 1) (nth (1- len-1) form))) + (prev (and (keywordp prev) (list prev)))) + (push `(,(car form) ,len-1 ,@prev) path))))))) + (nreverse path))) (defsubst geiser-syntax--binding-form-p (bfs sbfs f) (or (memq f '(define define* lambda let let* letrec)) |