From 41d54012368ca33461fe3e8668c2b0e3052af3b8 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Mon, 16 Feb 2009 22:21:28 +0100 Subject: New command to open module file. --- elisp/geiser-edit.el | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'elisp/geiser-edit.el') diff --git a/elisp/geiser-edit.el b/elisp/geiser-edit.el index fc28d09..5d6ca46 100644 --- a/elisp/geiser-edit.el +++ b/elisp/geiser-edit.el @@ -63,11 +63,11 @@ (defconst geiser-edit--def-re (regexp-opt '("define" "defmacro" "define-macro" "define-syntax" "define*"))) -(defsubst geiser-edit--def-re (symbol) - (format "(%s +(?%s\\_>" geiser-edit--def-re (regexp-quote (symbol-name symbol)))) +(defsubst geiser-edit--def-re (thing) + (format "(%s +(?%s\\_>" geiser-edit--def-re (regexp-quote (format "%s" thing)))) -(defsubst geiser-edit--symbol-re (symbol) - (format "\\_<%s\\_>" (regexp-quote (symbol-name symbol)))) +(defsubst geiser-edit--symbol-re (thing) + (format "\\_<%s\\_>" (regexp-quote (format "%s" thing)))) (defun geiser-edit--goto-line (symbol line) (if (numberp line) @@ -81,7 +81,7 @@ (let* ((loc (geiser-eval--retort-result ret)) (file (geiser-edit--location-file loc)) (line (geiser-edit--location-line loc))) - (unless file (error "Couldn't find edit location")) + (unless file (error "Couldn't find edit location for '%s'" symbol)) (unless (file-readable-p file) (error "Couldn't open '%s' for read" file)) (geiser-edit--visit-file file geiser-edit-symbol-method) (geiser-edit--goto-line symbol line))) @@ -116,6 +116,12 @@ With prefix, asks for the symbol to edit." (pop-tag-mark) (error "No previous location for find symbol invocation"))) +(defun geiser-edit-module (module) + "Asks for a module and opens it in a new buffer." + (interactive (list (geiser-completion--read-module))) + (let ((cmd `(:gs ((:ge module-location) (quote (:scm ,module)))))) + (geiser-edit--try-edit module (geiser-eval--send/wait cmd)))) + (provide 'geiser-edit) ;;; geiser-edit.el ends here -- cgit v1.2.3