[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/geiser-guile 574559b 131/284: Oops, it wasn't dead.
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa/geiser-guile 574559b 131/284: Oops, it wasn't dead. |
Date: |
Sun, 1 Aug 2021 18:29:30 -0400 (EDT) |
branch: elpa/geiser-guile
commit 574559bd819faafb8954fe2fdd8a318b9980db10
Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
Commit: Jose Antonio Ortega Ruiz <jao@gnu.org>
Oops, it wasn't dead.
---
elisp/geiser-guile.el | 43 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 42 insertions(+), 1 deletion(-)
diff --git a/elisp/geiser-guile.el b/elisp/geiser-guile.el
index 9855a11..b76228e 100644
--- a/elisp/geiser-guile.el
+++ b/elisp/geiser-guile.el
@@ -100,6 +100,47 @@ This function uses `geiser-guile-init-file' if it exists."
(save-excursion (skip-syntax-backward "^-()>") (point))))
+;;; Error display
+(defvar geiser-guile--file-cache (make-hash-table :test 'equal))
+
+(defun geiser-guile--resolve-file (file)
+ (when (and (stringp file) (not (string-equal file "unknown file")))
+ (if (file-name-absolute-p file) file
+ (or (gethash file geiser-guile--file-cache)
+ (puthash file
+ (geiser-eval--send/result `(:eval ((:ge find-file) ,file)))
+ geiser-guile--file-cache)))))
+
+(defconst geiser-guile--file-rx
+ "^In \\([^\n:]+\\):\n *\\([[:digit:]]+\\|\\?\\):")
+
+(defun geiser-guile--find-files ()
+ (with--geiser-implementation 'guile
+ (save-excursion
+ (while (re-search-forward geiser-guile--file-rx nil t)
+ (let ((file (match-string 1))
+ (beg (match-beginning 1))
+ (end (match-end 1))
+ (line (string-to-number (or (match-string 2) "0"))))
+ (let ((file (geiser-guile--resolve-file file)))
+ (when file
+ (geiser-edit--make-link beg end file line 0))))))))
+
+(defun geiser-guile--display-error (module key msg)
+ (if (eq key 'geiser-debugger)
+ (comint-send-string nil "bt\n")
+ (when key
+ (insert "Error: ")
+ (geiser--insert-with-face (format "%s" key) 'bold)
+ (newline 2))
+ (when msg
+ (let ((p (point)))
+ (insert msg)
+ (goto-char p)
+ (geiser-guile--find-files)))
+ t))
+
+
;;; Trying to ascertain whether a buffer is Guile Scheme:
(defun geiser-guile--guess ()
@@ -157,7 +198,7 @@ This function uses `geiser-guile-init-file' if it exists."
(find-module geiser-guile--get-module)
(enter-command geiser-guile--enter-command)
(find-symbol-begin geiser-guile--symbol-begin)
- (display-error)
+ (display-error geiser-guile--display-error)
(display-help)
(check-buffer geiser-guile--guess))
- [nongnu] elpa/geiser-guile 2128f08 147/284: Tweaks to scheme implementation selection, and docs for it., (continued)
- [nongnu] elpa/geiser-guile 2128f08 147/284: Tweaks to scheme implementation selection, and docs for it., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 7b83e4a 130/284: Guile: dead elisp code elimination., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 5b1bed8 142/284: Better switch/import REPL commands., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 430e127 152/284: Guile: display backtrace upon entering debugger., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 71c4355 148/284: Displaying variable values in autodoc., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile ecbddf9 135/284: Guile: fix for module name completion., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 5d49d07 122/284: Guile: fixes for error navigation., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile a57999c 126/284: Guile: fix for finding locations of symbols in modules outside load path., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 03534f1 143/284: Guile: restoring (minimal) support for debugging REPL., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 216897a 133/284: Guile: displaying the debugger preamble., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 574559b 131/284: Oops, it wasn't dead.,
Philip Kaludercic <=
- [nongnu] elpa/geiser-guile c2aa8ae 146/284: Guile: bug fix in macro's autodoc., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 46e6067 154/284: Guile: show error message upon entering the debugger, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 09f4994 159/284: Guile: better filtering of "anonymous" module names, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 0505bde 158/284: REPL: (optionally) forget old errors on new expressions, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 4766cbc 163/284: Support for evaluation warnings, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile b1db6b4 168/284: Better REPL exit command, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 7004a73 170/284: Guile: remote REPLs (connect-to-guile), Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 0513d1c 177/284: Guile: using meta-commands to talk with Guile, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 7082042 195/284: Elisp support for inferior schemes, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 2798902 207/284: Better module help, Philip Kaludercic, 2021/08/01