Eric S Fraga <e.fr...@ucl.ac.uk> writes: > "Eric Schulte" <schulte.e...@gmail.com> writes: > >> Eric S Fraga <e.fr...@ucl.ac.uk> writes: > > [...] > >>> management issue: I find it difficult (a) to remember what all my source >>> code snippets are called and (b) to navigate to any given snippet. I >>> would love to see a babel table of contents popup (a la the table of >>> contents popup with reftex implements for latex files). Is something >>> like this already available? If not, how difficult would it be to >>> implement (I'm happy to try given a pointer in the right >>> direction(s)...). >>> >> >> There was some talk of merging imenu with Babel which would provide the >> functionality you describe, I don't believe this ever resulting in >> working code however. There are a couple of options... >> >> If you know the name of the code block you want to find you can use >> `org-babel-goto-named-src-block' (bound to C-c C-v g) to jump to a named >> code block (∃ a similar function for finding named results).
Would anyone object if I change that function slightly so that it doesn't strip text properties, so that the search hits come up in the minibuffer with the in-context fontification? >> This function provides completion on the block names, the function >> `org-babel-src-block-names' returns a list of all named blocks in the >> current buffer, so it could be used to built up such a table. In fact >> the following code block will insert a table of such names in the >> current buffer. Note: you will need to pull the latest as I had to fix >> a small bug in `org-babel-src-block-names'. >> >> #+begin_src emacs-lisp :results list >> (mapcar #'list (reverse (org-babel-src-block-names))) >> #+end_src As a different approach, `occur' is good for doing this (results listed in a separate buffer with jump-back links). The function below can be extended in the obvious way. #+begin_src emacs-lisp (defun dan/find-in-buffer () (interactive) (let ((targets `(("<named src blocks>" . ,org-babel-src-name-regexp) ("<src block results>" . ,org-babel-result-regexp)))) (occur (cdr (assoc (ido-completing-read "Find: " (mapcar #'car targets)) targets))) (other-window 1))) #+end_src Dan > > This is brilliant. Thanks. Having the table of contents, together with > being able to jump to any block, is half the battle won! Using it already. > > eric _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode