summaryrefslogtreecommitdiff
path: root/scheme
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-06-19 16:52:03 +0200
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-06-19 16:52:03 +0200
commit841766449b9dc14d40186a67cdceda26fc6ca4ff (patch)
tree075fcb90e84eafb0946e5804a5b6b7c38a07194c /scheme
parentd2e8efd5b449bddaad5b416cb3634532a235576d (diff)
downloadgeiser-guile-841766449b9dc14d40186a67cdceda26fc6ca4ff.tar.gz
geiser-guile-841766449b9dc14d40186a67cdceda26fc6ca4ff.tar.bz2
Guile: backtrace buttonization.
Diffstat (limited to 'scheme')
-rw-r--r--scheme/guile/geiser/emacs.scm3
-rw-r--r--scheme/guile/geiser/xref.scm9
2 files changed, 10 insertions, 2 deletions
diff --git a/scheme/guile/geiser/emacs.scm b/scheme/guile/geiser/emacs.scm
index edae487..2aa91da 100644
--- a/scheme/guile/geiser/emacs.scm
+++ b/scheme/guile/geiser/emacs.scm
@@ -39,7 +39,8 @@
ge:module-exports
ge:module-location
ge:callers
- ge:callees)
+ ge:callees
+ ge:find-file)
#:use-module (geiser evaluation)
#:use-module ((geiser modules) :renamer (symbol-prefix-proc 'ge:))
#:use-module ((geiser completion) :renamer (symbol-prefix-proc 'ge:))
diff --git a/scheme/guile/geiser/xref.scm b/scheme/guile/geiser/xref.scm
index f00f724..2336fb2 100644
--- a/scheme/guile/geiser/xref.scm
+++ b/scheme/guile/geiser/xref.scm
@@ -28,7 +28,8 @@
#:export (symbol-location
generic-methods
callers
- callees)
+ callees
+ find-file)
#:use-module (geiser utils)
#:use-module (geiser modules)
#:use-module (geiser doc)
@@ -90,4 +91,10 @@
(and obj
(map procedure-xref (procedure-callees obj)))))
+(define (find-file path)
+ (let loop ((dirs %load-path))
+ (if (null? dirs) #f
+ (let ((candidate (string-append (car dirs) "/" path)))
+ (if (file-exists? candidate) candidate (loop (cdr dirs)))))))
+
;;; xref.scm ends here