diff options
author | jao <jao@gnu.org> | 2022-10-16 02:59:54 +0100 |
---|---|---|
committer | jao <jao@gnu.org> | 2022-10-16 02:59:54 +0100 |
commit | c437b1eca906f9c06eb5acef49f84bc4a87d2b8b (patch) | |
tree | 76a8d0a65793cd5f2031e7d7dfc3d0fe99c66f4f | |
parent | e320b982c43edffed2520ba5bfbbb5b4832aad52 (diff) | |
download | geiser-c437b1eca906f9c06eb5acef49f84bc4a87d2b8b.tar.gz geiser-c437b1eca906f9c06eb5acef49f84bc4a87d2b8b.tar.bz2 |
fallback autodoc inferred via cheap regexps
same code that finds putative definitions, with all its caveats
-rw-r--r-- | elisp/geiser-autodoc.el | 21 | ||||
-rw-r--r-- | elisp/geiser-edit.el | 4 | ||||
-rw-r--r-- | elisp/geiser-reload.el | 2 |
3 files changed, 14 insertions, 13 deletions
diff --git a/elisp/geiser-autodoc.el b/elisp/geiser-autodoc.el index f9db008..51bad79 100644 --- a/elisp/geiser-autodoc.el +++ b/elisp/geiser-autodoc.el @@ -12,6 +12,7 @@ ;;; Code: +(require 'geiser-edit) (require 'geiser-eval) (require 'geiser-syntax) (require 'geiser-custom) @@ -178,16 +179,16 @@ you can set this variable to nil to avoid them." (defun geiser-autodoc--autodoc (path callback &optional signs) (let ((signs (or signs - (geiser-autodoc--get-signatures (mapcar 'car path) callback))) - (p (car path)) - (s)) - (if callback - t - (while (and p (not s)) - (unless (setq s (cdr (assoc (car p) signs))) - (setq p (car path)) - (setq path (cdr path)))) - (when s (geiser-autodoc--str p s))))) + (geiser-autodoc--get-signatures (mapcar 'car path) callback)))) + (or (and callback t) + (let ((p (car path)) + (s)) + (while (and p (not s)) + (setq s (or (cdr (assoc (car p) signs)) + (cdr (geiser-edit--find-def (car p))))) + (setq p (car path) path (cdr path))) + (cond ((stringp s) s) + (s (geiser-autodoc--str p s))))))) ;;; Autodoc functions: diff --git a/elisp/geiser-edit.el b/elisp/geiser-edit.el index 165e0fc..ee85bdf 100644 --- a/elisp/geiser-edit.el +++ b/elisp/geiser-edit.el @@ -88,7 +88,7 @@ or following links in error buffers.") (regexp-opt '("define-syntaxes" "define-values"))) (defsubst geiser-edit--def-re (thing) - (format "(%s +(?%s\\_>" + (format "(%s *[( ]\\(%s\\_>[^)]*\\)[ )\n]" geiser-edit--def-re (regexp-quote (format "%s" thing)))) @@ -102,7 +102,7 @@ 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-no-properties 0))))) + (cons (match-beginning 0) (match-string 1))))) (defsubst geiser-edit--symbol-re (thing) (format "\\_<%s\\_>" (regexp-quote (format "%s" thing)))) diff --git a/elisp/geiser-reload.el b/elisp/geiser-reload.el index bd4d1a3..1e58e94 100644 --- a/elisp/geiser-reload.el +++ b/elisp/geiser-reload.el @@ -30,9 +30,9 @@ geiser-xref geiser-compile geiser-debug - geiser-edit geiser-completion geiser-autodoc + geiser-edit geiser-eval geiser-connection geiser-syntax |