diff options
-rw-r--r-- | elisp/geiser-repl.el | 3 | ||||
-rw-r--r-- | scheme/guile/geiser/modules.scm | 6 | ||||
-rw-r--r-- | scheme/guile/geiser/xref.scm | 2 |
3 files changed, 7 insertions, 4 deletions
diff --git a/elisp/geiser-repl.el b/elisp/geiser-repl.el index b3a47e7..85b7ee8 100644 --- a/elisp/geiser-repl.el +++ b/elisp/geiser-repl.el @@ -231,7 +231,8 @@ If no REPL is running, execute `run-geiser' to start a fresh one." (defun geiser-repl--on-kill () (geiser-repl--on-quit) - (remove (current-buffer) geiser-repl--closed-repls)) + (setq geiser-repl--closed-repls + (remove (current-buffer) geiser-repl--closed-repls))) (defun geiser-repl--input-filter (str) (and (not (string-match "^\\s *$" str)) diff --git a/scheme/guile/geiser/modules.scm b/scheme/guile/geiser/modules.scm index 0afb8fd..fdc3f3f 100644 --- a/scheme/guile/geiser/modules.scm +++ b/scheme/guile/geiser/modules.scm @@ -35,7 +35,7 @@ #:use-module (ice-9 session) #:use-module (srfi srfi-1)) -(define (symbol-module sym) +(define (symbol-module sym . all) (and sym (catch 'module-name (lambda () @@ -44,7 +44,9 @@ (throw 'module-name (module-name module)) init)) #f (regexp-quote (symbol->string sym)) - (apropos-fold-accessible (current-module)))) + (if (or (null? all) (not (car all))) + (apropos-fold-accessible (current-module)) + apropos-fold-all))) (lambda (key . args) (and (eq? key 'module-name) (car args)))))) diff --git a/scheme/guile/geiser/xref.scm b/scheme/guile/geiser/xref.scm index ec86d7c..33821b7 100644 --- a/scheme/guile/geiser/xref.scm +++ b/scheme/guile/geiser/xref.scm @@ -72,7 +72,7 @@ (make-xref proc name (symbol-module name)))) (define (callers sym) - (let ((mod (symbol-module sym))) + (let ((mod (symbol-module sym #t))) (and mod (map procedure-xref (procedure-callers (cons mod sym)))))) |