From 0d4afa857bd2097fcf1c48461f14260e5dbe0e1d Mon Sep 17 00:00:00 2001 From: jao Date: Sun, 16 Oct 2022 22:00:24 +0100 Subject: fun with regular expressions for definitions fallback --- elisp/geiser-edit.el | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/elisp/geiser-edit.el b/elisp/geiser-edit.el index 4c2560c..337ecff 100644 --- a/elisp/geiser-edit.el +++ b/elisp/geiser-edit.el @@ -88,9 +88,9 @@ or following links in error buffers.") (regexp-opt '("define-syntaxes" "define-values"))) (defsubst geiser-edit--def-re (thing) - (format "(%s *\\([( ]%s\\_>[^)]*[ )\n]\\)" - geiser-edit--def-re - (regexp-quote (format "%s" thing)))) + (let ((sx (regexp-quote (format "%s" thing)))) + (format "(%s[[:space:]]+\\((%s\\_>[^)]*)\\|\\(\\_<%s\\_>\\) *\\([^\n]*\\))\\)" + geiser-edit--def-re sx sx))) (defsubst geiser-edit--def-re* (thing) (format "(%s +([^)]*?\\_<%s\\_>" @@ -102,7 +102,10 @@ or following links in error buffers.") (goto-char (point-min)) (when (or (re-search-forward (geiser-edit--def-re symbol) nil t) (re-search-forward (geiser-edit--def-re* symbol) nil t)) - (cons (match-beginning 0) (match-string 1))))) + (cons (match-beginning 0) + (if (match-string 2) + (concat (match-string 2) " => " (match-string 3)) + (match-string 1)))))) (defsubst geiser-edit--symbol-re (thing) (format "\\_<%s\\_>" (regexp-quote (format "%s" thing)))) -- cgit v1.2.3