diff options
Diffstat (limited to 'elisp')
-rw-r--r-- | elisp/geiser-edit.el | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/elisp/geiser-edit.el b/elisp/geiser-edit.el index 337ecff..0742f16 100644 --- a/elisp/geiser-edit.el +++ b/elisp/geiser-edit.el @@ -258,27 +258,27 @@ With prefix, asks for the symbol to locate." (ret (ignore-errors (geiser-eval--send/wait cmd)))) (if (geiser-edit--try-edit symbol ret nil t) (when marker (xref-push-marker-stack marker)) - (geiser-edit-module-at-point)))) + (unless (geiser-edit-module-at-point t) + (error "Couldn't find location for '%s'" symbol))))) (defun geiser-pop-symbol-stack () "Pop back to where \\[geiser-edit-symbol-at-point] was last invoked." (interactive) - (condition-case nil - (xref-pop-marker-stack) - (error "No previous location for find symbol invocation"))) + (xref-pop-marker-stack)) -(defun geiser-edit-module (module &optional method) +(defun geiser-edit-module (module &optional method no-error) "Asks for a module and opens it in a new buffer." (interactive (list (geiser-completion--read-module))) (let ((cmd `(:eval (:ge module-location '(:module ,module))))) - (geiser-edit--try-edit module (geiser-eval--send/wait cmd) method))) + (geiser-edit--try-edit module (geiser-eval--send/wait cmd) method no-error))) -(defun geiser-edit-module-at-point () +(defun geiser-edit-module-at-point (&optional no-error) "Opens a new window visiting the module at point." (interactive) (let ((marker (point-marker))) (geiser-edit-module (or (geiser-completion--module-at-point) - (geiser-completion--read-module))) + (geiser-completion--read-module)) + nil no-error) (when marker (xref-push-marker-stack marker)))) (defun geiser-insert-lambda (&optional full) |