From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Davison Subject: Re: [babel] Painless integration of source blocks with language Date: Mon, 24 Jan 2011 11:56:01 +0000 Message-ID: References: <87lj2ukfia.fsf@gmail.com> <87k4icegwl.fsf@ucl.ac.uk> <87wrmbwdsm.fsf@gmail.com> <87aaj5tbgl.fsf@ucl.ac.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from [140.186.70.92] (port=48226 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PhL20-0001vD-Mx for emacs-orgmode@gnu.org; Mon, 24 Jan 2011 06:56:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PhL1w-0007bZ-0Q for emacs-orgmode@gnu.org; Mon, 24 Jan 2011 06:56:21 -0500 Received: from lo.gmane.org ([80.91.229.12]:37796) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PhL1v-0007bJ-NE for emacs-orgmode@gnu.org; Mon, 24 Jan 2011 06:56:19 -0500 Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1PhL1u-0003La-Et for emacs-orgmode@gnu.org; Mon, 24 Jan 2011 12:56:18 +0100 Received: from 94.196.126.216.threembb.co.uk ([94.196.126.216]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 24 Jan 2011 12:56:18 +0100 Received: from dandavison7 by 94.196.126.216.threembb.co.uk with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 24 Jan 2011 12:56:18 +0100 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Eric S Fraga writes: > "Eric Schulte" writes: > >> Eric S Fraga 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 `(("" . ,org-babel-src-name-regexp) ("" . ,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