[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/geiser-guile 9ff3140 083/284: Guile: backtrace buttonizati
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa/geiser-guile 9ff3140 083/284: Guile: backtrace buttonization. |
Date: |
Sun, 1 Aug 2021 18:29:21 -0400 (EDT) |
branch: elpa/geiser-guile
commit 9ff314036298b6267fbba3b403ec934ce2d45f36
Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
Commit: Jose Antonio Ortega Ruiz <jao@gnu.org>
Guile: backtrace buttonization.
---
elisp/geiser-guile.el | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/elisp/geiser-guile.el b/elisp/geiser-guile.el
index 44a4e9f..ed2a555 100644
--- a/elisp/geiser-guile.el
+++ b/elisp/geiser-guile.el
@@ -121,6 +121,44 @@ 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 ()
+ (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)
+ (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 ()
- [nongnu] elpa/geiser-guile f5fee3b 255/284: Quoting binary on version checks (issue #117), (continued)
- [nongnu] elpa/geiser-guile f5fee3b 255/284: Quoting binary on version checks (issue #117), Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile dc8a792 257/284: Use (car (process-lines ...)) instead of (shell-command ...), Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 20043b1 271/284: Make guile return line numbers more often, as suggested by Sergey, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 5eff1e4 279/284: preparing MELPA submission, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 4044010 060/284: Support for multiple Scheme implementations, Chapter 1., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile ed29f9f 103/284: Guile: bug in backtrace display fixed., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 567f3ba 129/284: Guile: dead elisp code elimination., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 23e1ec2 169/284: Documentation nits, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 5532387 171/284: Guile: remote REPLs (connect-to-guile), Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 7a25131 161/284: Guile: fixes for compilation error regexps, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 9ff3140 083/284: Guile: backtrace buttonization.,
Philip Kaludercic <=
- [nongnu] elpa/geiser-guile 7b0d68b 117/284: Guile: better stack traces (using start-stack to delimit them)., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 9b414b4 120/284: Missing entries in scheme/Makefile.am added., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 044c88e 134/284: Guile: small tweak., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile aaa22fb 136/284: Guile: showing again submodules in module documentation., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 3c5cf80 149/284: Guile: better formatting of autodoc's variable values., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile c732ede 141/284: Guile: no need to de-mangling autodoc args anymore., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 6048041 173/284: Fix for the fix, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile ce57385 188/284: Guile: shorten a bit more multi-line sexps sent to REPL, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 3bb3672 200/284: Better EOT token for more robust communication, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 9c08f27 203/284: Make do with a single connection, Philip Kaludercic, 2021/08/01