[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] [babel] [PATCH] enhanced org-babel-goto-named-src-block
From: |
Eric Schulte |
Subject: |
Re: [O] [babel] [PATCH] enhanced org-babel-goto-named-src-block |
Date: |
Sat, 25 Feb 2012 09:36:27 -0700 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.93 (gnu/linux) |
Applied, Thanks!
Andreas Leha <address@hidden> writes:
> Hi all,
>
> attached is a patch that enhances org-babel-goto-named-src-block (bound
> to C-c C-v g by default). Included are two enhancements:
>
> 1. the point is pushed to the org-mark-ring, such that returning with
> C-c & becomes possible
> 2. the target src block is guessed from
> a) noweb-reference
> b) #+call:
> c) #+results:
> d) symbol-at-point
> if one of these is found (in that order)
>
> - Andreas
>
>
> diff --git a/lisp/ob.el b/lisp/ob.el
> index f021943..9962817 100644
> --- a/lisp/ob.el
> +++ b/lisp/ob.el
> @@ -1457,13 +1457,35 @@ If the point is not on a source block then return
> nil."
> (defun org-babel-goto-named-src-block (name)
> "Go to a named source-code block."
> (interactive
> - (let ((completion-ignore-case t))
> + (let ((completion-ignore-case t)
> + (under-point (thing-at-point 'line)))
> (list (org-icompleting-read "source-block name: "
> - (org-babel-src-block-names) nil t))))
> + (org-babel-src-block-names)
> + nil
> + t
> + (cond
> + ;; noweb
> + ((string-match (org-babel-noweb-wrap)
> under-point)
> + (let ((block-name (match-string 1
> under-point)))
> + (string-match "[^(]*" block-name)
> + (match-string 0 block-name)))
> + ;; #+call:
> + ((string-match org-babel-lob-one-liner-regexp
> under-point)
> + (let ((source-info (car
> (org-babel-lob-get-info))))
> + (if (string-match
> "^\\([^\\[]+?\\)\\(\\[.*\\]\\)?(" source-info)
> + (let ((source-name (match-string 1
> source-info)))
> + source-name))))
> + ;; #+results:
> + ((string-match (concat "#\\+"
> org-babel-results-keyword "\\:\s+\\([^\\(]*\\)") under-point)
> + (match-string 1 under-point))
> + ;; symbol-at-point
> + ((and (thing-at-point 'symbol)
> )(org-babel-find-named-block (thing-at-point 'symbol))
> + (thing-at-point 'symbol))
> + (""))))))
> (let ((point (org-babel-find-named-block name)))
> (if point
> ;; taken from `org-open-at-point'
> - (progn (goto-char point) (org-show-context))
> + (progn (org-mark-ring-push) (goto-char point) (org-show-context))
> (message "source-code block '%s' not found in this buffer" name))))
>
> (defun org-babel-find-named-block (name)
--
Eric Schulte
http://cs.unm.edu/~eschulte/
- [O] [babel] [PATCH] enhanced org-babel-goto-named-src-block, Andreas Leha, 2012/02/22
- Re: [O] [babel] [PATCH] enhanced org-babel-goto-named-src-block,
Eric Schulte <=
- Re: [O] [babel] [PATCH] enhanced org-babel-goto-named-src-block, Thomas S. Dye, 2012/02/28
- Re: [O] [babel] [PATCH] enhanced org-babel-goto-named-src-block, Andreas Leha, 2012/02/29
- Re: [O] [babel] [PATCH] enhanced org-babel-goto-named-src-block, Thomas S. Dye, 2012/02/29
- Re: [O] [babel] [PATCH] enhanced org-babel-goto-named-src-block, Jonathan Leech-Pepin, 2012/02/29
- Re: [O] [babel] [PATCH] enhanced org-babel-goto-named-src-block, Sebastien Vauban, 2012/02/29
- Re: [O] [babel] [PATCH] enhanced org-babel-goto-named-src-block, Andreas Leha, 2012/02/29
- Re: [O] [babel] [PATCH] enhanced org-babel-goto-named-src-block, Thomas S. Dye, 2012/02/29